ansible_role_supervisor
Ansible Роль: Supervisor
Это Ansible роль, которая устанавливает Supervisor на Linux.
Требования
Python pip
должен быть установлен. Если он еще не установлен, вы можете использовать роль Ansible geerlingguy.pip
для его установки перед запуском этой роли.
Переменные роли
Доступные переменные перечислены ниже, вместе с их значениями по умолчанию (см. defaults/main.yml
):
supervisor_version: latest
Установите конкретную версию Supervisor, указав ее здесь. См. доступные версии Supervisor на Pypi. latest
устанавливает последнюю стабильную версию.
supervisor_started: true
supervisor_enabled: true
Выберите, использовать ли скрипт инициализации или конфигурацию юнита 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
по умолчанию является пустым списком; вы можете определить список program
для управления Supervisor. Если вы установите state
на present
, то файл конфигурации программы (с названием [имя-программы].conf
) будет добавлен в путь conf.d
, включенный в общую конфигурацию Supervisor. Вы также можете управлять конфигурацией программы самостоятельно, вне этой роли, если вам нужна большая гибкость.
supervisor_nodaemon: false
Установите true
, если вам нужно запустить Supervisor в переднем плане.
supervisor_log_dir: /var/log/supervisor
Место, где будут храниться логи Supervisor.
supervisor_user: root
supervisor_password: 'my_secret_password'
Пользователь, от имени которого будет работать supervisord
, и пароль для подключения к HTTP-серверу Supervisor (либо для доступа к supervisorctl
, либо для просмотра административного интерфейса).
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
Необходимо ли включать HTTP-сервер на основе UNIX-сокета и файл сокета, который следует использовать, если включен.
Примечание: По умолчанию эта роль включает HTTP-сервер через UNIX-сокет, который может быть доступен локально, используя ранее определенные
_user
и_password
. Убедитесь, что вы установили надежныйsupervisor_password
, чтобы предотвратить несанкционированный доступ! (Или, если вам не нужен HTTP-сервер и вы не планируете использоватьsupervisorctl
, вы можете отключить UNIX HTTP-сервер, установив эту переменную вfalse
).
supervisor_inet_http_server_enable: false
supervisor_inet_http_server_port: '*:9001'
Необходимо ли включать HTTP-сервер на основе TCP и интерфейс и порт, на которых сервер должен слушать, если включен.
Зависимости
Нет.
Пример плейбука
- hosts: all
roles:
- geerlingguy.pip
- geerlingguy.supervisor
Если вам нужно использовать supervisorctl
, вы можете либо воспользоваться встроенным модулем supervisorctl
от Ansible для управления, либо запустить его так (учитывая переменную путь к каталогу конфигурации):
supervisorctl -c /etc/supervisor/supervisord.conf -u root -p [пароль] status all
Лицензия
MIT / BSD
Информация об авторе
Эта роль была создана в 2017 году Джеффом Гирлингом, автором Ansible для DevOps.
Supervisor (process state manager) for Linux.
ansible-galaxy install entanet-devops/ansible-role-supervisor