entanet_devops.ansible_role_supervisor
Ansible角色:Supervisor
这是一个用于在Linux上安装Supervisor的Ansible角色。
需求
需要安装Python的pip
。如果尚未安装,可以使用geerlingguy.pip
Ansible角色在运行此角色之前安装Pip。
角色变量
可用变量如下所示,带有默认值(参见defaults/main.yml
):
supervisor_version: latest
通过在这里设置特定版本来安装Supervisor。有关可用的Supervisor版本,请查看Pypi上的可用Supervisor版本。latest
会安装最新的稳定版本。
supervisor_started: true
supervisor_enabled: true
选择在安装Supervisor时和/或系统启动后使用初始化脚本还是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
访问,还是查看管理界面)。
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服务器,以及如果启用的话服务器应监听的接口和端口。
依赖
无。
示例Playbook
- 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 entanet_devops.ansible_role_supervisor