From 2b5ca6765518da216dcfc6d6c57e58e3eead9bac Mon Sep 17 00:00:00 2001 From: Mickael Asseline Date: Fri, 9 Jul 2021 08:01:37 +0000 Subject: [PATCH] docs: create Configuration/Ansible/Inventaires --- Configuration/Ansible/Inventaires.md | 177 +++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 Configuration/Ansible/Inventaires.md diff --git a/Configuration/Ansible/Inventaires.md b/Configuration/Ansible/Inventaires.md new file mode 100644 index 0000000..c8a0ec2 --- /dev/null +++ b/Configuration/Ansible/Inventaires.md @@ -0,0 +1,177 @@ +--- +title: Ansible - Les inventaires +description: Créer et gérer les inventaires Ansible +published: true +date: 2021-07-09T08:01:35.009Z +tags: ansible, configuration +editor: markdown +dateCreated: 2021-07-09T08:01:35.009Z +--- + +![](https://blog.dbi-services.com/wp-insides/uploads/sites/2/2021/03/ansible-logo.png) +# La struturation +
+ +
+ +## Informations +inventory = inventaire des machines et de leurs variables +inventory = +* fichier d'inventaire +* répertoire group_vars +* répertoire host_vars + +**Eléments éssentiels car il décrit votre infra :** +* vos serveurs +* vos types de serveurs + +**Deux types d'instances :** +* hosts +* groupes + +**Plusieurs formats :** +* ini = plat +* yaml = plus homogène +* json = pour manipuler + +Possiblité d'utiliser des patterns + +Groupe racine => all + +Groupes enfants + +**Exemple :** +* un groupe parent1 + * groupes enfants : enfant1 et enfant2 + * "sous" enfant de enfant2 : enfant3 + +``` +parent1 = srv4 + enfant1 = srv1 et srv2 + enfant2 = srv3 + enfant3= srv5 +``` + +## Format **init** +```init +[parent1] +srv4 +[enfant1] +srv1 +srv2 +[enfant2] +srv3 +[enfant3] +srv5 +[parent1:children] +groupe1 +groupe2 +[enfant2:children] +enfant3 +``` + +## Format **yaml** +```yaml +all: + children: + parent1: + hosts: + srv4: + children: + enfant1: + hosts: + srv1: + srv2: + enfant2: + hosts: + srv3: + children: + enfant3: + hosts: + srv5: +``` + +Passer un groupe à un autre groupe : +```yaml +all: + children: + parent1: + parent2: + hosts: + srv4: + children: + enfant1: + hosts: + srv1: + srv2: + enfant2: + hosts: + srv3: + children: + enfant3: + hosts: + srv5: + parent2: + hosts: + srv6: + srv7: + srv8: + srv9: +``` + +Utilisation de pattern : +```yaml +all: + children: + parent1: + parent2: + hosts: + srv4: + children: + enfant1: + hosts: + srv[1:2]: + enfant2: + hosts: + srv3: + children: + enfant3: + hosts: + srv5: + parent2: + hosts: + srv[6:]: +``` + +Un peu plus vers la pratique +* couche commune > common +* serveurs web nginx > webserver +* bases de données > dbserver +* applications dockerisées ou non > app / appdock + +Monitoring qui semble lié à toutes les machines users > monitoring + +```yaml +all: + children: + common: + children: + webserver: + hosts: + srv[1:4]: + dbserver: + hosts: + srv[5:6]: + app: + hosts: + srv[7:10]: + appdock: + hosts: + srv[11:15]: + monitoring: + children: + common: +``` + +## Format Json +https://linuxhint.com/ansible_inventory_json_format/ \ No newline at end of file