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で管理するプログラムのリストを定義できます。statepresentに設定すると、そのプログラムの設定ファイル([プログラム名].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
ライセンス
mit
ダウンロード
553.6k
所有者
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns