Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
system_administration:automation:using_ansible [2023/08/12 19:04] – external edit 127.0.0.1 | system_administration:automation:using_ansible [2023/08/13 13:48] (current) – [Déployer le script de vérification d'accès SSH] aziz | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | {{tag> | ||
====== Configuration des serveurs avec Ansible ====== | ====== Configuration des serveurs avec Ansible ====== | ||
- | Ansible permet de réaliser des déploiements | + | [[https:// |
+ | |||
+ | Le dépôt https:// | ||
+ | |||
+ | < | ||
+ | playbook$ tree -L 1 -F --dirsfirst | ||
+ | . | ||
+ | ├── files/ | ||
+ | ├── waiting_validation/ | ||
+ | ├── ansible.cfg | ||
+ | ├── AuthorizedKeysCommand.yml | ||
+ | ├── inventory | ||
+ | ├── InventoryToSshConfig.yml | ||
+ | ├── README | ||
+ | ├── UpdateBin.yml | ||
+ | └── UpdateDotfiles.yml | ||
+ | |||
+ | |||
+ | 2 directories, | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Le fichier d' | ||
+ | Le fichier '' | ||
+ | |||
+ | Extrait : | ||
+ | |||
+ | < | ||
+ | ########## | ||
+ | # PROD # | ||
+ | ########## | ||
+ | [prodgroup] | ||
+ | prod | ||
+ | igpro ansible_user=odoo | ||
+ | officina | ||
+ | elosys.net | ||
+ | bastion | ||
+ | |||
+ | ############# | ||
+ | # NEW SDDEV # | ||
+ | ############# | ||
+ | [sddevgroup] | ||
+ | sddev | ||
+ | dockerservice | ||
+ | backup | ||
+ | </ | ||
+ | |||
+ | Le fichier '' | ||
+ | * les détails de connexion qu' | ||
+ | * peut contenir quelques variables qui seront utilisées dans les playbooks (les fichiers de recettes) | ||
+ | |||
+ | Le nom du fichier d' | ||
+ | |||
+ | ===== Installer Ansible ===== | ||
+ | La suite de commandes suivantes installera Ansible dans votre espace personnel. ((Ce ne sera pas une installation système. Les autres utilisateurs du système n' | ||
+ | |||
+ | < | ||
+ | $ python3 -m pip install --user ansible | ||
+ | $ python3 -m pip install --user argcomplete | ||
+ | $ activate-global-python-argcomplete --user | ||
+ | </ | ||
+ | |||
+ | ===== Premier playbook InventoryToSshConfig.yml ===== | ||
+ | |||
+ | En exécutant dans un terminal ((Cela suppose que vous avez au préalable correctement initialisé un dossier '' | ||
+ | |||
+ | < | ||
+ | $ ansible-playbook InventoryToSshConfig.yml | ||
+ | </ | ||
+ | |||
+ | * un fichier '' | ||
+ | * si le fichier '' | ||
+ | * un dossier '' | ||
+ | |||
+ | |||
+ | En jouant cet Ansible playbook, pour chaque ligne de définition d'un serveur dans le fichier '' | ||
+ | |||
+ | Exemple : | ||
+ | Pour la ligne suivante dans le fichier '' | ||
+ | |||
+ | < | ||
+ | prod | ||
+ | </ | ||
+ | |||
+ | La configuration suivante sera créée dans le fichier | ||
+ | |||
+ | <code ini> | ||
+ | # https:// | ||
+ | host prod | ||
+ | hostname sd-135347.dedibox.fr | ||
+ | user admin | ||
+ | port 22 | ||
+ | </ | ||
+ | |||
+ | Vous disposerez ainsi de l' | ||
+ | |||
+ | ===== Déployer le script de vérification d' | ||
+ | Comme expliqué sur [[services: | ||
+ | |||
+ | Le playbook '' | ||
+ | |||
+ | Après avoir ajouté les informations de connection de la nouvelle machine dans le fichier '' | ||
+ | |||
+ | < | ||
+ | $ ansible-playbook AuthorizedKeysCommand.yml --limit newmachine | ||
+ | </ | ||
+ | |||
+ | '' | ||