geerlingguy.supervisor
Ansible 角色:Supervisor
一个在 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 的作者。
Supervisor (process state manager) for Linux.
ansible-galaxy install geerlingguy.supervisor