Initial ansible

certbot_on_virtu
Alexandre Iooss 2019-04-13 11:41:57 +02:00
parent 4184904fd6
commit f65b31fd87
No known key found for this signature in database
GPG Key ID: 6C79278F3FCDCC02
6 changed files with 147 additions and 1 deletions

1
.gitignore vendored 100644
View File

@ -0,0 +1 @@
*.retry

18
.gitlab-ci.yml 100644
View File

@ -0,0 +1,18 @@
---
image: python:3.6
stages:
- lint
yamllint:
stage: lint
script:
- pip install yamllint==1.15.0
- yamllint -c .yamllint.yml .
ansible-lint:
stage: lint
script:
- pip install ansible-lint==4.0.0
- ansible-lint *.yml
...

7
.yamllint.yml 100644
View File

@ -0,0 +1,7 @@
---
extends: default
rules:
line-length:
level: warning
...

View File

@ -1,3 +1,56 @@
# Ansible
Ensemble des recettes de déploiement Ansible pour les serveurs du Crans.
Ces politiques de déployement nécessite Ansible 2.7 ou plus récent.
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
### Mettre sa clé SSH sur une machine
```
ssh-copy-id -i ~/.ssh/id_rsa_crans.pub zamok.crans.org
```
### Automatiquement ajouter fingerprint ECDSA (dangereux !)
Il faut changer la variable d'environnement suivante :
`ANSIBLE_HOST_KEY_CHECKING=0`.
### Configurer la connexion au bastion
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 Aurore servers
# and use a bastion
Host 10.231.136.* *.adm.crans.org
IdentityFile ~/.ssh/id_rsa_crans
ProxyJump passerelle.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.
### Lister tout ce que sait Ansible sur un hôte
```
ansible -i hosts zamok.crans.org -m setup --ask-vault-pass
```

29
ansible.cfg 100644
View File

@ -0,0 +1,29 @@
# Aurore Crans configuration
[defaults]
# Use Aurore inventory
inventory = ./hosts
# Custom header in templates
ansible_managed = Ansible managed: {file} modified on %Y-%m-%d %H:%M:%S by {uid} on {host}
# Do not use cows (with cowsay)
nocows = 1
# Do more parallelism
forks = 15
[privilege_escalation]
# Use sudo to get priviledge access
become = True
# Ask for password
become_ask_pass = True
[diff]
# TO know what changed
always = yes

38
hosts 100644
View File

@ -0,0 +1,38 @@
# Crans servers inventory
# How to name your server ?
# > We name servers according to location, then type.
# > So all containers at OVH are in ovh-container.
# > Then we regroup everything in global geographic and type groups.
[crans-pve]
[crans-container]
[crans-vm]
[ovh-server]
# everything at crans
[crans:children]
crans-pve
crans-container
crans-vm
# everything at ovh
[ovh:children]
ovh-server
# every LXC container
[container:children]
crans-container
# every virtual machine
[vm:children]
crans-vm
# every PVE
[pve:children]
crans-pve