Restructure README and motd indications

certbot_on_virtu
Alexandre Iooss 2019-07-08 17:45:19 +02:00
parent 43ef614e01
commit d422d04bd4
No known key found for this signature in database
GPG Key ID: 6C79278F3FCDCC02
16 changed files with 87 additions and 91 deletions

View File

@ -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...`.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,3 @@
#!/bin/sh
# {{ ansible_managed }}
echo "> framadate a été déployé sur cette machine.\n Voir {{ framadate_path }}"

View File

@ -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

View File

@ -0,0 +1,3 @@
#!/bin/sh
# {{ ansible_managed }}
echo "> grafana a été déployé sur cette machine.\n Voir /etc/grafana/"

View File

@ -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

View File

@ -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 %}

View File

@ -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

View File

@ -0,0 +1,3 @@
#!/bin/sh
# {{ ansible_managed }}
echo "> prometheus a été déployé sur cette machine.\n Voir /etc/prometheus/"

View File

@ -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

View File

@ -0,0 +1,3 @@
#!/bin/sh
# {{ ansible_managed }}
echo "> Le contrôleur Unifi a été déployé sur cette machine."

View File

@ -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

View File

@ -0,0 +1,3 @@
#!/bin/sh
# {{ ansible_managed }}
echo "> wireguard a été déployé sur cette machine.\n Voir /etc/wireguard/"

View File

@ -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