|
3 years ago | |
---|---|---|
inventory | 3 years ago | |
roles | 3 years ago | |
.gitignore | 3 years ago | |
README.md | 3 years ago | |
all.yml | 3 years ago | |
iptables.yml | 3 years ago | |
monitoring.yml | 3 years ago | |
nginx.yml | 3 years ago | |
ssh.yml | 3 years ago | |
uwsgi.yml | 3 years ago |
README.md
Configuration
- Installer Ansible sur sa machine (
pacman -S ansible
). - Avoir un compte avec les droits sudo sur la machine cible.
- Ajouter un hôte à son
~/.ssh/config
pour simplifier la connexion :
Host aperture-labs
HostName v5.planet-casio.com
User <username>
Fonctionnement général
On défini d'une part un inventaires (des machines), avec des variables spécifiques à ces machines, et d'autre part des rôles, qui seront des états à atteindre, en effectuant des actions.
Inventaire
On défini dans un fichier, ici inventory/main.yml
un host.
Généralement c'est une IP + user + port ssh, etc, mais on profite de la config SSH pour ne mettre que l'alias.
Dans inventory/host_vars/aperture-labs.yml
, on défini des variables spécifiques à l'host aperture-labs
.
Aujourd'hui on a qu'un serveur, donc tout va bien. Dans le cas où on en a plusieurs, on peut aussi définir des variables dans inventory/group_vars
.
Dans ce cas, elles seront communes au groupe.
Rôle
Un rôle se compose de plusieurs dossiers et fichiers :
rolename
├── files
| └── static_file.cfg
├── defaults
│ └── vars.yml
├── tasks
│ └── main.yml
├── templates
| └── dynamic_file.cfg
└── vars
└── vars.yml
Le principal est tasks
: il contient la liste des opérations à effectuer.
Pour les grosses tâches, on peut écrire plusieurs fichiers et les appeler dans main.yml
.
Dans files
, on retrouve les fichiers de config à copier tels quels.
Dans templates
, on aura les fichiers qui devront être templatisés par Jinja2.
Dans default
et vars
, on place des variables spécifiques au rôle. vars
est prioritaire sur host_vars
et group_vars
, tandis que defaults
ne l'est pas.
Cf la documentation
pour avoir une idée de l'ordre de priorité.
Utiliser un rôle
Généralement, ça ressemble à ça :
# Dummy try with --check
ansible-playbook -i inventory/main.yml role.yml -vv --diff --check --ask-become-pass
# Real try
ansible-playbook -i inventory/main.yml role.yml -v --ask-become-pass
On sélectionne un inventaire avec -i
, on lui applique un (ou plusieurs) rôle.
Dans les options intéressantes, on a :
-v
: pour la verbosité, on peut monter à-vvvvv
--diff
: affiche les différences entre l'étât actuel et celui qu'on cherche à atteindre--check
: fait un dry-run sans modifier l'existant--ask-become-pass
: demande le mot de passe sudo sur le serveur distant
Variables
Variable name | Comment |
---|---|
sites_enabled | List of sites to enable from sites-available |
proxy_ports | List of ports to use with proxy_pass |
allowed_users | List of users allowed to login through SSH |