Gestion Connexions Ansible

Objectifs de certification

RHCE EX294 (RHEL8)

Si vous poursuivez des objectifs de certification, vous pourriez trouvez ici des bases qui vous aideront pour :

  • 3. Installation et configuration d’un nœud de contrôle Ansible
    • 3.5. Gérer les parallélismes

1. Elevation de Privileges Ansible

1.1. Contrôle de l’élévatation de privilège dans le livre de jeu.

https://docs.ansible.com/ansible/latest/user_guide/become.html

- name: "PLAY 1: demo playbook"
  hosts: localhost
  remote_user: user
  become: yes
  become_user: root
  become_method: sudo

1.2. Contrôle de l’élévatation de privilège dans l’inventaire

2. Types de connexions Ansible

- name: "PLAY 1: demo playbook"
  hosts: localhost
  connection: local

Connection Plugins

Les plug-ins de connexion permettent à Ansible de se connecter aux hôtes cibles afin d’exécuter des tâches sur ceux-ci. Ansible est livré avec de nombreux plugins de connexion, mais un seul peut être utilisé par hôte à la fois. Les plus utilisés sont les types de connexion Paramiko SSH, ssh natif (appelé simplement ssh) et local.

On peut utiliser ansible-doc -t connection -l pour voir la liste des plugins disponibles. ansible-doc -t <nom du plug-in> permet d’afficher une documentation détaillée et des exemples.

  • buildah Interact with an existing buildah container
  • chroot Interact with local chroot
  • docker Run tasks in docker containers
  • funcd Use funcd to connect to target
  • httpapi Use httpapi to run command on network appliances
  • iocage Run tasks in iocage jails
  • jail Run tasks in jails
  • kubectl Execute tasks in pods running on Kubernetes.
  • libvirt_lxc Run tasks in lxc containers via libvirt
  • local execute on controller
  • lxc Run tasks in lxc containers via lxc python library
  • lxd Run tasks in lxc containers via lxc CLI
  • netconf Provides a persistent connection using the netconf protocol
  • network_cli Use network_cli to run command on network appliances
  • oc Execute tasks in pods running on OpenShift.
  • paramiko_ssh Run tasks via python ssh (paramiko)
  • persistent Use a persistent unix socket for connection
  • psrp Run tasks over Microsoft PowerShell Remoting Protocol
  • saltstack Allow ansible to piggyback on salt minions
  • ssh connect via ssh client binary
  • winrm Run tasks over Microsoft’s WinRM
  • zone Run tasks in a zone instance

3. Actions Locales et Délegation

Delegation, Rolling Updates, and Local Actions

Si vous souhaitez exécuter une tâche sur un hôte en faisant référence à d’autres hôtes, utilisez le mot-clé delegate_to sur une tâche.

---

- hosts: webservers
  serial: 5

  tasks:

  - name: take out of load balancer pool
    command: /usr/bin/take_out_of_pool {{ inventory_hostname }}
    delegate_to: 127.0.0.1

  - name: actual steps would go here
    yum:
      name: acme-web-stack
      state: latest

  - name: add back to load balancer pool
    local_action: command /usr/bin/add_back_to_pool {{ inventory_hostname }}

Il existe également une syntaxe abrégée local_action: qui inclut la tâche locale au lieu delegate_to: 127.0.0.1 au niveau du module.

---
# ...
  tasks:

  - name: Send summary mail
    local_action:
      module: mail
      subject: "Summary Mail"
      to: "{{ mail_recipient }}"
      body: "{{ mail_body }}"
    run_once: True

La procédure delegate_to: est de toute façon celle qui sera préférée.

4. Parralélisme et le plug-in de stratégies.

ansible-doc -t strategy -l
debug       Executes tasks in interactive debug session
free        Executes tasks without waiting for all hosts
host_pinned Executes tasks on each host without interruption
linear      Executes tasks in a linear fashion

Avec le plug-in de stratégie linear, on peut utiliser la directive de jeu serial: <nombre> pour limiter le nombre tâche à exécuter à la fois.

5. Paramètre de fork

Laisser un commentaire