Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
fr:ansible [2018/02/05 12:49] – [Écrire un playbook] zatalyz | fr:ansible [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
C'est donc de la doc pour noob avec probablement des erreurs. | C'est donc de la doc pour noob avec probablement des erreurs. | ||
- | --- //[[wiki:user: | + | --- // |
</ | </ | ||
- | Ansible s' | + | Ansible s' |
Donc, suivant votre système : | Donc, suivant votre système : | ||
Ligne 24: | Ligne 24: | ||
Ensuite on va renseigner ses serveurs. | Ensuite on va renseigner ses serveurs. | ||
- | Par défaut, Ansible les cherchent | + | Par défaut, Ansible les cherche |
ansible -i / | ansible -i / | ||
Ligne 33: | Ligne 33: | ||
===== Renseigner le fichier ansible/ | ===== Renseigner le fichier ansible/ | ||
- | Il y a visiblement plusieurs syntaxes possibles (peut-etre à paramétrer dans ''/ | + | Il y a visiblement plusieurs syntaxes possibles (peut-être à paramétrer dans ''/ |
<code ini> | <code ini> | ||
Ligne 47: | Ligne 47: | ||
</ | </ | ||
- | Ce qui est entre crochet | + | Ce qui est entre crochets |
Les serveurs renseignés dessous peuvent l' | Les serveurs renseignés dessous peuvent l' | ||
* d' | * d' | ||
- | * d' | + | * d' |
* d' | * d' | ||
Ligne 57: | Ligne 57: | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | Pensez à activer [[fr: | + | Pensez à activer [[fr: |
- | L' | + | L' |
eval " | eval " | ||
Ligne 92: | Ligne 92: | ||
</ | </ | ||
- | ==== Suite de commandes : playbooks ==== | + | ===== Suite de commandes : playbooks |
- | L'une des grandes forces d' | + | L'une des grandes forces d' |
- | Un exemple très bête : la mise à jour des dépôts, le téléchargement et déployement | + | Un exemple très bête : la mise à jour des dépôts, le téléchargement et déployement |
- | La première manipulation de cet article permet d' | + | La première manipulation de cet article permet d' |
Créez un répertoire dans lequel seront stockés vos playbooks, puis un playbook : | Créez un répertoire dans lequel seront stockés vos playbooks, puis un playbook : | ||
Ligne 109: | Ligne 109: | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | YAML est assez strict sur les indentations. Si vous avez des erreurs lors de vos premiers palybooks, c'est peut-être à cause d'un espace | + | YAML est assez strict sur les indentations. Si vous avez des erreurs lors de vos premiers palybooks, c'est peut-être à cause d'une espace |
</ | </ | ||
- | === Écrire un playbook === | + | ==== Écrire un playbook |
- | Pour la rédaction des playbook, les possibilités sont nombreuses et il vaut mieux se référerer à la [[http:// | + | Pour la rédaction des playbooks, les possibilités sont nombreuses et il vaut mieux se référerer à la [[http:// |
- Nous renseignons les hosts où le playbook sera lancé | - Nous renseignons les hosts où le playbook sera lancé | ||
- Nous listons les tâches qui seront exécutées dessus | - Nous listons les tâches qui seront exécutées dessus | ||
Ligne 120: | Ligne 120: | ||
Il est possible de renseigner des variables et diverses options. | Il est possible de renseigner des variables et diverses options. | ||
- | Commençons en douceur... | + | Chaque tâche (task) démarre par un tiret '' |
< | < | ||
+ | - name: Texte décrivant la tâche | ||
+ | module: option=value | ||
+ | </ | ||
+ | |||
+ | Commençons en douceur... on reproduit notre " | ||
+ | |||
+ | <code yml khanatping.yml> | ||
# Indiquer sur quels serveurs ce playbook va marcher, ici ceux du groupe " | # Indiquer sur quels serveurs ce playbook va marcher, ici ceux du groupe " | ||
- hosts: khanat | - hosts: khanat | ||
Ligne 130: | Ligne 137: | ||
</ | </ | ||
- | Lors de l' | + | Lors de l' |
- | '', | + | |
- | Allons un peu plus loin. Chaque tâche (task) démarre par un tiret '' | + | Allons un peu plus loin et créons |
- | < | + | Les mises à jour doivent se faire avec les droits root. Mais comme on respecte les règles de sécurité, on ne se connecte jamais directement en root mais via un utilisateur ayant le droit de devenir root via sudo. Et toujours pour des questions de sécurité, cet utilisateur doit taper son mot de passe pour devenir root. On ajoutera donc la commande '' |
- | - name: Texte décrivant | + | |
- | module: option=value | + | |
- | </ | + | |
- | Pour les mises à jour sur debian, la lecture des [[http:// | + | < |
- | + | # Nos hôtes concernés par le playbook | |
- | < | + | |
- hosts: khanat | - hosts: khanat | ||
- | #On préviens | + | # On prévient |
become: yes | become: yes | ||
become_method: | become_method: | ||
+ | # On renseigne les tâches et on leur donne des descriptions | ||
tasks: | tasks: | ||
- name: mise à jour des dépôts | - name: mise à jour des dépôts | ||
Ligne 158: | Ligne 161: | ||
stat: path=/ | stat: path=/ | ||
- | - name: Reboot les services (si besoin?) | ||
- | shell: needrestart -ra -l | ||
- | when: reboot.stat.exists == false | ||
</ | </ | ||
+ | |||
+ | Puis lancer : | ||
+ | ansible-playbook -i ./ | ||
+ | |||
+ | ==== Insérer des playbooks dans des playbooks ==== | ||
+ | Imbriquer les playbooks peut être utile. Par exemple, vous avez un playbook bien fait pour les mises à jour, mais vous souhaitez le lancer parfois pour un groupe de serveur, parfois pour un autre((Typiquement chez nous, on met à jour les hyperviseurs, | ||
+ | |||
+ | Il y a plusieurs façon de réaliser des imbrications, | ||
+ | |||
+ | Créez votre premier playbook contenant vos hosts, et appelez dedans un second playbook, qui contiendra la liste des tâches : | ||
+ | |||
+ | <code yml khanat.yml> | ||
+ | tasks: | ||
+ | - import_tasks: | ||
+ | |||
+ | <code yml includeping.yml> | ||
+ | - action: ping | ||
+ | </ | ||
+ | |||
===== Sources ===== | ===== Sources ===== | ||
Ligne 167: | Ligne 186: | ||
* [[https:// | * [[https:// | ||
* https:// | * https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
- | {{tag> | + | {{tag> |