Les modules

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 : startedstoppedrestarted  (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


Mysql page ansible

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