SlideShare une entreprise Scribd logo
1  sur  281
Télécharger pour lire hors ligne
Formation
Ansible
Le Guide Complet du Débutant
Une formation
Anass IDI
Une formation
Introduction
1. Installation et configuration
2. Définition des concepts de base
3. Le format YAML
4. Maitrise des inventaires
5. Méthodes de connexion
6. Introduction aux commandes ad-hoc
7. Maîtrise des Playbooks
8. La puissance d’ansible: Les rôles
9. Découvrir les modules d’ansible
10. Informations complémentaires et bonnes pratiques
Conclusion
Plan de la formation
Une formation
Public concerné
Administrateur systèmes Linux
Ingénieurs DevOps, Cloud et automatisation
Exploitants souhaitant mette en œuvre Ansible
Curieux qui ont envie de découvrir Ansible
Passage obligé pour apprendre la CaaC
Une formation
Connaissances requises
Comprendre l’infra As a Code
Une formation
Anass IDI
Définition
Infrastructure en tant que code
Gestion d’un système informatique (l’infrastructure) au moyen de fichiers de définition
(le code)
Pourquoi l’infra as a code ?
Coûts
Incohére
nce
Dérives
Erreurs
Latences
Chaîne de production
Code
Contrôle
de version
Révision
de code
Intégration
Déploiement
Logiciels
Gérer la configuration
Une formation
Anass IDI
Problématique
Une formation
Objectifs
Décrire la configuration
Appliquer la configuration de manière
automatique
Conserver l’historique
Apporter des changements documentés
Détecter et corriger les configurations non
conformes
Une formation
Outils de gestion
Groupes et sous-groupes
Modification des configurations
Nouveaux paramètres
Automatisation
Ordre de priorité
Mesures correctives
Une formation
Outils de gestion
Accélérer les modifications et les
déploiements
Diminuer les risques d’erreurs humaines
Maintenir l’état du système
Découvrir Ansible
Une formation
Anass IDI
Création d’Ansible
Une formation
Développeur : Michael DeHaan
Première version : 23 avril 2012
Environnement : GNU/Linux, Unix-like,
Windows
Type : Gestionnaire de configuration
Licence : GNU GPL
Site web : https://ansible.com
Descriptif général d’Ansible
Une formation
Simple et agentless
Protocole de connexion : SSH
Type de fichiers : YAML
Les nouvelles versions : Tous les 4 mois
Architecture
Ansible
Inventaire SSH
Plugins
Playbooks Modules
Utilisateur
Cloud
Cloud
Hôte 1
Hôte 1
Hôte 1
Hôte 1
Découvrir
la certification Redhat
Une formation
Anass IDI
Une formation
Caractéristiques
L’inscription coûte 515 euros HT
L’examen dure 4 h
La certification est valable pendant 3 ans
Une formation
Compétences requises
Le titulaire de la certification est capable
d'accomplir les tâches suivantes
Utiliser des inventaires
Créer des playbooks
Utiliser des playbooks pour configurer des systèmes.
Créer des fichiers de configuration personnalisés
pour les hôtes
Créer des rôles Ansible
Utiliser Ansible Vault pour protéger les données
sensibles
Comprendre les prérequis et
les étapes d’installation
Une formation
Anass IDI
Prérequis
Une formation
Machine Linux/Unix disposant de
connexion SSH
Avoir tous les accès administrateur « Root »
Nœud de control
Python 2 (version 2.6 ou ultérieure)
Python 3 (versions 3.5 ou ultérieure)
Nœud géré
Ansible établit une connexion via SSH
Une formation
Un paquet communautaire appelé ansible
Un langage et un runtime minimalistes
appelés ansible-core
Installer les paquets
Installer la dernière version avec le gestionnaire de paquets de
votre système d'exploitation
Installer les paquets
Installer le paquet communautaire
Installer avec pip
Une formation
Installation de ansible-core
Installer ansible-core (version 2.11 et plus)
ou ansible-base (version 2.10) avec pip
Installer ansible-core à partir des sources du
dépôt GitHub
Installer les paquets
Installer Ansible sur des systèmes
d’exploitation spécifiques
Une formation
Anass IDI
Une formation
Installation avec pip
$ curl https://bootstrap.pypa.io/get-pip.py
-o get-pip.py
$ python get-pip.py --user
Ansible
$ python -m pip install --user ansible
Pip
Une formation
Installation avec pip
$ sudo python get-pip.py
$ sudo python -m pip install ansible
Installation globale
Une formation
Installation sur Ubuntu
$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository --yes --update
ppa:ansible/ansible
$ sudo apt install ansible
Configration PPA et installation d’Ansible
Une formation
Installation sur CentOs
$ sudo yum install epel-release
$ sudo yum install ansible
Une formation
Confirmer l’installation
$ ansible all -m ping --ask-pass
Vérifier qu’Ansible est installé correctement :
Une formation
Mettre à jour Ansible
Pour effectuer une mise à niveau
Supprimer la version d'Ansible installée,
puis passer à la dernière version
$ pip uninstall ansible
$ pip install ansible
Configurer Ansible
Une formation
Anass IDI
Règles de préséance
Paramètres de configuration
Les options de ligne de commande
Mots-clé du Playbook
Variables
La plus basse
La plus élevée
Paramètres de configuration
• /etc/ansible/ansible.cfg : configuration globale format INI
• /etc/ansible/hosts : inventaire
• /etc/ansible/roles : répertoire contenant les rôles
Une formation
La configuration suit l’ordre de priorité suivant
Le fichier dont le chemin d’accès absolu est indiqué
par ANSIBLE_CONFIG
ansible.cfg
~/.ansible.cfg
etc/ansible/ansible.cfg
Paramètres de configuration
Options de ligne de commande
Options de la ligne de commande
La configuration
• Mots-clés des playbooks
• Les variables de l'inventaire
• Les variables des playbooks
Une formation
Options de ligne de commande
Plusieurs valeurs à un paramètre qui n’accepte
qu’une seule
$ ansible -u mike -m ping myhost -u carol
Certains paramètres permettent plusieurs valeurs
$ ansible -i /path/inventory1 -i
/path/inventory2 -m ping all
Une formation
Mots-clés du playbook
Play (le plus général)
Blocks/includes/imports/roles
Tâches (les plus spécifiques)
Une formation
Exemple
hôtes : tous
connexion : ssh
tâches :
- name : Cette tâche utilise ssh.
ping :
- nom : Cette tâche utilise paramiko.
connexion : paramiko
ping :
Variables
Variables de connexion
• Mots-clé du playbook
• Option de ligne de commande
• Paramètres de configuration
=
Variables supplémentaires : -- extra-vars
Une formation
Sécurité d ’Ansible
Ansible ne chargera pas automatiquement un fichier
de configuration à partir du répertoire de travail
actuel si le répertoire est inscriptible dans le monde
entier
Une formation
Dernière configuration
Gestionnaire de paquets : ansible.cfg dans
/etc/ansible
Pip ou sources : Créer le fichier et remplacer les
paramètres
Comprendre l’architecture
de base
Une formation
Anass IDI
Nœuds
Nœuds de contrôle: machine sur laquelle Ansible est exécuté
Nœuds managés: machine sur laquelle Ansible effectue une suite de tâches
Nœud de
contrôle
Nœud de
contrôle
App3
App3
App2
App2
App1
App1
Nœuds
managés
Inventaire
Une liste de nœuds gérés
Nœud de
contrôle
App3
App2
App1
Nœuds
managés
App1 :
[192.168.31.1]
App2 :
[192.168.31.25]
App3 :
[192.168.31.33]
Inventaire
Playbook
Nœud de
contrôle
App3
App2
App1
Nœuds
managés
App1
App2
App3
Playbook
Listes ordonnées de tâches
Ecrit en YAML
Savoir les différentes
composantes du Playbook
Une formation
Anass IDI
Plays
Exécute une suite de tâches sur un ou plusieurs hosts, ou un ou plusieurs
groupes
Format : YAML
Playbook : fichier contenant un ou plusieurs plays
Playbook
Plays
Tâches
Unité d’action dans Ansible
Playbook
Plays
Tâches
Variables
Gérer les différences entre les systèmes
Playbook
Plays
Tâches
Variables
Playbook
Plays
Tâches
Variables
Modules
Les unités de code qu’Ansible exécute
Modules
Playbook
Plays
Tâches
Variables
Modules
Handlers
Handlers
Une formation
Rôles
Un rôle Ansible est un composant indépendant qui
permet de réutiliser des étapes de configuration
communes
Les rôles ont pour vocation de devenir génériques,
réutilisables et personnalisables grâce aux variables
Playbook
Plays
Tâches
Variables
Modules
Handlers
Rôles
Rôles
Découvrir le format YAML
Une formation
Anass IDI
Le format YAML
Une formation
Date d’apparition : 2001
Invention de : Clark EVANS
Objectif : Représenter les informations par code
et de façon lisible
Exemple
Une formation
Brownies.yml
---
recette: Brownies aux noix : 1
ingrédients:
- ingrédient: Farine: 70g
- ingrédient: chocolat noir
quantité: 200g
étapes:
- Mélanger le tout
- Allumer le four
- Laisser 30 minutes sous 180 degrès
# en variante, ajouter du sucre tendre
Bases
Une formation
Extension: .yml ou .yaml
Commencer le fichier par ---
Finir par . . .
Les commentaires commencent par #
Membres de listes commencent par –
Clé : Valeur
Comprendre les collections
Une formation
Anass IDI
Collections
Une formation
coquillettes.yml
---
recette: coquillettes au beurre
convives: 1
ingrédients:
- ingrédient: coquillettes quantité: 70g
- ingrédient: beurre
quantité: 15g
étapes:
- faire bouillir l'eau
- faire cuire les coquillettes dedans
- les égoutter
- mettre du beurre
# en variante, ajouter du fromage
Séquences
Correspondance
Styles de collections
- entrée
- plat
- dessert
manger: choucroute
boire: A
[ entrée , plat , dessert ]
{ manger: choucroute ,
boire: bière }
En bloc En flux
Imbrication des collections
Types d’objets
Scalaire
Dictionnair
e
Listes
Imbrication des collections
Une formation
key: value
map
key1: value1
key2: value2
list
- element1
- elment2
listOfMaps
- key1: value1a
key2: value1b
- key1: value2a
key2: value2b
Présenter les inventaires
Une formation
Anass IDI
Définition d’un inventaire
Une formation
Pour appliquer des playbooks, Ansible a besoin
de connaître la liste des instances sur lesquelles
il effectuera des changements
Pour cela, il utilise un système d’inventaire
Composition de l’inventaire
Une formation
La liste des hôtes avec leurs informations de
connection (DNS, ip, utilisateur, …)
Des groupes fonctionnels regroupant des
instances (app, webserver, bdd, …)
Emplacement d’un inventaire
Une formation
Les fichiers de configuration d’Ansible se trouvent dans le
répertoire /etc/ansible :
/etc/ansible/ansible.cfg
/etc/ansible/hosts
/etc/ansible/roles Inventaire
Présentation des types
Statique Dynamique
Fichier texte .ini ou .yml Script = fichier exécutable
Inventaire statique
Récupérer manuellement toutes les
adresses IP des machines
Construire l’inventaire
Ce type de supporte pas de mise à l’échelle
automatiquement en cas de changement
Inventaire dynamique
Une formation
Si le fichier d’inventaire est exécutable
On parle alors de script d’inventaire :
{ "test":
{ "hosts":
[ "test1.example.com" ,
"test2.example.com" ]
}
}
Répertoire d’inventaire
Une formation
Un inventaire statique
Un inventaire dynamique
Exemples
mail.example.com
[webservers]
foo.example.com
bar.example.com
[dbservers]
one.example.com
two.example.com
three.example.com
[test]
test1.example.com
test2.example.com
Un inventaire format INI
Exemples
all:
hosts:
mail.example.com:
children:
webservers:
hosts:
foo.example.com:
bar.example.com:
dbservers:
hosts:
one.example.com:
two.example.com:
three.example.com:
Un inventaire format Yaml
Découvrir les groupes
d’inventaires
Une formation
Anass IDI
Présentation des groupes
All : contient tous les hosts
Ungrouped : hosts qui ont un seul groupe « All »
Création de groupe :
Quoi ? Où ? Quand ?
Objectifs de groupes
Regrouper les Hôtes sur base de
La fonction
L’emplacement
La phase
Découvrir les variables et les
alias dans inventaire
Une formation
Anass IDI
Les variables
Une formation
Chaque host peut avoir ses propres variables
Chaque host peut redéfinir la configuration
d’Ansible
Les variables et paramètres définis dans l’inventaire
sont prioritaires par rapport au Playbook
Affectation d’une variable
[atlanta]
host1 http_port=80 maxRequestsPerChild=808
host2 http_port=303 maxRequestsPerChild=909
atlanta:
host1:
http_port: 80
maxRequestsPerChild: 808
host2:
http_port: 303
maxRequestsPerChild: 909
Format INI
Format YAML
Les alias
Une formation
A chaque fois, pour déployer un playbook sur un nœud
managé, au lieu de saisir son adresse IP on met en place
un alias à savoir my_host :
my_host ansible_ssh_host=192.168.0.18 [webservers]
my_host
Comprendre la connexion
entre deux machines
Une formation
Anass IDI
Méthodes de connexion
OpenSSH natif
ControlPersist Paramiko
Autres méthodes de connexion
Plugin de connexion
Ansible-pull
Utilisateur distant
Possibilité de définir un utilisateur différent du nœud de contrôle
Pourquoi
Effectuer des tâches avec
certains privilèges
Le mot-clé « become »
Comment
Le mot-clé become
become
become_user
Become-method
défini à yes pour activer l'escalade des privilèges
défini sur l'utilisateur avec les privilèges souhaités
remplace la méthode par défaut définie dans ansible.cfg
Présenter le protocole SSH
Une formation
Anass IDI
Introduction au protocole SSH
Une formation
SSH = Secure Shell (Port 22)
Assurer la connexion à distance des utilisateurs à
d'autres systèmes
Accéder à l’intérieur de son serveur distant pour
effectuer des configurations ou actions
Utilisation sur différents systèmes
Mac
Linux
Windows < 10
Windows >= 10
PUTTY
SSH
Comment ça marche ?
SSH Client SSH serveur
Port 22
Connecter deux machines sur
AWS
Une formation
Anass IDI
Etapes fondamentales
Install
• Installer Ansible sur le nœud de contrôle
Config
• Configurer SSH sur le nœud géré
• Ajouter un inventaire
Test
• Tester la connexion
Installer Ansible sur le nœud de contrôle
EC2 de
contrôle
EC2 gérée
Ansible
NB : l’activation du port 22 au niveau du groupe de sécurité est primordiale
Python
Configurer SSH
Une formation
Configurer l'agent SSH
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
Ajouter le fichier de clé privée
$ ssh-agent bash
$ ssh-add ~/.ssh/keypair.pem
Méthode 1
Configurer SSH
EC2 de
contrôle
EC2 gérée
$ssh-keygen
$sudo nano
.ssh/authorized_keys
Génération d’une clé
Configuration des clés autorisées
Méthode 2
Ajouter un inventaire
EC2 de
contrôle
$sudo nano
/etc/ansible/hosts
/etc/ansible/hosts
[hosts]
host1 ansible_ssh_host= IP_ADDRESS
/etc/ansible/hosts
[hosts]
host1 ansible_ssh_host= IP_ADDRESS
Exécution contre le nœud de contrôle
Une formation
Commande pour exécuter contre le nœud de contrôle
$ ansible localhost -m ping -e
'ansible_python_interpreter="/usr/bin/env
python"'
Tester la connexion
Le module ping permet de savoir si la communication avec toutes les machines
indiquées dans l’inventaire se fait correctement :
$ ansible all -m ping
host1 | SUCCESS => {
"changed": false,
"ping": "pong
}
Commande
Résultat
Présenter les commandes
ad-hoc
Une formation
Anass IDI
Commandes ad-hoc
Une formation
Automatiser sur des nœuds gérés
Rapides et Faciles
Non réutilisables
Démontrer la puissance d’Ansible
Propriétés des commandes ad-hoc
Une formation
Exécute une seule tâche en ligne de commande
Ne nécessite pas de Playbook
Utile pour tester une tâche ou exécuter une action
simple
$ ansible [pattern] -m [module] -a "[module
options]"
Cas d’utilisation des commandes ad-hoc
Redémarrer des
serveurs
Copier des fichiers
Gérer des paquets
Pratiquer les cas d’utilisation
des commandes ad-hoc
Une formation
Anass IDI
Redémarrer les serveurs
• Ajouter le groupe à l’inventaire
Etape 1
• dentification SSH active
Etape 2
• Lancer la commande de
redemarrage
Etape 3
Redémarrer les serveurs
Une formation
Redémarrer tous les serveurs du groupe
$ ansible atlanta -a "/sbin/reboot«
Redémarrer les serveurs avec 10 fourches parallèles
$ ansible atlanta -a "/sbin/reboot" -f 10
/usr/bin/ansible
Se connecter sous un autre utilisateur
$ ansible atlanta -a "/sbin/reboot" -f 10 -u
username
Gestion de fichiers
Pour transférer un fichier directement vers tous les serveurs du groupe
$ ansible atlanta -m ansible.builtin.copy -a
"src=/etc/hosts dest=/tmp/hosts"
Répétition ansible.builtin.template
Gestion de fichiers
permet de changer la propriété et les
permissions sur les fichiers
ansible.builtin.file
Gestion des paquets
installer, mettre à jour ou supprimer
des paquets sur les nœuds gérés
ansible.builtin.yum
Gestion des utilisateurs et des groupes
créer, gérer et supprimer des comptes
utilisateurs sur vos nœuds gérés
ansible.builtin.user
Gestion des services
Assurer qu'un service est démarré sur
tous les serveurs
ansible.builtin.service
Collecte des facts
Voir tous les facts du système
ansible.builtin.setup
Présenter les Playbooks
Une formation
Anass IDI
Playbook
Une formation
Un système de gestion configuration et de
déploiement
Simple, répétable et réutilisable
Format YAML
Liste des
serveurs
Liste des
tâches
+
Playbook
Playbook
Un système de gestion configuration et de déploiement
Simple, répétable et réutilisable
Format YAML
Un playbook permet d'appliquer des taches sur les serveurs de l'inventaire
Pourquoi utiliser les Playbooks
Une formation
Des scénarios complexes
Ils sont gardés sous une source de contrôle (git)
Assurer des configurations conformes aux
spécifications
Exemple
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
tasks:
- name: ensure apache is at the last version
yum:
name: httpd
state: latest
- name: write the apache config file
template:
src: /srv/httpd.j2
dest: /etc/httpd.conf
Tâches
Play Playbook
Quelques cas d’utilisation
Une formation
Exécution de tâches sur une machine différente
Regrouper un ensemble de tâches avec des blocs
Exécuter des tâches uniquement lorsque quelque
chose a changé
Définition de valeurs d'environnement à distance
La commande ansible-playbook
ansible-playbook
Appliquer le contenu d’un livret
$ ansible-playbook -v
principes-hosts.yml
Découvrir les variables
des Playbooks
Une formation
Anass IDI
Les variables
La création des variables se fait avec la syntaxe YAML standard
Endroit de définition
Playbook
Inventaire
Rôles
CLI
Récupération des variables
Une formation
Une variable ansible peut être définie à plusieurs
endroits
CLI vars
Inventories
Group vars
Host vars
Extra Vars
Ordre de priorité des variables
Une formation
Passées sur la ligne de commande
Définies dans le Playbook
Automatiquement définies par Ansible
Définies dans l’inventaire
Ordre de priorité des variables
Une formation
Une variable est définie par un couple clé/valeur où la clé
est normalisée
my_string: "value"
my_list: ["blob", "alice"]
my_lisy:
- "bob"
- "alice"
my_dict:
item1: value1
item2: value2
Exemple des variables en CLI
Une formation
variables-lignecom.yml
---
- hosts: test
tasks:
- name: affichage de la variable var
command: echo {{ var }}
$ ansible-playbook -v -e var=toto variables-
lignecom.yml
Exemple des variables dans l’inventaire
Une formation
/etc/ansible/hosts
[test]
test1.example.com var=test1 test2.example.com var=test2
variables-inventaire.yml
---
- hosts: test
tasks:
- name: affichage de la variable var
command: echo {{ var }}
Comprendre le rôle des facts
dans le playbook
Une formation
Anass IDI
Les facts
Une formation
Les faits Ansible sont des données relatives à vos
systèmes distants
Les systèmes d'exploitation
Les adresses IP
Les systèmes de fichiers attachés
Désactivation = INJECT_FACTS_AS_VARS
Désactivation des faits
Une formation
Le fait de désactiver la collecte des facts au niveau de la
pièce pour améliorer l'évolutivité
La désactivation des faits peut particulièrement améliorer
les performances
Pour désactiver la collecte de faits :
hosts: whatever
gather_facts: no
Ajout de données personnalisées
Une formation
Ajout des valeurs personnalisées
Ecrire un module de faits personnalisés
Définir des faits temporaires avec une tâche
ansible.builtin.set_fact
Fournir des faits personnalisés permanents en utilisant le
répertoire facts.d
Maîtiser les conditions dans
le playbook
Une formation
Anass IDI
Principe des conditions
Une formation
Une tâche ne peut être exécutée que si une
condition est vérifiée
Types de conditions
Une formation
Les conditions avec « when »
Les conditions basées sur des variables
Les conditions basées sur des variables enregistées
Les conditions avec « when »
Une formation
L'instruction conditionnelle la plus simple s'applique
à une seule tâche est : when
Création de la tâche
Ajouter une instruction when pour effectuer le test
Les conditions avec « when »
Une formation
tasks:
- name: Configure SELinux to start mysql on any port
ansible.posix.seboolean:
name: mysql_connect_any
state: true
persistent: yes
when: ansible_selinux.status == "enabled"
Condition
Conditions basées sur des variables
enregistrées
Une formation
Besoin: Exécution ou ignorance d’une tâche en fonction
du résultat d'une tâche précédente
Enregistrement du résultat de la tâche précédente en
tant que variable
Création d’un test conditionnel basé sur la variable
enregistrée
Une formation
- name: Test play
hosts: all
tasks:
- name: Register a variable
ansible.builtin.shell: cat /etc/motd
register: motd_contents
- name: Use the variable in conditional statement
ansible.builtin.shell: echo "motd contains the word hi"
when: motd_contents.stdout.find('hi') != -1
Conditions basées sur des variables
enregistrées
Conditions basées sur des variables
Une formation
Des conditions nécessitant une entrée booléenne :
vars:
epic: true
monumental: "yes"
Ansible exécutera l'une des
tâches et ignorera l'autre
Savoir les différentes utilisations
des tags
Une formation
Anass IDI
Principe des étiquettes « tags »
Une formation
Les étiquettes (tags) sont des chaînes de caractères
arbitraires associées à des structures d’Ansible
principalement des tâches ou des rôles
Processus d’exécution des tags
Une formation
Ajouter des balises aux tâches
Sélection des balises lors de l’exécution des
Playbooks
+
Exemple des tags
- Yum :
name: httpd
tags: package
ansible-playbook tag.yml --tags "conf"
ansible-playbook tag.yml --skip-tags
"service"
ansible-playbook tag.yml --list-tags
- Copy :
src: httpd.conf
dest: httpd.conf
tags: conf
- Service :
name: httpd
state: restarted
tags: service
Utilisation des étiquettes
Options de la commande ansible-playbook
-v --skip-tags
Exécuter les tâches
correspondant aux étiquettes
indiquées
Ne pas exécuter les tâches
correspondant aux étiquettes
indiquées
Ajout des balises à des tâches individuelles
Ajout des balises aux tâches dans les livres de jeu, dans les fichiers de tâches ou dans
un rôle
tasks:
- name: Install the servers
ansible.builtin.yum:
name:
- httpd
- memcached
state: present
tags: - packages
---
- hosts: test
remote_user: root
tasks:
- name: install. nginx p
package:
name: nginx
state: present
tags:
- installation
Découvrir et pratiquer
les boucles
Une formation
Anass IDI
Qu’est ce qu’une boucle ?
Début
Si la
condition est
vraie
Exécuter une action
oui
Non
Générer une boucle sur une liste
Une formation
Types de listes
Items : éléments de la liste
Dictionnaire : sur les clé/valeur du dict
Variable de la boucle : {{ item }}
Génération de boucle simple sur une liste
- name: Restart with Loop
service:
name: "{{ item }}"
state: restarted
loop:
- httpd
- ntpd
- name: Restart with Loop
service:
name: "{{ item.name }}"
state: "{{ item.state }}«
loop:
- name: httpd
state: restarted
- name: ntpd
state: started
Type de liste : items Type de liste : items
Définir la liste en tant que variable
loop: "{{ somelist }}"
- name: Restart with httpd
service:
name: "{{ item }}"
state: restarted
- name: Restart with ntpd
service:
name: "{{ item }}"
state: restarted
Itération sur une liste de hachages
Une formation
- name: Restart with Loop
service:
name: "{{ item.name }}"
state: restarted
loop:
- { name: ‘httpd’}
- { name : ‘ntpd’}
Itération sur un dictionnaire
Une formation
- name: Using dict2items
ansible.builtin.debug:
msg: "{{ item.key }} - {{ item.value }}"
loop: "{{ tag_data | dict2items }}"
vars:
tag_data:
Environment: dev
Application: payment
Ajout de contrôle aux boucles
Une formation
- debug:
msg: "{{ index }} {{ value }}"
loop:
- httpd
- sshd
loop_control:
loop_var: value
index_var: index
Ajout de contrôle aux boucles
Une formation
- debug:
msg: "{{ item.state }}"
loop:
- name: httpd
state: started
loop_control:
label: "{{ item.state }}"
Ajout de contrôle aux boucles
Une formation
- service:
- name: "{{ item }}"
state: started
loop:
- httpd
-ntpd
loop_control:
pause: 3
Comparaison entre loop et with_*
Une formation
Les mots-clés with_<lookup> s'appuient sur les
plugins de recherche
Le mot-clé loop est équivalent à with_list
Comparaison entre loop et with_*
Une formation
With_* + migrer de with_X vers loop
Loop
Comparaison entre loop et with_*
Une formation
loop: "{{ lookup('fileglob',
'*.txt', wantlist=True) }}"
with_fileglob: '*.txt'
Comprendre la délégation
Une formation
Anass IDI
Principe de la délégation
Une formation
La délégation permet de forcer une action en
local/remote
Déporte une tâche sur une autre machine
Gérer des environnements interdépendants de
manière précise et efficace
Délégation de tâches
Une formation
La délégation permet de forcer une action en local/remote
hosts: ci
Tasks:
- name: Wait for Jenkins to started
wait_for:
host: ci.alphorm
state: present
delay: 2
timeout: 120
delegate_to: 127.0.0.1
Délégation de facts
Une formation
Pour affecter les facts collectés à l'hôte délégué au lieu de
l'hôte actuel :
---
- hosts: app_servers
tasks:
- name: Gather facts from db servers
ansible.builtin.setup:
delegate_to: "{{ item }}"
delegate_facts: true
loop: "{{ groups['dbservers'] }}"
Playbooks locaux
Une formation
Définir la ligne hosts : hosts : 127.0.0.1
Exécuter le playbook comme suit :
$ansible-playbook playbook.yml --
connection=local
Gérer les privilèges
Une formation
Anass IDI
L'escalade des privilèges
Une formation
Les systèmes d'escalade de privilèges permettent
d’exécuter des tâches avec les privilèges de root ou
autres autorisations
Le mot clé become
become défini à yes pour activer l'escalade des privilèges
- name: Ensure the httpd service is running
service:
name: httpd
state: started
become: yes
become_user défini sur l'utilisateur avec les privilèges souhaités
- name: Run a command as the apache user
command: somecommand
become: yes
become_user: apache
Le mot clé become
Become-method remplace la méthode par défaut définie dans ansible.cfg
- name: Run a command as nobody
command: somecommand
become: yes
become_method: su
become_user: nobody
Le mot clé become
remote_
user
Nom de l’utilisateur pour la connexion SSH
- name: My Play
hosts: all
remote_user: admin
tasks:
- name: Ensure httpd is present
yum:
name: httpd
state: present
become: true
become_user: webuser
Le mot clé become
Risques et limites de become
Une formation
Risques liés au fait de devenir un utilisateur
non privilégié
Le fichier de module est non lisible par
l'utilisateur qu'Ansible doit devenir
Présenter les rôles
Une formation
Anass IDI
Définition des rôles
Une formation
Les rôles sont des regroupements de tâches qui forment
des composants, basés sur une structure définie.
Regroupe et
ordonne
Template pour
les inventaire
Attribue des
variable
Réutilisable
Principe des rôles
Une formation
Un rôle est la décomposition des différentes parties d’un
playbook .
Une fonction précise organise ces parties dans un ensemble
de répertoires et de fichiers.
La structure des rôles
Une formation
roles/
common/
tasks/
handlers/
library/
files/
templates/
vars/
defaults/
meta/
8 répertoires
standards
principaux
Stockage et recherche des rôles
Une formation
Recherche
et
stockage
des rôles
Recherche
et
stockage
des rôles
La configuration
roles_path
La configuration
roles_path
Répertoire /roles
Répertoire /roles
/etc/ansible/roles
/etc/ansible/roles
Ancienne utilisation VS Nouvelle
utilisation
Une formation
Ancienne façon :
utiliser les rôles dans une
pièce
Utilisation classique et
statique
Nouvelle façon :
• import_role
• include_role
Plus de flexibilité et de facilité
d’intervention.
Utilisation originale et classique
Une formation
roles.yml
---
- hosts: test
remote_user: root
roles:
- nginx
- postgresql
Utilisation de include et import
Une formation
- hosts: webservers
tasks:
- debug:
msg: "before we run our role"
- import_role:
name: example
- include_role:
name: example
vars:
foo: bar
- debug:
msg: "after we ran our role"
Exécution d’un rôle de façon multiple
Une formation
# playbook.yml
---
- hosts: webservers
roles:
- foo
- foo
# roles/foo/meta/main.yml
---
allow_duplicates: true Exécution multiple
Utilisation des dépendances de rôles
Une formation
Objectif : permet de tirer automatiquement d’autres rôles
Les dépendances de rôle sont des conditions préalables,
et non de véritables dépendances
Emplacement : le fichier meta/main.yml
Utiliser les handlers
avec Ansible
Une formation
Anass IDI
Principe des handlers
Une formation
Objectif
Permet de déclencher l’exécution de certaines actions à la
suite des tâches à accomplir si celles-ci le sont
effectivement
Référencé par plusieurs tâches
Exécuté qu’une seule fois
Exécuté dans l’ordre prédéfini
Exécute des opérations sur changement
Contrôle de l’éxécution des handlers
Une formation
tasks:
- name: Some tasks go here
ansible.builtin.shell: ...
- name: Flush handlers
meta: flush_handlers
- name: Some other tasks
ansible.builtin.shell: ...
déclenche tous les handlers
notifiés
Utilisation de variables avec les
gestionnaires
Une formation
Placer les variables dans les paramètres de la tâche
du gestionnaire
Charger les valeurs en utilisant include_vars
Ecouter des sujets génériques: listen: « restart web
services »
Notifier les sujets génériques: notify: "restart web
services"
Exemple de « listen »
Une formation
handlers:
- name: Restart memcached
ansible.builtin.service:
name: memcached
state: restarted
listen: "restart web services"
- name: Restart apache
ansible.builtin.service:
name: apache
state: restarted
listen: "restart web services"
Exemple de « notify »
Une formation
tasks:
- name: Restart everything
ansible.builtin.command: echo "this task will
restart the web services"
notify: "restart web services"
Apprendre à utiliser Galaxy
Une formation
Anass IDI
Principe de Galaxy
Une formation
Galaxy est un site Web permettant le téléchargement
et le télé dépôt de rôles réalisés par la communauté
Un repository communautaire
https://galaxy.ansible.com
Contient les rôles
La commande ansible-galaxy
# Chercher un rôles
$ansible-galaxy search <string>
# Afficher les informations d’un rôle
$ansible-galaxy info
# Installer/désinstaller
$ansible-galaxy <install/remove>
# Liste les rôles trouvés localement
$ansible-galaxy list
# Créer un rôle
$ansible-galaxy init
Une formation
Le partage des rôles
Ansible Galaxy
Noter et évaluer un
rôle
Télécharger un rôle
Trouver un rôle
Présenter les modules
Une formation
Anass IDI
Introduction des modules
Une formation
Des unités discrètes de code utilisées à partir de la
CLI ou dans une tâche de playbook
Ansible exécute chaque module, généralement sur le
nœud géré distant, et collecte les valeurs de retour
Principe des modules
Une formation
Les modules sont les composants d’Ansible qui
effectuent les actions sur les machines distantes
Ansible propose de très nombreux modules
A partir de la CLI
Une formation
$ ansible webservers -m service -a
"name=httpd state=started«
$ ansible webservers -m ping
$ ansible webservers -m command -a
"/sbin/reboot -t now"
A partir des playbooks
Une formation
- name: reboot the servers
command: /sbin/reboot -t now
OU
- name: restart webserver
service:
name: httpd
state: restarted
Comprendre le module command
Une formation
Anass IDI
Introduction
ansible.builtin.com
mand
Exécuter des commandes sur
des cibles
Ansible-base
Toutes les installations
Introduction
Conditions d’exécution
Une formation
Répertoire courant
Exécution en fonction de
La présence d’un fichier
L’absence d’un fichier
Synopsis
Une formation
module-command.yml
---
- hosts: test
remote_user: root
tasks:
- name: création clé rndc
command: rndc-confgen
-a -r /dev/urandom
args:
creates: /etc/rndc.key
le nom de la
commande suivi
d'une liste
d'arguments
Synopsis
Une formation
module-command.yml
---
- hosts: test
remote_user: root
tasks:
- name: création clé rndc
command: rndc-confgen
-a -r /dev/urandom
args:
creates: /etc/rndc.key
exécution sur tous les
nœuds sélectionnés
Synopsis
Les variables comme $HOSTNAME et les opérations comme
"*", "<", ">", "|", " ;" et "&"
ne fonctionneront pas
ansible.builtin.shell
Synopsis
Les cibles Windows
ansible.windows.win_copy
Exemples
Une formation
- name: Return motd to registered var
ansible.builtin.command: cat /etc/motd
register: mymotd
Exemples
Une formation
# 'cmd' is module parameter
- name: Run command if /path/to/database does not exist
(with 'cmd' parameter)
ansible.builtin.command:
cmd: /usr/bin/make_database.sh db_user db_name
creates: /path/to/database
Comprendre le module copy
Une formation
Anass IDI
Introduction
ansible.builtin.copy Copie des fichiers à des emplacements distants
Introduction
Ansible-base
Toutes les installations
Synopsis
Copier des fichiers depuis des emplacements distants vers
la machine locale
ansible.builtin.fetch
Synopsis
Interpolation variable dans les fichiers copiés
ansible.builtin.template
Synopsis
Les cibles Windows
ansible.windows.win_copy
Exemples
Une formation
module-copy.yml
---
- hosts: test
remote_user: root
tasks:
- name: config. system
copy:
src: opendoc.conf
dest: /etc/rsys.d/opendoc.conf
owner: root
group: root
mode: 0444
notify:
- restart rsys
Exemples
Une formation
- name: Copy a "sudoers" file on the remote machine for
editing
copy:
src: /etc/sudoers
dest: /etc/sudoers.edit
remote_src: yes
validate: /usr/sbin/visudo -cf %s
Comprendre le module cron
Une formation
Anass IDI
Introduction
ansible.builtin.cron Gestion des entrées cron.d et crontab
Introduction
Ansible-base
Toutes les installations
Synopsis
Travaux gérés
Ligne de
description
« nom »
Réutilisés par
de futures
modules
Trouver/vérifier
l’état
Exemples
Une formation
module-cron.yml
---
- hosts: test
remote_user: root
tasks:
- name: cron sauvegarde
cron:
name: sauvegarde
cron_file: svg
minute: 0
hour: 1
weekday: 7
user: root
job: /usr/local/bin/svg
Exemples
- name: Removes "APP_HOME" environment variable from
crontab
ansible.builtin.cron:
name: APP_HOME
env: yes
state: absent
- name: Removes a cron file from under /etc/cron.d
ansible.builtin.cron:
name: "yum autoupdate"
cron_file: ansible_yum-autoupdate
state: absent
Comprendre le module debug
Une formation
Anass IDI
Introduction
ansible.builtin.debug
Imprimer les déclarations
pendant l'exécution
Introduction
Une formation
Ansible-base
Toutes les installations
Synopsis
Une formation
Afficher un message ou le contenu d’une
variable
Déboguer des variables sans arrêter le
playbook
Déboguer avec la directive 'when:’
Supporté par Windows
Exemples
Une formation
module-debug.yml
---
- hosts: test
tasks:
- name: affichage message
debug:
msg: 'ceci est un test'
- name: affichage variable
debug:
var: ansible_distribution
Exemples
- name: Print return information from the previous task
ansible.builtin.debug:
var: result
verbosity: 2
- name: Get uptime information
ansible.builtin.shell: /usr/bin/uptime
register: result
Comprendre le module file
Une formation
Anass IDI
Introduction
ansible.builtin.file
Gérer les fichiers et les
propriétés des fichiers
Introduction
Une formation
Ansible-base
Toutes les installations
Synopsis
Définir / Supprimer
Fichiers
Liens
symboliques
Répertoires
Synopsis
ansible.builtin.template
ansible.builtin.copy
ansible.builtin.assemble
Synopsis
Les cibles Windows
ansible.windows.win_copy
Exemples
Une formation
module-file.yml
---
- hosts: test
remote_user: root
tasks:
- name: vérif. /srv/www
file:
path: /srv/www
state: directory
owner: root
group: root
mode: 0555
Exemples
# create a directory if it doesn't exist
- file:
path: /etc/some_directory
state: directory
mode: 0755
# updates modification and access time of given file
- file:
path: /etc/some_file
state: file
mode: 0755
modification time: now
access time: now
Comprendre le module get_url
Une formation
Anass IDI
Introduction
ansible.builtin.get_url
Télécharge les fichiers depuis HTTP,
HTTPS ou FTP vers le nœud
Introduction
Ansible-base
Toutes les installations
Synopsis
HTTP
HTTPS
FTP
Synopsis
Les cibles Windows
ansible.windows.win_get_url
Exemples
Une formation
module-get_url.yml
---
- hosts: test
remote_user: root
tasks:
- name: téléchargement
get_url:
url: http://www.example.com/test.tar.gz
dest: /tmp/test.tar.gz
owner: root
group: root
mode: 0644
Exemples
- name: Download file and force basic auth
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
force_basic_auth: yes
- name: Download file with custom HTTP headers
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
headers:
key1: one
key2: two
Comprendre le module
lineinfile
Une formation
Anass IDI
Introduction
ansible.builtin.lineinfile
Gérer les lignes dans
les fichiers texte
Introduction
Ansible-base
Toutes les installations
Synopsis
Une formation
Assurer qu'une ligne particulière se trouve dans un
fichier
Ajouter ou remplacer une ligne existante
Synopsis
Changer plusieurs lignes
ansible.builtin.replace
Insérer/mettre à jour/supprimer
Synopsis
ansible.builtin.blockinfile
Exemples
Une formation
module-lineinfile.yml
---
- hosts: test
remote_user: root
tasks:
- name: modif. /etc/hosts
lineinfile:
path: /etc/hosts
line: '198.51.100.33 test.example.com'
regexp: '^198.51.100.33'
Exemples
- name: Ensure php extension matches new pattern
lineinfile:
path: /etc/httpd/conf/httpd.conf
search_string: '<FilesMatch ".php[45]?$">'
insertafter: '^t<Location />n’
line: ' <FilesMatch ".php[34]?$">'
- name: Ensure we have our own comment added to
/etc/services
ansible.builtin.lineinfile:
path: /etc/services
regexp: '^# port for http’
insertbefore: '^www.*80/tcp’
line: '# port for http by default'
Comprendre le module
package
Une formation
Anass IDI
Introduction
ansible.builtin.package
Gestionnaire de paquets
de l'OS générique
Introduction
Ansible-base
Toutes les installations
Synopsis
Une formation
Gérer les paquets sur une cible sans spécifier un
module de gestion de paquets
Ce module agit comme un proxy vers le module de
gestion de paquets sous-jacent
Synopsis
Les cibles Windows
ansible.windows.win_package
Exemples
Une formation
module-package.yml
---
- hosts: test
remote_user: root
tasks:
- name: install. nginx
package:
name: nginx
state: present
Exemples
- name: Remove the apache package
ansible.builtin.package:
name: "{{ apache }}"
state: absent
- name: Install the latest version of Apache and MariaDB
ansible.builtin.package:
name:
- httpd
- mariadb-server
state: latest
Comprendre le module
service
Une formation
Anass IDI
Introduction
ansible.builtin.ser
vice
Gérer les services
Introduction
Ansible-base
Toutes les installations
Synopsis
Une formation
Contrôler les services sur les hôtes distants
Gérer des daemons (activation, démarrage,
redémarrage, etc.)
Le module service est souvent utilisé dans des
gestionnaires
Synopsis
Les cibles Windows
ansible.windows.win_service
Exemples
module-service.yml
---
- hosts: test
remote_user: root
tasks:
- name: installation de nginx
package:
name: nginx
state: present
notify:
- enable start nginx
handlers:
- name: enable start nginx
service:
name: nginx
enabled: yes
state: started
- name: Restart service httpd, in all cases
ansible.builtin.service:
name: httpd
state: restarted
- name: Reload service httpd, in all cases
ansible.builtin.service:
name: httpd
state: reloaded
Exemples
Comprendre les modèles
Une formation
Anass IDI
Les modèles
Une formation
Des fichiers qui supportent différentes
transformations
Un système Jinja2
La modélisation Jinja2
Jinja2
Accès aux
variables
Expressions
dynamiques
Le contrôleur Ansible crée tous les modèles
La modélisation minimise les besoins en paquets sur la cible
Les filtres
Une formation
Transformer de JSON en YAML
Diviser une URL pour extraire le nom d'hôte
Obtenir le hachage SHA1 d'une chaîne
Ajouter ou multiplier des entiers
Gérer les variables manquantes ou indéfinies
Exemple
Une formation
Template-playbook.yml
---
- hosts: servers
tasks:
- name: Template a file to /etc/file.conf
ansible.builtin.template:
src: /mytemplates/foo.j2
dest: /etc/file.conf
owner: bin
group: wheel
mode: '0644'
Gérer les erreurs
Une formation
Anass IDI
Types de gestion
Une formation
Ignorer les erreurs : ignore_errors
Forcer l’exécution des handlers : force_handler
Définir les états failed/changed : - failed_when
- changed_when
Exemple
Une formation
ignore_errors.yml
---
- hosts: servers
tasks:
- name: Ignore failed commands
command: /bin/false
ignore_errors: yes
- name: Restart apache
service:
name=apache2
state=restarted
ignore_errors: True
Les blocs
Une formation
Groupement logique de tâches
Gestion des erreurs similaire à la gestion des
exceptions dans de nombreux langages de
programmation
Héritage des directives appliquées au niveau du bloc
Exemple de blocs
Une formation
tasks:
- name: Install, configure, and start Apache
block:
- name: Install httpd and memcached
ansible.builtin.yum:
name:
- httpd
- memcached
state: present
- name: Apply the foo config template
ansible.builtin.template:
src: templates/src.j2
dest: /etc/foo.conf
when: ansible_facts['distribution'] == 'CentOS'
become: true
become_user: root
ignore_errors: yes
Comprendre Vault
Une formation
Anass IDI
Principes de Vault
Une formation
Chiffrement du contenu sensible
Moyen de gestion (chiffrement/déchiffrement) :
Ansible-vault
Utilisation des données chiffrées dans les commands
ad-hoc
La commande ansible-vault
Une formation
Create
Créer un fichier encrypté
View
Voir le contenu d’un fichier encrypté
Edit
Editer un fichier encrypté
Rekey
Changer le mot de passe
Encrypt
Encrypter un fichier existant
Exemples
Une formation
Créer un fichier chiffré
$ ansible-vault create example.yml
New Vault password:
Confirm New Vault password:
Editer un fichier chiffré
$ ansible-vault edit example.yml
Vault password:
Afficher un fichier chiffré
$ ansible-vault view vault.yml
Vault password:
Utiliser Ansible de la bonne
manière
Une formation
Anass IDI
Bonnes pratiques générales
Une formation
Utiliser une version récente d’Ansible
Variabiliser au maximum
Pas de données sensibles dans les playbooks
Debogger un playbook
Respecter le principe d’idempotence
Documenter
Utiliser les pre et post Tasks
Sécuriser au max la machine de control
Bonnes pratiques pour les rôles
Une formation
Utiliser un rôle par composant
Ne pas utiliser les rôles pour des
environnements
Ne pas dupliquer un rôle pour l'appliquer
sur un autre scope de serveurs
Bonnes pratiques pour les inventaires
Une formation
Séparer les inventaires par environnement
Découper les groupes des inventaires
Ne pas utiliser un inventaire et faire des
groupes environnements
Utiliser les différentes options d’Ansible
Une formation
Mode Dry Run
ansible-playbook playbook.yml –check
Mode Differenciation
ansible-playbook playbook.yml --check --
diff

