mint.yml 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. - name: Prepare the env
  2. hosts: localhost
  3. tasks:
  4. - name: Check if mint.tar.xz file exists
  5. ansible.builtin.stat:
  6. path: "{{ playbook_dir }}/tmp/{{ app_domain }}-{{ mint_version }}.tar.xz"
  7. register: mint_release_file_status
  8. - name: Building release package
  9. hosts: localhost
  10. roles:
  11. - role: mint-build-v2.3
  12. when: not mint_release_file_status.stat.exists
  13. vars:
  14. app_workspace: "{{ ansible_facts['env']['HOME'] }}/build/mint"
  15. - name: Upload and setup release package
  16. hosts:
  17. - laravel_web
  18. - laravel_task
  19. - laravel_scheduler
  20. - ai_translate
  21. - open_ai_server
  22. roles:
  23. - role: mint-v2.3
  24. - name: Setup laravel framework
  25. hosts:
  26. - laravel_web
  27. - laravel_task
  28. - laravel_scheduler
  29. tasks:
  30. - name: Setup api-v8
  31. ansible.builtin.command: docker run --rm -it -v /srv:/srv:z {{ app_php81_image }} {{ app_deploy_target }}/scripts/laravel.sh setup
  32. - name: Setup api-v12
  33. ansible.builtin.command: docker run --rm -it -v /srv:/srv:z {{ app_php84_image }} {{ app_deploy_target }}/scripts/laravel.sh setup
  34. - name: Start laravel scheduler
  35. hosts:
  36. - laravel_scheduler
  37. tasks:
  38. - name: Enable laravel scheduler timer(v8)
  39. become: true
  40. ansible.builtin.systemd_service:
  41. name: "{{ app_domain }}-laravel-scheduler-v8.timer"
  42. state: restarted
  43. enabled: true
  44. - name: Enable laravel scheduler timer(v12)
  45. become: true
  46. ansible.builtin.systemd_service:
  47. name: "{{ app_domain }}-laravel-scheduler-v12.timer"
  48. state: restarted
  49. enabled: true
  50. - name: Start laravel job
  51. hosts:
  52. - laravel_task
  53. tasks:
  54. - name: Enable laravel job service
  55. become: true
  56. ansible.builtin.systemd_service:
  57. name: "{{ app_domain }}-laravel-job-{{ item.name }}.service"
  58. state: restarted
  59. enabled: true
  60. with_items:
  61. - { name: "mq-discussion"}
  62. - { name: "mq-pr"}
  63. - { name: "mq-progress"}
  64. - { name: "mq-wbw.analyses"}
  65. - { name: "mq-export.pali.chapter"}
  66. - { name: "mq-export.article"}
  67. - name: Start ai-translate service
  68. hosts:
  69. - ai_translate
  70. tasks:
  71. - name: Enable ai-translate service
  72. become: true
  73. ansible.builtin.systemd_service:
  74. name: "{{ app_domain }}-ai-translate.service"
  75. state: restarted
  76. enabled: true
  77. - name: Start open-ai-server
  78. hosts:
  79. - open_ai_server
  80. tasks:
  81. - name: Enable open-ai-server service
  82. become: true
  83. ansible.builtin.systemd_service:
  84. name: "{{ app_domain }}-open-ai-server.service"
  85. state: restarted
  86. enabled: true
  87. - name: Setup nginx
  88. hosts:
  89. - nginx
  90. tasks:
  91. - name: Fix document root
  92. become: true
  93. ansible.builtin.lineinfile:
  94. path: /etc/nginx/sites-enabled/{{ app_domain }}.conf
  95. regexp: '^root '
  96. line: "root {{ app_deploy_target }}/api-v8/public;"
  97. - name: Fix {{ app_dashboard_v4_base_path }}
  98. become: true
  99. ansible.builtin.lineinfile:
  100. path: /etc/nginx/sites-enabled/{{ app_domain }}.conf
  101. search_string: 'dashboard-v4'
  102. line: "alias {{ app_deploy_target }}/dashboard-v4/;"
  103. - name: Fix {{ app_dashboard_v6_base_path }}
  104. become: true
  105. ansible.builtin.lineinfile:
  106. path: /etc/nginx/sites-enabled/{{ app_domain }}.conf
  107. search_string: 'dashboard-v6'
  108. line: "alias {{ app_deploy_target }}/dashboard-v6/;"
  109. - name: Create nginx logs folder
  110. become: true
  111. ansible.builtin.file:
  112. path: "{{ app_deploy_target | dirname }}/logs"
  113. state: directory
  114. owner: www-data
  115. mode: "0755"
  116. - name: Test nginx configuration
  117. become: true
  118. ansible.builtin.command: nginx -t
  119. - name: Restart nginx
  120. become: true
  121. ansible.builtin.systemd_service:
  122. name: nginx
  123. state: restarted
  124. enabled: true