geerlingguy.supervisor
Ansibleロール: Supervisor
Ansibleロールで、LinuxにSupervisorをインストールします。
要件
Pythonのpip
がインストールされている必要があります。まだインストールされていない場合は、このロールを実行する前にgeerlingguy.pip
のAnsibleロールを使用してPipをインストールできます。
ロール変数
使用可能な変数は以下に示され、デフォルト値も記載されています(defaults/main.yml
を参照):
supervisor_version: ''
ここで特定のSupervisorのバージョンを設定できます。Pypiで利用可能なSupervisorのバージョンを確認してください。バージョンが設定されていない場合、ロールが実行されたときに最新の安定版がインストールされます。
supervisor_started: true
supervisor_enabled: true
Supervisorをインストール時やシステム起動後に起動するために、initスクリプトまたはsystemdユニット構成を使用するかどうかを選択します。
supervisor_config_path: /etc/supervisor
Supervisorの設定を保存するパスです。
supervisor_programs:
- name: 'foo'
command: /bin/cat
state: present
- name: 'apache'
command: apache2ctl -DFOREGROUND
state: present
configuration: |
autostart=true
autorestart=true
startretries=1
startsecs=1
redirect_stderr=true
stderr_logfile=/var/log/apache-err.log
stdout_logfile=/var/log/apache-out.log
user=root
killasgroup=true
stopasgroup=true
supervisor_programs
はデフォルトでは空のリストです。Supervisorで管理するプログラム
のリストを定義できます。state
をpresent
に設定すると、そのプログラムの設定ファイル([プログラム名].conf
)がグローバルSupervisor設定に含まれるconf.d
パスに追加されます。必要に応じて、このロールの外でプログラムレベルの設定を自分で管理することもできます。
supervisor_nodaemon: false
Supervisorをフォアグラウンドで実行する必要がある場合はtrue
に設定します。
supervisor_log_dir: /var/log/supervisor
Supervisorのログが保存される場所です。
supervisor_user: root
supervisor_password: 'my_secret_password'
supervisord
が実行されるユーザーと、SupervisorのHTTPサーバーに接続する際に使用するパスワードです(supervisorctl
アクセスや管理UIを表示するため)。
supervisor_unix_http_server_password_protect: true
supervisor_inet_http_server_password_protect: true
Unix HTTPおよびInet HTTPのパスワード保護をfalse
に設定することで無効にできます。これにより、supervisorctl
のパスワード保護も無効になります。
supervisor_unix_http_server_enable: true
supervisor_unix_http_server_socket_path: /var/run/supervisor.sock
UNIXソケットベースのHTTPサーバーを有効にするかどうか、および有効な場合に使用するソケットファイルです。
注意: デフォルトでは、このロールはローカルでアクセスできるUNIXソケット上のHTTPサーバーを有効にします。これには前に定義した
_user
と_password
を使用します。無許可のアクセスを防ぐために、セキュアなsupervisor_password
を設定してください! (また、HTTPサーバーが必要ない場合やsupervisorctl
を使用しない場合は、この変数をfalse
に設定してUNIX HTTPサーバーを無効にするべきです)。
supervisor_inet_http_server_enable: false
supervisor_inet_http_server_port: '*:9001'
TCPベースのHTTPサーバーを有効にするかどうか、および有効な場合にサーバーがリッスンすべきインターフェースとポートです。
依存関係
なし。
例プレイブック
- hosts: all
roles:
- geerlingguy.pip
- geerlingguy.supervisor
supervisorctl
を使用する必要がある場合は、Ansibleの組み込みsupervisorctl
モジュールを管理に使用するか、次のように実行できます(設定ディレクトリへの変数パスを考慮):
supervisorctl -c /etc/supervisor/supervisord.conf -u root -p [password] status all
ライセンス
MIT / BSD
著者情報
このロールは、Jeff Geerlingによって2017年に作成されました。彼はAnsible for DevOpsの著者です。
Supervisor (process state manager) for Linux.
ansible-galaxy install geerlingguy.supervisor