Contenu connexe

Tendances

Terraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeTerraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeMartin Schütte
 
Docker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityDocker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityJérôme Petazzoni
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationJohn Lynch
 
Introduction To Power Shell
Introduction To Power ShellIntroduction To Power Shell
Introduction To Power ShellIvan Suhinin
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansibleKhizer Naeem
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
DevOps with Ansible
DevOps with AnsibleDevOps with Ansible
DevOps with AnsibleSwapnil Jain
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction Robert Reiz
 
Terraform Introduction
Terraform IntroductionTerraform Introduction
Terraform Introductionsoniasnowfrog
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation dockerOlivier Eeckhoutte
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...Simplilearn
 
DevOps Meetup ansible
DevOps Meetup   ansibleDevOps Meetup   ansible
DevOps Meetup ansiblesriram_rajan
 
Best practices for ansible
Best practices for ansibleBest practices for ansible
Best practices for ansibleGeorge Shuklin
 

Tendances (20)

Terraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeTerraform -- Infrastructure as Code
Terraform -- Infrastructure as Code
 
Ansible intro
Ansible introAnsible intro
Ansible intro
 
Docker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityDocker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and security
 
Serveur Zabbix
Serveur ZabbixServeur Zabbix
Serveur Zabbix
 
ansible why ?
ansible why ?ansible why ?
ansible why ?
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Introduction To Power Shell
Introduction To Power ShellIntroduction To Power Shell
Introduction To Power Shell
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansible
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
DevOps with Ansible
DevOps with AnsibleDevOps with Ansible
DevOps with Ansible
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 
Terraform Introduction
Terraform IntroductionTerraform Introduction
Terraform Introduction
 
CloudStack Architecture
CloudStack ArchitectureCloudStack Architecture
CloudStack Architecture
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
 
Ansible - Introduction
Ansible - IntroductionAnsible - Introduction
Ansible - Introduction
 
DevOps Meetup ansible
DevOps Meetup   ansibleDevOps Meetup   ansible
DevOps Meetup ansible
 
Best practices for ansible
Best practices for ansibleBest practices for ansible
Best practices for ansible
 
Ansible
AnsibleAnsible
Ansible
 

Similaire à Alphorm.com Formation Ansible : Le Guide Complet du Débutant

Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm
 
Webinar Smile : Comment industrialiser votre SI avec Ansible ?
Webinar Smile : Comment industrialiser votre SI avec Ansible ?Webinar Smile : Comment industrialiser votre SI avec Ansible ?
Webinar Smile : Comment industrialiser votre SI avec Ansible ?Smile I.T is open
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busyboxAyoub Rouzi
 
05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdfbibouechristian
 
05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdfbibouechristian
 
Alphorm.com Formation Nagios et Cacti : Installation et Administration
Alphorm.com Formation Nagios et Cacti : Installation et AdministrationAlphorm.com Formation Nagios et Cacti : Installation et Administration
Alphorm.com Formation Nagios et Cacti : Installation et AdministrationAlphorm
 
Exposé open embedded
Exposé open embeddedExposé open embedded
Exposé open embeddedAyoub Rouzi
 
08 - vaults-ansible-Automatisation-infrastructure
08 - vaults-ansible-Automatisation-infrastructure08 - vaults-ansible-Automatisation-infrastructure
08 - vaults-ansible-Automatisation-infrastructurebibouechristian
 
Rapport Kernel Linux - Configuration – Compilation & installation
Rapport Kernel Linux - Configuration –  Compilation & installationRapport Kernel Linux - Configuration –  Compilation & installation
Rapport Kernel Linux - Configuration – Compilation & installationAyoub Rouzi
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 
Rapport openembedded
Rapport openembeddedRapport openembedded
Rapport openembeddedAyoub Rouzi
 
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOps@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOlivier DASINI
 
Je configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsJe configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsRonan Amicel
 
#nwxtech9 Rudy Baer et Kevin Vézier - Ansible, l’outil du sysadmin paresseux ...
#nwxtech9 Rudy Baer et Kevin Vézier - Ansible, l’outil du sysadmin paresseux ...#nwxtech9 Rudy Baer et Kevin Vézier - Ansible, l’outil du sysadmin paresseux ...
#nwxtech9 Rudy Baer et Kevin Vézier - Ansible, l’outil du sysadmin paresseux ...Normandie Web Xperts
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système LinuxEL AMRI El Hassan
 
