entanet_devops.ansible_role_supervisor
Ansibleロール: Supervisor
このAnsibleロールは、LinuxにSupervisorをインストールします。
要件
Pythonのpip
がインストールされている必要があります。まだインストールされていない場合は、geerlingguy.pip
Ansibleロールを使用して、まずPipをインストールしてください。
ロール変数
使用可能な変数は以下に示されており、デフォルト値も含まれています(defaults/main.yml
を参照)。
supervisor_version: latest
特定のバージョンのSupervisorをここで設定できます。利用可能なSupervisorのバージョンはこちらから確認できます。latest
を設定すると、最新の安定版がインストールされます。
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によって管理されるprogram
のリストを定義できます。state
をpresent
に設定すると、そのプログラムの設定ファイル([program-name-here].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
これらの変数をfalse
に設定することで、Unix HTTPおよびInet HTTPのパスワード保護を無効にできます。これにより、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
著者情報
このロールは2017年にJeff Geerlingによって作成されました。彼はAnsible for DevOpsの著者です。
Supervisor (process state manager) for Linux.
ansible-galaxy install entanet_devops.ansible_role_supervisor