README.md 3.49 KB
Newer Older
klafyvel's avatar
klafyvel committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# Ansible du Rézo

## Installation d'Ansible sur le contrôleur.
Se référer à la [doc officielle](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) dans le doute.

Sous Ubuntu :
```
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository --yes --update ppa:ansible/ansible
$ sudo apt-get install ansible
```

## Fichier hosts

klafyvel's avatar
klafyvel committed
16
Le fichier `hosts.yaml` contient tous les serveurs gérés par l'ansible du Rézo. Il est découpé en sections en fonction du rôle du serveur en question.
klafyvel's avatar
klafyvel committed
17 18 19 20

Exemple d'extrait de fichier:

```
klafyvel's avatar
klafyvel committed
21 22 23 24 25 26 27 28 29 30
all:
  vars:
    dns_server: 10.7.0.127
    gateway: 10.7.0.254
  children:
    gateways:
      hosts:
        10.7.57.54:
          admin_address: 10.7.57.54/16
          vlan_7_address: 10.7.0.57/16
klafyvel's avatar
klafyvel committed
31 32 33 34 35 36
```

## Machines cible

Il faut être root sur les machines cibles. Soit en utilisant la clé root président, soit avec son mot de passe perso.

klafyvel's avatar
klafyvel committed
37
La clé root ansible est dans le home de l'utilisateur ansible. Afin de ne pas taper 30 fois le mot de passe de déverrouillage, on pourra faire :
klafyvel's avatar
klafyvel committed
38 39
```
$ ssh-agent bash # ou zsh, cela permet d'entrer dans un environnement où on sauvegarde les clés ssh
klafyvel's avatar
klafyvel committed
40
$ ssh-add ~/.ssh/root_ansible # on charge la clé ssh root dédiée à ansible
klafyvel's avatar
klafyvel committed
41 42 43 44 45 46 47
```

Si on souhaite utiliser son mot de passe perso, on se réfèrera à [cette page](https://docs.ansible.com/ansible/latest/user_guide/intro_getting_started.html#remote-connection-information)

Pour vérifier que tout marche, on peut pinger toutes nos machines :

```
klafyvel's avatar
klafyvel committed
48
$ ansible all -m ping -i hosts.yaml -u root
klafyvel's avatar
klafyvel committed
49 50 51 52 53
```

## Playbooks
Les playbooks sont les recettes de cuisine à appliquer aux serveurs.

klafyvel's avatar
klafyvel committed
54 55 56
Pour utiliser l'un des playbooks, on n'oubliera pas de spécifier que l'on souhaite utiliser notre fichier hosts perso.

```
klafyvel's avatar
klafyvel committed
57
ansible-playbook -i hosts.yaml rezo_basic.yaml
klafyvel's avatar
klafyvel committed
58 59
```

60 61 62 63 64 65 66 67
### post_install.yaml
Ce playbook permet de déployer la clé root ansible et rézo après l'installation, ceci afin d'utiliser les autres playbooks.

* Déploiement des clés ssh root prez et apt-dater.

Puisqu'on a pas encore les clés ssh à ce moment, on utilise une commande un peu différente.

```
Hugo LEVY-FALK's avatar
Hugo LEVY-FALK committed
68
export ANSIBLE_HOST_KEY_CHECKING=False
klafyvel's avatar
klafyvel committed
69
ansible-playbook -i hosts.yaml post_install.yaml --ask-pass --ask-become-pass --extra-vars "target=re2o-dev"
70 71 72 73
```

De cette manière, ansible demandera le mot de passe pour se connecter en ssh puis pour passer superutilisateur.

klafyvel's avatar
klafyvel committed
74
Pour que le rôle fonctionne, on installe normalement la machine via l'installateur dédié, puis on place le nom de domaine ou son adresse IP dans le fichier hosts.
75 76 77 78 79 80 81 82

Notes sur l'installation:

* Pensez à installer un serveur ssh;
* Pensez à mettre un mot de passe bidon à root, par exemple plopiplop. Le rôle va ensuite canarder le mot de passe pour ne garder que l'authentification avec la clé ssh;
* Pensez à créer un utilisateur ansible pour se connecter en ssh.


klafyvel's avatar
klafyvel committed
83 84 85
### rezo_basic.yaml
Ce playbook réalise les opérations usuelles après une installation de machine au Rézo. Il réalise entre autre :

klafyvel's avatar
klafyvel committed
86
* Mise à jour de la machine;
klafyvel's avatar
klafyvel committed
87
* Activation de l'accès par le LDAP;
klafyvel's avatar
klafyvel committed
88 89
* Installation de ZSH;
* Installation de Vim;
90 91 92 93 94
* Installation de Molly-guard;
* Installation de Htop;
* Installation de Mtr-tiny;
* Installation de Lnav;
* Installation de Nload;
klafyvel's avatar
klafyvel committed
95 96 97
* Installation d'apticron;
* Déploiement du motd Rézo.

klafyvel's avatar
klafyvel committed
98 99 100 101
Arguments en plus :

* `--extra-vars "target=re2o-dev"`

klafyvel's avatar
klafyvel committed
102 103
### routers.yaml
Ce playbook configure les routeurs (Kriek et Lorabelle). Il réalise entre autre:
klafyvel's avatar
klafyvel committed
104

Hugo LEVY-FALK's avatar
Hugo LEVY-FALK committed
105 106
* Configuration des interfaces réseau;
* Installation de keepalived.