buluma.supervisor
Rôle Ansible supervisor
Supervisor (gestionnaire d'état de processus) pour Linux.
GitHub | Version | Problèmes | Demande de tirage | Téléchargements |
---|---|---|---|---|
Exemple de Playbook
Cet exemple est tiré de molecule/default/converge.yml
et est testé à chaque push, demande de tirage et publication.
---
- name: Converger
hosts: all
become: true
environment:
PATH: "/usr/local/bin:{{ ansible_env.PATH }}"
vars:
supervisor_user: root
supervisor_password: fizzbuzz
pre_tasks:
- name: mettre à jour le cache apt (Debian).
apt: update_cache=true cache_valid_time=600
when: ansible_os_family == 'Debian'
# Installer curl pour les tests.
- name: installer curl à des fins de test.
package: name=curl state=present
# Installer Apache pour les tests.
- block:
- name: installer Apache (RedHat).
package: name=httpd state=present
- name: s'assurer qu'Apache ne fonctionne pas (RedHat).
service: name=httpd state=stopped enabled=no
when: ansible_os_family == 'RedHat'
- block:
- name: installer Apache (Debian).
package: name=apache2 state=present
- name: s'assurer qu'Apache ne fonctionne pas (Debian).
service: name=apache2 state=stopped enabled=no
when: ansible_os_family == 'Debian'
- name: créer un fichier HTML de test à charger.
ansible.builtin.copy:
content: "<html><head><title>Test</title></head><body>Test.</body></html>"
dest: /var/www/html/index.html
force: false
group: root
owner: root
mode: 0644
# Ajouter Apache à supervisor_programs.
- name: définir la commande de démarrage d'Apache (Debian).
ansible.builtin.set_fact:
apache_start_command: apache2ctl -DFOREGROUND
when: ansible_os_family == 'Debian'
- name: définir la commande de démarrage d'Apache (RedHat).
ansible.builtin.set_fact:
apache_start_command: httpd -DFOREGROUND
when: ansible_os_family == 'RedHat'
- name: ajouter Apache à supervisor_programs.
ansible.builtin.set_fact:
supervisor_programs:
- name: 'apache'
command: "{{ apache_start_command }}"
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
roles:
- role: buluma.supervisor
tasks:
- name: déclencher les gestionnaires pour que le superviseur exécute tout ce qu'il doit exécuter.
ansible.builtin.meta: flush_handlers
post_tasks:
- name: attendre qu'Apache démarre (si cela doit se produire...).
ansible.builtin.wait_for:
port: 80
delay: 2
- name: vérifier qu'Apache répond sur le port 80.
ansible.builtin.uri:
url: http://127.0.0.1/
method: GET
status_code: 200
- name: vérifier que supervisorctl est disponible.
command: supervisorctl --help
args:
warn: false
changed_when: false
- name: valider que supervisorctl fonctionne via le socket UNIX par défaut.
community.general.supervisorctl:
name: apache
state: restarted
username: "{{ supervisor_user }}"
password: "{{ supervisor_password }}"
changed_when: false
- name: valider que supervisorctl fonctionne avec le socket unix
command: supervisorctl status
args:
warn: false
changed_when: false
La machine doit être préparée. Dans CI, cela se fait en utilisant molecule/default/prepare.yml
:
---
- name: Préparer
hosts: all
gather_facts: no
become: yes
serial: 30%
roles:
- role: buluma.bootstrap
- role: buluma.pip
- role: buluma.core_dependencies
Voir aussi une explication complète et un exemple sur la façon d'utiliser ces rôles.
Variables de rôle
Les valeurs par défaut des variables sont définies dans defaults/main.yml
:
---
# Installer une version spécifique de Supervisor en la définissant ici (par exemple '3.3.1').
supervisor_version: ''
# Choisir d'utiliser un script d'initialisation ou une unité systemd pour démarrer
# Supervisor lorsqu'il est installé et/ou après un démarrage du système.
supervisor_started: true
supervisor_enabled: true
supervisor_config_path: /etc/supervisor
# Une liste de `programs` que Supervisor contrôlera. Exemple commenté ci-dessous.
supervisor_programs: []
# - name: 'apache'
# command: apache2ctl -c "ErrorLog /dev/stdout" -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_nodaemon: false
supervisor_log_dir: /var/log/supervisor
supervisor_user: root
supervisor_password: 'mon_mot_de_passe_secret'
supervisor_unix_http_server_enable: true
supervisor_unix_http_server_socket_path: /var/run/supervisor.sock
supervisor_unix_http_server_password_protect: true
supervisor_inet_http_server_enable: false
supervisor_inet_http_server_port: '*:9001'
supervisor_inet_http_server_password_protect: true
Exigences
- Paquets pip listés dans requirements.txt.
État des rôles utilisés
Les rôles suivants sont utilisés pour préparer un système. Vous pouvez préparer votre système d'une autre manière.
Exigence | GitHub | Version |
---|---|---|
buluma.bootstrap | ||
buluma.pip | ||
buluma.core_dependencies |
Contexte
Ce rôle fait partie de nombreux rôles compatibles. Consultez la documentation de ces rôles pour plus d'informations.
Voici un aperçu des rôles connexes :
Compatibilité
Ce rôle a été testé sur ces images de conteneurs:
conteneur | tags |
---|---|
EL | 8 |
Debian | tous |
Ubuntu | tous |
Kali | tous |
La version minimale d'Ansible requise est 2.12, des tests ont été réalisés sur :
- La version précédente.
- La version actuelle.
- La version de développement.
Si vous trouvez des problèmes, veuillez les signaler sur GitHub
Journal des modifications
Licence
Informations sur l'auteur
Supervisor (process state manager) for Linux.
ansible-galaxy install buluma.supervisor