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的作者。

安装
ansible-galaxy install entanet_devops.ansible_role_supervisor
许可证
mit
下载
261
拥有者