فهرست منبع

:wrench: add task scheduler

China Kassapa 2 ماه پیش
والد
کامیت
07e858d243
4فایلهای تغییر یافته به همراه103 افزوده شده و 55 حذف شده
  1. 84 32
      deploy/mint.yml
  2. 0 18
      deploy/roles/mint-v2.3/tasks/laravel-setup.yml
  3. 12 3
      deploy/roles/mint-v2.3/tasks/main.yml
  4. 7 2
      deploy/roles/mint-v2.3/tasks/systemd.yml

+ 84 - 32
deploy/mint.yml

@@ -15,42 +15,94 @@
     app_workspace: "{{ ansible_facts['env']['HOME'] }}/build/mint"
     app_workspace: "{{ ansible_facts['env']['HOME'] }}/build/mint"
 
 
 - name: Upload and setup release package
 - name: Upload and setup release package
-  hosts:
-    - task
-    - php_fpm
-    - task
+  hosts:    
+    - laravel_web
+    - laravel_tasks
+    - laravel_scheduler
     - ai_translate
     - ai_translate
-    - openai_proxy
+    - open_ai_server
   roles:
   roles:
     - role: mint-v2.3
     - role: mint-v2.3
-# - name: Setup local build folder
-#   hosts: localhost
-#   tasks:
-#     - name: Git checkout repo
-#       ansible.builtin.git:
-#         repo: "https://github.com/iapt-platform/mint.git"
-#         dest: "{{ playbook_dir }}/tmp/mint"
-#         version: "{{ mint_version }}"
 
 
-# - name: Build on local
-#   hosts: localhost
-#   roles:
-#     - mint-dashboard-v4-build
-#     - mint-openai-proxy-build
-#     - clove-build
+- name: Setup laravel framework
+  hosts:    
+    - laravel_web
+    - laravel_tasks
+    - laravel_scheduler
+  tasks:
+    - name: Setup api-v8
+      ansible.builtin.command: docker run --rm -it -v /srv:/srv:z {{ app_php81_image }} {{ app_deploy_target }}/scripts/laravel.sh setup      
+    - name: Setup api-v12
+      ansible.builtin.command: docker run --rm -it -v /srv:/srv:z {{ app_php84_image }} {{ app_deploy_target }}/scripts/laravel.sh setup
 
 
-# - name: Build mint package on remote
-#   hosts: building
-#   roles:
-#     - mint-release-build
+- name: Start laravel scheduler
+  hosts:    
+    - laravel_scheduler
+  tasks:
+    - name: Enable systemd service(v8)
+      become: true
+      ansible.builtin.systemd_service:
+        name: "{{ app_domain }}-laravel-scheduler-v8.service"
+        state: restarted
+        enabled: true
+    - name: Enable systemd service(v12)
+      become: true
+      ansible.builtin.systemd_service:
+        name: "{{ app_domain }}-laravel-scheduler-v12.service"
+        state: restarted
+        enabled: true
+
+- name: Start laravel job
+  hosts:    
+    - laravel_task
+  tasks:
+    - name: Enable systemd service
+      become: true
+      ansible.builtin.systemd_service:
+        name: "{{ app_domain }}-laravel-job-{{ item }}.service"
+        state: restarted
+        enabled: true
+      with_items:
+        - { name: "mq-discussion"}
+        - { name: "mq-pr"}
+        - { name: "mq-progress"}
+        - { name: "mq-wbw.analyses"}
+        - { name: "mq-export.pali.chapter"}
+        - { name: "mq-export.article"}
+    
+- name: Start ai-translate service
+  hosts:    
+    - ai_translate
+  tasks:
+    - name: Enable systemd service
+      become: true
+      ansible.builtin.systemd_service:
+        name: "{{ app_domain }}-ai-translate.service"
+        state: restarted
+        enabled: true
 
 
-# - name: Setup deploy folder
-#   hosts: all:!localhost
-#   roles:
-#     - mint-v2.2
+- name: Start open-ai-server
+  hosts:    
+    - open_ai_server
+  tasks:
+    - name: Enable systemd service
+      become: true
+      ansible.builtin.systemd_service:
+        name: "{{ app_domain }}-open-ai-server.service"
+        state: restarted
+        enabled: true
 
 
-# - name: Setup nginx
-#   hosts:
-#     - web
-#   roles:
-#     - mint-nginx
+- name: Setup nginx
+  hosts:
+    - nginx
+  tasks:
+    - name: Test nginx configuration
+      become: true
+      ansible.builtin.command: nginx -t
+    - name: Restart nginx    
+      become: true
+      ansible.builtin.systemd_service:
+        name: nginx
+        state: restarted
+        enabled: true
+      

