supervisor_playbook.yml 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. ---
  2. - name: Setup and manage Laravel queue supervisor
  3. hosts: mylocalhost
  4. become: true
  5. vars:
  6. deploy_path: /www/wwwroot/owl-admin
  7. app_user: www
  8. app_group: www
  9. tasks:
  10. - name: Install supervisor
  11. apt:
  12. name: supervisor
  13. state: present
  14. update_cache: yes
  15. - name: Create Laravel queue supervisor config
  16. copy:
  17. dest: /etc/supervisor/conf.d/laravel-queue.conf
  18. content: |
  19. [program:laravel-queue]
  20. process_name=%(program_name)s_%(process_num)02d
  21. command=php {{ deploy_path }}/artisan queue:work --sleep=2 --tries=2 --max-time=3600
  22. autostart=true
  23. autorestart=true
  24. stopasgroup=true
  25. killasgroup=true
  26. user={{ app_user }}
  27. numprocs=2
  28. redirect_stderr=true
  29. stdout_logfile={{ deploy_path }}/storage/logs/worker.log
  30. stopwaitsecs=3600
  31. startretries=3
  32. mode: "0644"
  33. - name: Ensure supervisor service is running
  34. systemd:
  35. name: supervisor
  36. state: started
  37. enabled: true
  38. - name: Create log directory
  39. file:
  40. path: "{{ deploy_path }}/storage/logs"
  41. state: directory
  42. owner: "{{ app_user }}"
  43. group: "{{ app_group }}"
  44. mode: "0755"
  45. - name: Create worker log file
  46. file:
  47. path: "{{ deploy_path }}/storage/logs/worker.log"
  48. state: touch
  49. owner: "{{ app_user }}"
  50. group: "{{ app_group }}"
  51. mode: "0644"
  52. - name: Reload supervisor configuration
  53. shell: supervisorctl reread && supervisorctl update
  54. - name: Start Laravel queue workers
  55. shell: supervisorctl start laravel-queue:*
  56. - name: Check supervisor status
  57. shell: supervisorctl status
  58. register: supervisor_status
  59. changed_when: false
  60. - name: Display supervisor status
  61. debug:
  62. var: supervisor_status.stdout_lines