Modules essentiels 22 min de lecture

Modules de gestion systeme

Module apt / yum (paquets)

# apt pour Debian/Ubuntu
- name: Installer plusieurs paquets
  apt:
    name:
      - nginx
      - curl
      - htop
    state: present
    update_cache: yes

# yum pour CentOS/RHEL
- name: Installer un paquet avec yum
  yum:
    name: httpd
    state: latest

Module service / systemd

# Gerer un service
- name: Demarrer et activer Nginx
  service:
    name: nginx
    state: started
    enabled: yes

# Avec systemd (plus d'options)
- name: Redemarrer un service avec systemd
  systemd:
    name: nginx
    state: restarted
    daemon_reload: yes

Module user (utilisateurs)

# Creer un utilisateur
- name: Creer l'utilisateur deploy
  user:
    name: deploy
    shell: /bin/bash
    groups: sudo,www-data
    append: yes
    create_home: yes

# Ajouter une cle SSH
- name: Ajouter la cle SSH de deploy
  authorized_key:
    user: deploy
    key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
    state: present

Module file (fichiers et repertoires)

# Creer un repertoire
- name: Creer le repertoire de l'application
  file:
    path: /opt/myapp
    state: directory
    owner: deploy
    group: deploy
    mode: "0755"

# Creer un lien symbolique
- name: Lien symbolique vers la config
  file:
    src: /opt/myapp/config.yml
    dest: /etc/myapp/config.yml
    state: link

# Supprimer un fichier
- name: Supprimer un fichier temporaire
  file:
    path: /tmp/old-file.txt
    state: absent
State matters : Les valeurs courantes de state sont present, absent, latest, started, stopped, restarted, directory, link.