+ 0 - 18
deploy/roles/mint-v2.3/tasks/laravel-setup.yml

@@ -1,18 +0,0 @@
-- name: Create scripts folder
-  ansible.builtin.file:
-    path: "{{ app_deploy_target }}/scripts"
-    state: directory
-    mode: "0755"
-
-- name: Upload laravel.sh
-  ansible.builtin.template:
-    src: laravel.sh.j2
-    dest: "{{ app_deploy_target }}/scripts/laravel.sh"
-    mode: "0555"
-
-- name: Setup api-v8
-  ansible.builtin.command: docker run --rm -it -v /srv:/srv:z {{ app_php81_image }} {{ app_deploy_target }}/scripts/laravel.sh setup
-  
-- name: Setup api-v12
-  ansible.builtin.command: docker run --rm -it -v /srv:/srv:z {{ app_php84_image }} {{ app_deploy_target }}/scripts/laravel.sh setup
-  

+ 12 - 3
deploy/roles/mint-v2.3/tasks/main.yml

@@ -41,11 +41,20 @@
     dest: "{{ app_deploy_target }}"
     dest: "{{ app_deploy_target }}"
     creates: "{{ app_deploy_target }}/api-v12"
     creates: "{{ app_deploy_target }}/api-v12"
 
 
+- name: Create scripts folder
+  ansible.builtin.file:
+    path: "{{ app_deploy_target }}/scripts"
+    state: directory
+    mode: "0755"
+
+- name: Upload laravel.sh
+  ansible.builtin.template:
+    src: laravel.sh.j2
+    dest: "{{ app_deploy_target }}/scripts/laravel.sh"
+    mode: "0555"
+
 - name: Upload configurations
 - name: Upload configurations
   ansible.builtin.import_tasks: config.yml
   ansible.builtin.import_tasks: config.yml
 
 
-- name: Setup laravel
-  ansible.builtin.import_tasks: laravel-setup.yml
-
 - name: Setup systemd services
 - name: Setup systemd services
   ansible.builtin.import_tasks: systemd.yml
   ansible.builtin.import_tasks: systemd.yml

+ 7 - 2
deploy/roles/mint-v2.3/tasks/systemd.yml

@@ -92,13 +92,18 @@
     - { image: "{{ app_php81_image }}", version: "v8" }
     - { image: "{{ app_php81_image }}", version: "v8" }
     - { image: "{{ app_php84_image }}", version: "v12" }
     - { image: "{{ app_php84_image }}", version: "v12" }
 
 
+# - name: Reload systemd profiles
+#   become: true
+#   ansible.builtin.command: systemctl daemon-reload
+
 - name: Reload systemd profiles
 - name: Reload systemd profiles
   become: true
   become: true
-  ansible.builtin.command: systemctl daemon-reload
+  ansible.builtin.systemd_service:
+    daemon_reload: true
 
 
 - name: Enable clean timer
 - name: Enable clean timer
   become: true
   become: true
   ansible.builtin.systemd_service:
   ansible.builtin.systemd_service:
     name: "{{ app_domain }}-clean.timer"
     name: "{{ app_domain }}-clean.timer"
-    state: started
+    state: restarted
     enabled: true
     enabled: true