Restructure README and motd indications
parent
43ef614e01
commit
d422d04bd4
91
README.md
91
README.md
|
@ -1,26 +1,9 @@
|
||||||
# Ansible
|
# Recettes Ansible du Cr@ns
|
||||||
|
|
||||||
Ensemble des recettes de déploiement Ansible pour les serveurs du Crans.
|
Ensemble des recettes de déploiement Ansible pour les serveurs du Crans.
|
||||||
|
Pour les utiliser, vérifiez que vous avez au moins Ansible 2.7.
|
||||||
|
|
||||||
Ces politiques de déployement nécessite Ansible 2.7 ou plus récent.
|
## Ansible 101
|
||||||
Le paquet dans Debian Buster est suffisamment à jour, sinon vous pouvez l'obtenir de la façon suivante :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pip3 install --user ansible
|
|
||||||
```
|
|
||||||
|
|
||||||
## Exécution d'un playbook
|
|
||||||
|
|
||||||
Pour appliquer le playbook `base.yml` :
|
|
||||||
```bash
|
|
||||||
ansible-playbook --ask-vault-pass base.yml
|
|
||||||
```
|
|
||||||
|
|
||||||
Il est souhaitable de faire un test avant avec `--check` si on a des doutes !
|
|
||||||
|
|
||||||
## FAQ
|
|
||||||
|
|
||||||
### Ansible 101
|
|
||||||
|
|
||||||
Si vous n'avez jamais touché à Ansible avant, voilà une rapide introduction.
|
Si vous n'avez jamais touché à Ansible avant, voilà une rapide introduction.
|
||||||
|
|
||||||
|
@ -60,35 +43,6 @@ récupérer son résultat dans une varible, mettre une boucle dessus, mettre des
|
||||||
N'oubliez pas d'aller lire l'excellent documentation de RedHat sur tous les modules
|
N'oubliez pas d'aller lire l'excellent documentation de RedHat sur tous les modules
|
||||||
d'Ansible !
|
d'Ansible !
|
||||||
|
|
||||||
### Mettre sa clé SSH sur une machine
|
|
||||||
|
|
||||||
```
|
|
||||||
ssh-copy-id -i ~/.ssh/id_rsa_crans.pub zamok.crans.org
|
|
||||||
```
|
|
||||||
|
|
||||||
### Ignorer la fingerprint ECDSA du serveur (dangereux !)
|
|
||||||
|
|
||||||
Il faut changer la variable d'environnement suivante :
|
|
||||||
`ANSIBLE_HOST_KEY_CHECKING=0`.
|
|
||||||
|
|
||||||
### Configurer la connexion au vlan adm
|
|
||||||
|
|
||||||
Envoyer son agent SSH peut être dangereux ([source](https://heipei.io/2015/02/26/SSH-Agent-Forwarding-considered-harmful/)).
|
|
||||||
|
|
||||||
On va utiliser plutôt `ProxyJump`.
|
|
||||||
Dans la configuration SSH :
|
|
||||||
|
|
||||||
```
|
|
||||||
# Use a key to log on all Crans servers
|
|
||||||
# and use a proxy server
|
|
||||||
Host 10.231.136.* *.adm.crans.org
|
|
||||||
IdentityFile ~/.ssh/id_rsa_crans
|
|
||||||
ProxyJump vo.crans.org
|
|
||||||
```
|
|
||||||
|
|
||||||
Il faut savoir que depuis Ansible 2.5, des connexions persistantes sont créées
|
|
||||||
vers les serveurs puis détruites à la fin de l'exécution.
|
|
||||||
|
|
||||||
### Gestion des groupes de machines
|
### Gestion des groupes de machines
|
||||||
|
|
||||||
Pour la majorité des groupes ont retrouve ce qu'il y avait dans BCFG2
|
Pour la majorité des groupes ont retrouve ce qu'il y avait dans BCFG2
|
||||||
|
@ -125,3 +79,42 @@ on peut exécuter le module `setup` manuellement.
|
||||||
```
|
```
|
||||||
ansible zamok.adm.crans.org -m setup --ask-vault-pass
|
ansible zamok.adm.crans.org -m setup --ask-vault-pass
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Exécution d'Ansible
|
||||||
|
|
||||||
|
### Configurer la connexion au vlan adm
|
||||||
|
|
||||||
|
Envoyer son agent SSH peut être dangereux
|
||||||
|
([source](https://heipei.io/2015/02/26/SSH-Agent-Forwarding-considered-harmful/)).
|
||||||
|
|
||||||
|
On va utiliser plutôt `ProxyJump`.
|
||||||
|
Dans la configuration SSH :
|
||||||
|
|
||||||
|
```
|
||||||
|
# Use a key to log on all Crans servers
|
||||||
|
# and use a proxy server
|
||||||
|
Host 10.231.136.* *.adm.crans.org
|
||||||
|
IdentityFile ~/.ssh/id_rsa_crans
|
||||||
|
ProxyJump vo.crans.org
|
||||||
|
```
|
||||||
|
|
||||||
|
Il faut savoir que depuis Ansible 2.5, des connexions persistantes sont créées
|
||||||
|
vers les serveurs puis détruites à la fin de l'exécution.
|
||||||
|
|
||||||
|
Il faut sa clé SSH configurée sur le serveur que l'on déploit.
|
||||||
|
```bash
|
||||||
|
ssh-copy-id zamok.crans.org
|
||||||
|
```
|
||||||
|
|
||||||
|
### Lancer Ansible
|
||||||
|
|
||||||
|
Pour tester le playbook `base.yml` :
|
||||||
|
```bash
|
||||||
|
ansible-playbook --ask-vault-pass base.yml --check
|
||||||
|
```
|
||||||
|
|
||||||
|
Vous pouvez ensuite enlever `--check` si vous voulez appliquer les changements !
|
||||||
|
|
||||||
|
Si vous avez des soucis de fingerprint ECDSA, vous pouvez ignorer une
|
||||||
|
première fois (dangereux !) : `ANSIBLE_HOST_KEY_CHECKING=0 ansible-playbook...`.
|
||||||
|
|
||||||
|
|
|
@ -13,16 +13,10 @@
|
||||||
|
|
||||||
# Debian non-free mirror
|
# Debian non-free mirror
|
||||||
debian_mirror: http://mirror.adm.crans.org/debian
|
debian_mirror: http://mirror.adm.crans.org/debian
|
||||||
|
|
||||||
# Indicate service in motd
|
|
||||||
motd_role:
|
|
||||||
name: prometheus
|
|
||||||
path: /etc/prometheus/
|
|
||||||
roles:
|
roles:
|
||||||
- debian-non-free
|
- debian-non-free
|
||||||
- prometheus
|
- prometheus
|
||||||
- prometheus-alertmanager
|
- prometheus-alertmanager
|
||||||
- motd-role
|
|
||||||
|
|
||||||
# Monitor all hosts
|
# Monitor all hosts
|
||||||
- hosts: all
|
- hosts: all
|
||||||
|
@ -38,11 +32,5 @@
|
||||||
ldap_user_tree: "cn=Utilisateurs,{{ ldap_base }}"
|
ldap_user_tree: "cn=Utilisateurs,{{ ldap_base }}"
|
||||||
ldap_grafana_bind_dn: "cn=grafana,ou=service-users,{{ ldap_base }}"
|
ldap_grafana_bind_dn: "cn=grafana,ou=service-users,{{ ldap_base }}"
|
||||||
ldap_grafana_passwd: "{{ vault_ldap_grafana_passwd }}"
|
ldap_grafana_passwd: "{{ vault_ldap_grafana_passwd }}"
|
||||||
|
|
||||||
# Indicate service in motd
|
|
||||||
motd_role:
|
|
||||||
name: grafana
|
|
||||||
path: /etc/grafana/
|
|
||||||
roles:
|
roles:
|
||||||
- grafana
|
- grafana
|
||||||
- motd-role
|
|
||||||
|
|
12
network.yml
12
network.yml
|
@ -4,14 +4,8 @@
|
||||||
vars:
|
vars:
|
||||||
# Debian mirror on adm
|
# Debian mirror on adm
|
||||||
debian_mirror: http://mirror.adm.crans.org/debian
|
debian_mirror: http://mirror.adm.crans.org/debian
|
||||||
|
|
||||||
# Indicate service in motd
|
|
||||||
motd_role:
|
|
||||||
name: wireguard
|
|
||||||
path: /etc/wireguard/
|
|
||||||
roles:
|
roles:
|
||||||
- wireguard
|
- wireguard
|
||||||
- motd-role
|
|
||||||
|
|
||||||
# Deploy DHCP server
|
# Deploy DHCP server
|
||||||
- hosts: dhcp.adm.crans.org
|
- hosts: dhcp.adm.crans.org
|
||||||
|
@ -37,11 +31,5 @@
|
||||||
|
|
||||||
# Deploy Unifi Controller
|
# Deploy Unifi Controller
|
||||||
- hosts: unifi.adm.crans.org
|
- hosts: unifi.adm.crans.org
|
||||||
vars:
|
|
||||||
# Indicate service in motd
|
|
||||||
motd_role:
|
|
||||||
name: unifi-controller
|
|
||||||
verbose_name: Le contrôleur Unifi
|
|
||||||
roles:
|
roles:
|
||||||
- unifi-controller
|
- unifi-controller
|
||||||
- motd-role
|
|
||||||
|
|
|
@ -34,3 +34,9 @@
|
||||||
# cd framadate
|
# cd framadate
|
||||||
# sudo -u www-data touch admin/stdout.log
|
# sudo -u www-data touch admin/stdout.log
|
||||||
# sudo chmod 600 admin/stdout.log
|
# sudo chmod 600 admin/stdout.log
|
||||||
|
|
||||||
|
- name: Indicate role in motd
|
||||||
|
template:
|
||||||
|
src: update-motd.d/05-service.j2
|
||||||
|
dest: /etc/update-motd.d/05-framadate
|
||||||
|
mode: 0755
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
echo "> framadate a été déployé sur cette machine.\n Voir {{ framadate_path }}"
|
|
@ -78,3 +78,9 @@
|
||||||
enabled: true
|
enabled: true
|
||||||
state: started
|
state: started
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
|
|
||||||
|
- name: Indicate role in motd
|
||||||
|
template:
|
||||||
|
src: update-motd.d/05-service.j2
|
||||||
|
dest: /etc/update-motd.d/05-grafana
|
||||||
|
mode: 0755
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
echo "> grafana a été déployé sur cette machine.\n Voir /etc/grafana/"
|
|
@ -1,6 +0,0 @@
|
||||||
---
|
|
||||||
- name: "Indicate {{ motd_role.name }} in motd"
|
|
||||||
template:
|
|
||||||
src: update-motd.d/05-service.j2
|
|
||||||
dest: "/etc/update-motd.d/05-{{ motd_role.name }}"
|
|
||||||
mode: 0755
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# {{ ansible_managed }}
|
|
||||||
echo "✨ {% if motd_role.verbose_name is defined %}{{ motd_role.verbose_name }}{% else %}{{ motd_role.name|capitalize }}{% endif %} a été déployé sur cette machine."
|
|
||||||
{% if motd_role.path is defined %}
|
|
||||||
echo " Voir {{ motd_role.path }}"
|
|
||||||
{% endif %}
|
|
|
@ -52,3 +52,9 @@
|
||||||
name: prometheus
|
name: prometheus
|
||||||
enabled: yes
|
enabled: yes
|
||||||
state: started
|
state: started
|
||||||
|
|
||||||
|
- name: Indicate role in motd
|
||||||
|
template:
|
||||||
|
src: update-motd.d/05-service.j2
|
||||||
|
dest: /etc/update-motd.d/05-prometheus
|
||||||
|
mode: 0755
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
echo "> prometheus a été déployé sur cette machine.\n Voir /etc/prometheus/"
|
|
@ -39,3 +39,9 @@
|
||||||
register: apt_result
|
register: apt_result
|
||||||
retries: 3
|
retries: 3
|
||||||
until: apt_result is succeeded
|
until: apt_result is succeeded
|
||||||
|
|
||||||
|
- name: Indicate role in motd
|
||||||
|
template:
|
||||||
|
src: update-motd.d/05-service.j2
|
||||||
|
dest: /etc/update-motd.d/05-unifi-controller
|
||||||
|
mode: 0755
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
echo "> Le contrôleur Unifi a été déployé sur cette machine."
|
|
@ -18,3 +18,9 @@
|
||||||
register: apt_result
|
register: apt_result
|
||||||
retries: 3
|
retries: 3
|
||||||
until: apt_result is succeeded
|
until: apt_result is succeeded
|
||||||
|
|
||||||
|
- name: Indicate role in motd
|
||||||
|
template:
|
||||||
|
src: update-motd.d/05-service.j2
|
||||||
|
dest: /etc/update-motd.d/05-wireguard
|
||||||
|
mode: 0755
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
echo "> wireguard a été déployé sur cette machine.\n Voir /etc/wireguard/"
|
|
@ -14,11 +14,5 @@
|
||||||
# you will have to `sudo -u THISUSER zsh` to debug
|
# you will have to `sudo -u THISUSER zsh` to debug
|
||||||
framadate_user: www-data
|
framadate_user: www-data
|
||||||
framadate_path: /var/www/framadate
|
framadate_path: /var/www/framadate
|
||||||
|
|
||||||
# Indicate service in motd
|
|
||||||
motd_role:
|
|
||||||
name: framadate
|
|
||||||
path: "{{ framadate_path }}"
|
|
||||||
roles:
|
roles:
|
||||||
- framadate
|
- framadate
|
||||||
- motd-role
|
|
||||||
|
|
Loading…
Reference in New Issue