09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisationbibouechristian
 

Similaire à Alphorm.com Formation Ansible : Le Guide Complet du Débutant (20)

Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
 
Webinar Smile : Comment industrialiser votre SI avec Ansible ?
Webinar Smile : Comment industrialiser votre SI avec Ansible ?Webinar Smile : Comment industrialiser votre SI avec Ansible ?
Webinar Smile : Comment industrialiser votre SI avec Ansible ?
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busybox
 
05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf
 
05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
 
Alphorm.com Formation Nagios et Cacti : Installation et Administration
Alphorm.com Formation Nagios et Cacti : Installation et AdministrationAlphorm.com Formation Nagios et Cacti : Installation et Administration
Alphorm.com Formation Nagios et Cacti : Installation et Administration
 
Exposé open embedded
Exposé open embeddedExposé open embedded
Exposé open embedded
 
08 - vaults-ansible-Automatisation-infrastructure
08 - vaults-ansible-Automatisation-infrastructure08 - vaults-ansible-Automatisation-infrastructure
08 - vaults-ansible-Automatisation-infrastructure
 
Rapport Kernel Linux - Configuration – Compilation & installation
Rapport Kernel Linux - Configuration –  Compilation & installationRapport Kernel Linux - Configuration –  Compilation & installation
Rapport Kernel Linux - Configuration – Compilation & installation
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Rapport openembedded
Rapport openembeddedRapport openembedded
Rapport openembedded
 
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOps@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
 
