Appliquer le ciblage des groupes d'hôtes
Maintenant que vous comprenez le concept des groupes d'hôtes Ansible et comment les cibler dans vos commandes et playbooks, explorons quelques applications pratiques et exemples.
Déployer des mises à jour d'application
Supposons que vous ayez une application web qui s'exécute sur un groupe de serveurs appelé « webservers ». Pour déployer une nouvelle version de l'application, vous pouvez utiliser le playbook Ansible suivant :
- hosts: webservers
tasks:
- name: Update web application
git:
repo: https://github.com/example/web-app.git
dest: /opt/web-app
version: latest
notify: Restart Apache
handlers:
- name: Restart Apache
service:
name: apache2
state: restarted
Dans cet exemple, le playbook cible le groupe « webservers » et met à jour le code de l'application web à partir d'un dépôt Git. Après la mise à jour, il notifie le gestionnaire « Restart Apache », qui redémarre le service Apache sur les hôtes concernés.
Vous pouvez avoir un groupe d'hôtes que vous souhaitez surveiller à l'aide d'un outil de surveillance comme Nagios ou Zabbix. Vous pouvez utiliser Ansible pour déployer et configurer les agents de surveillance sur ces hôtes :
- hosts: monitoring-hosts
tasks:
- name: Install Zabbix agent
apt:
name: zabbix-agent
state: present
- name: Configure Zabbix agent
template:
src: zabbix_agent.conf.j2
dest: /etc/zabbix/zabbix_agent.conf
notify: Restart Zabbix agent
handlers:
- name: Restart Zabbix agent
service:
name: zabbix-agent
state: restarted
Dans cet exemple, le playbook cible le groupe « monitoring - hosts », installe le paquet de l'agent Zabbix et configure l'agent à l'aide d'un modèle Jinja2. Après la configuration, il notifie le gestionnaire « Restart Zabbix agent », qui redémarre le service de l'agent Zabbix sur les hôtes concernés.
Vous pouvez avoir un ensemble d'hôtes qui doivent être conformes à des politiques de sécurité ou de réglementation spécifiques. Vous pouvez utiliser Ansible pour appliquer ces politiques à travers les groupes d'hôtes concernés :
- hosts: production-servers
tasks:
- name: Apply CIS benchmark
include_role:
name: cis-benchmark
Dans cet exemple, le playbook cible le groupe « production - servers » et applique le benchmark de sécurité CIS à l'aide d'un rôle Ansible.
En utilisant les groupes d'hôtes Ansible, vous pouvez rationaliser vos tâches de gestion d'infrastructure, garantir la cohérence dans votre environnement et améliorer l'efficacité globale de votre automatisation basée sur Ansible.