1
0
Bifurcation 0
miroir de https://github.com/PAPAMICA/Wiki-Tech.io.git synchronisé 2024-07-18 07:28:16 +02:00
Wiki-Tech.io/Configuration/Ansible/Modules.md
2021-07-10 18:41:01 +00:00

8,7 Kio

title description published date tags editor dateCreated
Ansible - Les modules Utilisation de différents modules Ansible true 2021-07-10T18:40:59.091Z ansible, configuration, module markdown 2021-07-09T15:18:02.744Z

FILE : DIRECTORY, SOFTLINK, DROITS, TOUCH...

Description

Doc : https://docs.ansible.com/ansible/latest/modules/file_module.html Commande : ansible-doc file

Objectif : gestion des fichiers et répertoires

Périmètre : fichiers, répertoires, liens symboliques

Paramètres

|--|--| | attribute | Paramètres particuliers d'un fichier : immutabilité etc... (https://fr.wikipedia.org/wiki/Chattr)| | force | Pour les liens symboliques (si le fichier source existe pas, la destination existe)| | group/owner | Propriétaire et groupe de l'élément| | mode | Sous les deux formats : "0755" ou "u=rwx,g=rx,o=rx"| | path | Localisation| | recurse | Création du chemin intermédiaire si n'existe pas (yes/no) > pour directory uniquement| | src | Pour les liens (hard ou symbolique)| | state | Type (absent / directory / file / hard / link / touch)|

Commandes

Créer un répertoire

- name: création du répertoire /tmp/xavki
  file:
    path: /tmp/xavki/
    state: directory

Le propriétaire du dossier et l'utilisateur de connexion {.is-info}

Changement de user > root

- name: création du répertoire /tmp/xavki
  file:
    path: /tmp/xavki/
    state: directory
    owner: root

become = yes > différents endroits pour le faire

  • cli > -b
  • playbook/tasks > become: yes
- name: création du répertoire /tmp/xavki
  file:
    path: /tmp/xavki/
    state: directory
    owner: root
  become: yes

Attention à l'indentation {.is-warning}

Modification du groupe et des droits (RWX-RX-RX - 0755) | stat

- name: création du répertoire /tmp/xavki
  file:
    path: /tmp/xavki/
    state: directory
    owner: root
    group: root
    mode: 0755
  become: yes

Récursivité (pour directory uniquement

  - name: création du répertoire /tmp/xavki
    file:
      path: /tmp/xavki/1/2/3/4
      recurse: yes
      state: directory
      owner: root
      group: root
      mode: 0755

Touch

  - name: création du répertoire /tmp/xavki
    file:
      path: /tmp/xavki/1/2/3/4/fichier.txt
      state: touch
      owner: root
      group: root
      mode: 0755

Lien symbolique = lien vers fichier (diff avec hardlink = lien vers inode)

  - name: création du répertoire /tmp/xavki
    file:
      src: /tmp/xavki/1/2/3/4/
      dest: /tmp/symlink
      state: link  #hard
      owner: root
      group: root
      mode: 0755

Suppression de fichier

  - name: dir sans idempotence
    file:
      path: /tmp/xavki.txt
      state: absent

Suppression de répertoire récursive

  - name: dir sans idempotence
    file:
      path: /tmp/xavki/
      state: absent

USER : CREER, SUPPRIMER, GERER DES UTILISATEURS

Description

Doc : https://docs.ansible.com/ansible/latest/modules/user_module.html Commande : ansible-doc user Equivalence : useradd/adduser/userdel/deluser/luseradd

Paramètres

|--|--| | append yes/no | En lien avec groups / ajout aux groupes ou changement | | comment | Commentaire associé au user | | create_home yes/no | Création de la home ou pas | | expires format epoch | Date d'expiration | | force | Permet de forcer la suppression des fichier d'un user | | generate_ssh_key | Génère en même temps une clef ssh à l'utilisateur | | group | Définit le groupe principal de l'utilisateur | | groups | Définit les groupes secondaires qui seront ajoutés | | home | Définition de la home du user | | local | Dans le cas d'une décentralisation de la gestion des users (forcer localement) | | move_home | Pour déplacer une home existante | | name | nom utilisateur | | password | Hash du password | | password_lock | Vérouiller le password du user | | remove | En cas de state absent, suppression en même des répertoires du user | | shell | Définition sur shell attribué au user | | skeleton | Avec create_home, pour définir le squelette à appliquer | | ssh_key_bits | Taille de la clef ssh générée | | ssh_key_comment | Commentaire de la clef ssh | | ssh_key_file | Spécifie le chemin de la clef ssh | | ssh_key_passphrase| Définir la passphrase de la clef ssh sinon pas de passphrase | | ssh_key_type | rsa par défaut, type de clef ssh | | state | Création ou suppression | | system | A la création définir ou non un compte system | | uid | Fixer l'uid | | update_password always/on_create | Soit mettre à jour sur changement ou juste création

Commandes

Création d'un user avec password

- name: création de xavki
  user:
    name: xavki
    state: present
    password: "{{ 'password' | password_hash('sha512') }}"   

Ajout au groupe sudo

- name: création de xavki
  user:
    name: xavki
    state: present
    groups: sudo
    append: yes
    password: "{{ 'password' | password_hash('sha512') }}"   

Fixer l'uid

- name: création de xavki
  user:
    name: xavki
    state: present
    uid: 1200
    groups: sudo
    append: yes
    password: "{{ 'password' | password_hash('sha512') }}" 

Génération de la clef ssh

- name: création de xavki
  user:
    name: xavki
    state: present
    uid: 1200
    groups: sudo
    append: yes
    generate_ssh_key: yes
    password: "{{ 'password' | password_hash('sha512') }}"   

Ajout d'un register et découvrir les outputs

  - name: création du user xavki
    user:
      name: xavki
      state: present
      generate_ssh_key: yes
      uid: 1200
      groups: sudo
      append: yes
      password: "{{ 'password' | password_hash('sha512') }}"
    register: mavar
  - name: debug
    debug:
      msg: "{{ mavar }}"

nologin avec le shell

  - name: création du user xavki
    user:
      name: xavki
      state: present
      shell: /sbin/nologin
      generate_ssh_key: yes
      uid: 1200
      groups: sudo
      append: yes
      password: "{{ 'password' | password_hash('sha512') }}"
      password_lock: yes

Suppression d'un user

  - name: création du user xavki
    user:
      name: xavki
      state: absent

REGISTER & STAT

Description

Doc : Documentation : https://docs.ansible.com/ansible/latest/modules/stat_module.html

Paramètres

|--|--| | path | Chemin du fichier ou répertoire | | follow | Suivre les liens symboliques | | get_checksum | Récupérer la checksum | | checksum_algorithm | Type de checksum (md5, etc) | | get_mime | Récupération du type de données |

Commandes

Création d'un fichier

  - name: création d'un fichier
    file:
      path: /tmp/xavki.txt
      state: touch
      owner: xavki

Utilisation de stat

  - name: check avec stat
    stat:
      path: /tmp/xavki.txt

Récupération de la variable

  - name: check avec stat
    stat:
      path: /tmp/xavki.txt
    register: __fichier_xavki_exist
  - name: debug
    debug:
      var: __fichier_xavki

Récupération d'une clef

  - name: debug
    debug:
      var: __fichier_xavki.stat.exists

Utilisation conditionnnel

  - name: création répertoire xavki
    file:
      path: /tmp/xavki
      state: directory
    when: __fichier_xavki.stat.exists

Exemple

  tasks:
  - name: création d'un fichier
    file:
      path: /tmp/xavki.txt
      state: touch
      owner: root
    when: xavki_file is defined
  - name: check avec stat
    stat:
      path: /tmp/xavki.txt
    register: __fichier_xavki
  - name: debug
    debug:
      var: __fichier_xavki.stat.exists
  - name: création répertoire xavki
    file:
      path: /tmp/xavki
      state: directory
    when: __fichier_xavki.stat.exists and xavki_file is defined