Les modules
Pour chaque module, il faut :
-
le nom du module à exécuter ;
-
les options nécessaires au fonctionnement du module dans des sous-champs ;
-
enfin, pour des raisons de clarté, il est possible d’ajouter le champ name avec une description de l’opération réalisée.
liste de modules :
Le module service comporte un certain nombre de paramètres dont les plus courant sont:
– name : « description de la tache »
service:
enabled : défini si le service doit démarrer au boot de la machine
state : l’action sur le service :
started
, stopped
, restarted
(en cas de modification sur un fichier de configuration)
Le module dnf ou apt
– name : « description de la tache »
dnf:
name : « nom du paquet a installer »
state : etat du paquet « present », »absent »
Le module lineinfile : sert a inserer ou modifier une ligne dans un fichier :
– name: « description de la modification »
lininfile:
dest: /fichieramodifier
line: « j’insert cette ligne dans mon fichier »
on peut specifier les options :
insertbefore :BOF
pour inserer la ligne en debut de fichier
insertbefore: EOF
pour inserer la ligne en fin de fichier
Le module de compression de fichier :
– name: « compression du dossier html »
community.general.archive:
path: « /var/www/html »
dest: « /sauvegarde/sauvehtml.tgz »
si on veut inclure la date dans le nom du fichier, on peut rajouter une tache qui recupere la date et la place dans une variable :
task:
– name : »récupération de la date et l’heure dans une variable »
set_fact:
current_date: « {{ ‘%Y%m%d_%H%M%S’ | strftime }} »
– name: « compression du dossier html »
community.general.archive:
path: « /var/www/html »
dest: « /sauvegarde/sauvegarde_{{ current_date }}.zip »
format: zip
pour utiliser mysql avec ansible il faut installer un module pour python sur la machine cliente : (a rajouter dans les paquets a installer)
paquets pour ubuntu serveur :
module apt :
pkg-config
libmaradb-dev
module pip
mysqlclient
modulesmysql_db module
Ajouter ou supprimer des bases de données MySQL sur un hôte distant.
mysql_info module
Rassembler des informations sur les serveurs MySQL.
mysql_query module
Exécuter des requêtes MySQL.
mysql_replication module
Gérer la réplication MySQL.
mysql_role module
Ajouter, supprimer ou mettre à jour un rôle MySQL.
mysql_user module
Ajouter ou supprimer un utilisateur d’une base de données MySQL.
mysql_variables module
Gérer les variables globales de MySQL.
Le module fetch pour copier des fichiers de la cible ver le Local :
pour la copie du pc local vers la cible il faut utiliser le module ansible.builtin.copy
– name: « Copie du backup sur le PC local »
ansible.builtin.fetch:
src: /sauvesql/backup-sql-all_{{ current_date }}.sql
dest: /home/nico/Nextcloud/ansibledell/ionos/bacup_ionos/
flat: yes
Explication des options :
src
: Chemin du fichier sur la machine distante.dest
: Chemin sur le contrôleur local où le fichier sera copié.flat: yes
: Cette option permet de sauvegarder le fichier directement dans le répertoire spécifié sans créer de structure de répertoires supplémentaires.
création de fichiers et répertoires
– name: « Création d’un simple fichier »
ansible.builtin.file:
path: /tmp/foo.txt
owner: foo
group: foo
mode: 0644
– name: « Création des répertoires d’un path »
ansible.builtin.file:
path: /tmp/test/de/creation/de/repertoires
state: directory
mode: 0755