geerlingguy.supervisor

Ansible 角色:Supervisor

CI

一个在 Linux 上安装 Supervisor 的 Ansible 角色。

需求

需要安装 Python 的 pip。如果尚未安装,可以使用 geerlingguy.pip Ansible 角色先安装 Pip,然后再运行此角色。

角色变量

可用的变量如下,并附有默认值(见 defaults/main.yml):

supervisor_version: ''

通过在此设置特定版本的 Supervisor。如果未设置版本,运行该角色时将安装最新的稳定版本。

supervisor_started: true
supervisor_enabled: true

选择是否在安装时和/或系统启动后使用 init 脚本或 systemd 单元配置来启动 Supervisor。

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

作者信息

此角色由 Jeff Geerling 于 2017 年创建,他是 Ansible for DevOps 的作者。

安装
ansible-galaxy install geerlingguy.supervisor
许可证
mit
下载
553.6k
拥有者
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns