Commit 0acc5110 authored by klafyvel's avatar klafyvel

Routers interfaces.

parent 1636512c
Pipeline #655 failed with stages
in 3 minutes and 1 second
......@@ -13,15 +13,21 @@ $ sudo apt-get install ansible
## Fichier hosts
Le fichier `hosts` 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.
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.
Exemple d'extrait de fichier:
```
[gateways]
10.7.6.66
[reverse_dns]
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
```
## Machines cible
......@@ -39,7 +45,7 @@ Si on souhaite utiliser son mot de passe perso, on se réfèrera à [cette page]
Pour vérifier que tout marche, on peut pinger toutes nos machines :
```
$ ansible all -m ping -i hosts -u root
$ ansible all -m ping -i hosts.yaml -u root
```
## Playbooks
......@@ -48,7 +54,7 @@ Les playbooks sont les recettes de cuisine à appliquer aux serveurs.
Pour utiliser l'un des playbooks, on n'oubliera pas de spécifier que l'on souhaite utiliser notre fichier hosts perso.
```
ansible-playbook -i hosts rezo_basic.yaml
ansible-playbook -i hosts.yaml rezo_basic.yaml
```
### post_install.yaml
......@@ -59,12 +65,12 @@ Ce playbook permet de déployer la clé root ansible et rézo après l'installat
Puisqu'on a pas encore les clés ssh à ce moment, on utilise une commande un peu différente.
```
ansible-playbook -i hosts rezo_basic.yaml --ask-pass --ask-become-pass
ansible-playbook -i hosts.yaml post_install.yaml --ask-pass --ask-become-pass
```
De cette manière, ansible demandera le mot de passe pour se connecter en ssh puis pour passer superutilisateur.
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. Si la machine ne correspond à aucun groupe, il suffit de la mettre en tête de fichier.
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.
Notes sur l'installation:
......@@ -76,10 +82,14 @@ Notes sur l'installation:
### 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 :
* Mise à jour de la machine [v]
* Mise à jour de la machine;
* Activation de l'accès par le LDAP;
* Installation de ZSH; [v]
* Installation de Vim [v]
* Installation d'apticron; [v]
* Déploiement du motd Rézo. [v]
* Installation de ZSH;
* Installation de Vim;
* Installation d'apticron;
* Déploiement du motd Rézo.
### routers.yaml
Ce playbook configure les routeurs (Kriek et Lorabelle). Il réalise entre autre:
* Configuration des interfaces réseau.
[all:vars]
[gateways]
10.7.57.54
10.7.54.57
[reverse_dns]
[mails]
[http_servers]
[gitlab]
[federez]
[ldap_servers]
ldap.rezometz.org main=true
ldap-ro.rezometz.org
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
vlan_2_address: 192.68.2.57/24
vlan_20_address: 10.20.254.57/16
vlan_66_address: 10.66.0.254/24
vlan_68_address: 10.68.254.254/16
vlan_69_address: 10.69.3.57/24
10.7.54.57:
admin_address: 10.7.54.57/16
vlan_7_address: 10.7.0.54/16
vlan_2_address: 192.68.2.54/24
vlan_20_address: 10.20.254.54/16
vlan_66_address: 10.66.0.253/24
vlan_68_address: 10.68.254.253/16
vlan_69_address: 10.69.3.54/24
ldap_servers:
hosts:
ldap.rezometz.org:
vars:
main: true
ldap-ro.rezometz.org:
- name: Install ifenslave
apt:
name: ifenslave
- name: Enable bonding
modprobe:
name: bonding
state: present
- name: Install vlan
apt:
name: vlan
- name: Enable 8021q
modprobe:
name: 8021q
state: present
- name: Deploy interfaces
template:
src: interfaces.j2
dest: /etc/network/interfaces
mode: 0644
register: interfaces
- name: Restart Network, and pray
shell: "sleep 5 && service networking restart"
async: 1
poll: 0
when: interfaces.changed
- name: Wait for the host to be available
wait_for_connection:
connect_timeout: 20
sleep: 5
delay: 5
timeout: 300
when: interfaces.changed
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eno1
auto eno1
iface eno1 inet static
address {{ admin_address }}
# LACP
auto bond0
iface bond0 inet static
address {{ vlan_7_address }}
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate 1
bond-slaves ens1f1 ens1f0
# VLAN
auto bond0.7
iface bond0.7 inet static
address {{ vlan_7_address }}
dns-nameservers 10.7.0.127
dns-search rez
gateway {{ gateway }}
auto bond0.2
iface bond0.2 inet static
address {{ vlan_2_address }}
auto bond0.20
iface bond0.20 inet static
address {{ vlan_20_address }}
auto bond0.66
iface bond0.66 inet static
address {{ vlan_66_address }}
auto bond0.68
iface bond0.68 inet static
address {{ vlan_68_address }}
auto bond0.69
iface bond0.69 inet static
address {{ vlan_69_address }}
# routers.yaml
# Ce rôle configure les interfaces réseau des routeurs (lacp etc...)
---
- hosts: gateways
remote_user: root
tasks:
- include_role:
name: configure_routers_network
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment