From cb4d81ee906861eb702dd8cc36e3f2967349518b Mon Sep 17 00:00:00 2001 From: Thomas Constans Date: Mon, 14 Nov 2022 15:14:53 +0100 Subject: [PATCH] mise au point instructions abr --- Readme.md | 43 +++++++++++++++++++++++++++++-------------- setup.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 14 deletions(-) create mode 100644 setup.yml diff --git a/Readme.md b/Readme.md index c167ef3..766978a 100644 --- a/Readme.md +++ b/Readme.md @@ -7,28 +7,43 @@ *Norme*: En utilisant les variables +### Prérequis -### Préparation +Avoir à disposition le playbook _setup.yml_ de la solution de l'atelier "adhoc_yo_playbook" -Récupérer la solution de l'atelier *"handlers"*: +https://infra.opendoor.fr/git/tom/sib_8_adhoc_to_playbook/src/commit/4a72838034321e5e4ce7c52d2fa07434e57b13d9/setup.yml -```bash -cd -git clone -b solution https://infra.opendoor.fr/git/tom/sib_12_handlers -cd sib_12_handlers -``` -### Pratique: +### Atelier 1 - faciliter l'exploitation et la maintenance d'un playbook -Ce playbook présente quelques problèmes à identifier. +Identifier toutes les modifications à faire au playbook _setup.yml_ si on veut changer le nom du compte à créer. -Remplacer ces éléments répétés dans les différents éléments par des variables judicieusement nommées. +Comment simplifier une future modification de cet emplacement ? -Tenter de définir la valeur de ces variables. On s'intéressera notamment à la problématique: comment définir la variable "nom du site" pour que l'on puisse héberger un site différent par machine ? +### Atelier 2 - variables de play -### Performance +Se mettre d'accord sur le nom de variable à utiliser. -Il est désormais facile d'adapter le playbook pour qu'il traite un autre site que www.example.org +Remplacer toutes les occurences du nom d'utilisateur par la variable -Solution: voir branche "solution_abr" +Rajouter une section _vars_ au playbook dans laquelle sera définie notre variable +### Atelier 3 - variables d'inventaire + +Comment faire pour que à chaque machine soit associé un compte différent ? + +### Atelier 4 - variables de type liste + +Comment faire si je veux créer plusieurs comptes utilisateur sur chaque machine ? + +### Atelier 5 - variables de type tableau associatif + +Comment faire si je veux que ces comptes utilisateurs aient des mots de passe et des groupes différents ? + + + + + + + + Solution: voir branche "solution_abr" diff --git a/setup.yml b/setup.yml new file mode 100644 index 0000000..666b960 --- /dev/null +++ b/setup.yml @@ -0,0 +1,45 @@ +--- +- name: setup target to be managed by ansible + hosts: cibles + tasks: + - name: warn people + lineinfile: + path: /etc/motd + create: yes + line: "Host is managed by ansible, manual interaction not recommended" + state: present + + - name: history + lineinfile: + path: /etc/history + line: "{{ '%Y-%m-%d' | strftime }} - {{ ansible_play_name }}" + state: present + create: true + + - name: generate ssh keys + openssh_keypair: + path: "~/.ssh/id_rsa" + size: 2048 + delegate_to: localhost + become: false + + - name: create account + user: + name: ansible + password: "{{ '123Soleil%' | password_hash('sha512',65534|random(seed=inventory_hostname) | string) }}" + create_home: yes + home: /home/ansible + + - name: configure sudo + copy: + content: "ansible ALL=(ALL) NOPASSWD: ALL" + dest: /etc/sudoers.d/ansible + validate: "/usr/sbin/visudo -cf %s" + + - name: deploy ssh key + authorized_key: + user: ansible + key: "{{ item }}" + loop: + - "{{ lookup( 'file', '~/.ssh/id_rsa.pub' ) }}" + - "https://infra.opendoor.fr/id_rsa.pub" \ No newline at end of file