Saya mencoba untuk memulai kembali Supervisor melalui Playbook Ansible saya tetapi saya sepertinya akan mengalami masalah dengan modul supervisor untuk Ansible.
Dalam konfigurasi Supervisor saya, saya telah mendefinisikan sebuah program:
[program:process]
process_name=%(program_name)s_%(process_num)02d
command=/home/box1/workers/bin/process
numprocs=64
directory=/home/box1/workers/bin
autostart=true
autorestart=true
startretries=5
stderr_logfile=/tmp/%(program_name)s-err.log
stdout_logfile=/tmp/%(program_name)s-out.log
user=root
Dan ini bekerja dengan baik. Namun, ketika saya mencoba me-restart Supervisor melalui Ansible saya mendapatkan kesalahan berikut:
failed: [box1] => {"failed": true}
msg: program:process: ERROR (no such process)
program:process: ERROR (no such process)
Konfigurasi tugas Ansible saya terlihat seperti ini:
- name: Restart Supervisor
sudo: yes
supervisorctl: name=program:process state=restarted config=/etc/supervisor/supervisord.conf
Untuk name
parameter saya telah mencoba program:process
, program
, program:
dan process
tetapi tampaknya tidak bekerja. Saya saat ini pada Ansible 1.5.4.
ansible
supervisord
Luke
sumber
sumber
Jawaban:
The
supervisorctl
modul Ansible tidak mendukungreload
perintah ( lihat di sini ), yang diperlukan untuk atasan untuk mengambil entri konfigurasi baru.Anda bisa melakukannya sendiri seperti ini:
Dokumentasi tentang memuat ulang / membaca ulang / memperbarui / memulai kembali sepertinya tidak ada, dan posting blog ini sudah usang ; Anda dapat bereksperimen untuk memastikan
reload
melakukan apa yang Anda harapkan.Terakhir, jangan letakkan definisi program Anda di supervisord.conf . Sebagai gantinya, letakkan sebagai file individual di /etc/supervisor/conf.d/*.conf. Itu membuat instalasi dan pemeliharaan lebih mudah.
sumber
supervisorctl
tugas masih gagal karena tidak dapat referensi / menemukanprogram:process
. Ini tampaknya menjadi masalah dalam modul Ansible ini (dan ya, saya tidak menempatkan definisi program saya di dalamsupervisord.conf
dan mereka dimuat dariconf
file eksternal ). Pada akhirnya saya pergi dengan perintah Ansible sederhana, melewati modul Supervisor sama sekali:command: supervisorctl -c /etc/supervisor/supervisord.conf restart
dan ini bekerja dengan sempurna.-c
, @ Lukas?