Je configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsJe configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtools
 
Ansib formation-ansible
Ansib formation-ansibleAnsib formation-ansible
Ansib formation-ansible
 
Présentation1
Présentation1Présentation1
Présentation1
 
#nwxtech9 Rudy Baer et Kevin Vézier - Ansible, l’outil du sysadmin paresseux ...
#nwxtech9 Rudy Baer et Kevin Vézier - Ansible, l’outil du sysadmin paresseux ...#nwxtech9 Rudy Baer et Kevin Vézier - Ansible, l’outil du sysadmin paresseux ...
#nwxtech9 Rudy Baer et Kevin Vézier - Ansible, l’outil du sysadmin paresseux ...
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système Linux
 
Noyau
NoyauNoyau
Noyau
 
09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation
 

Plus de Alphorm

Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm
 
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm
 
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm
 
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm
 
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm
 
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm
 
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm
 
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm
 
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm
 
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm
 
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm
 
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm
 
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm
 
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm
 
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm
 
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm
 
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm
 

Plus de Alphorm (20)

Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
 
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
 
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
 
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
 
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion Commerciale
 
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
 
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
 
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
 
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
 
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
 
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
 
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POO
 
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
 
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
 
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
 
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
 
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
 

Alphorm.com Formation Ansible : Le Guide Complet du Débutant