[linux] ansible pour redémarrer uniquement les serveurs de type redhat mais pas les debians

J’ai une série de serveurs linux, et j’ai besoin d’y exécuter des tâches fréquentes. la solution sera Ansible. 😉

Redémarrage des serveurs linux selon « ansible_os_family »

Mise à jour du fichier d’inventaire

J’en ai profité pour re créer le fichier d’inventaire au format yaml ( ce qui va me permettre une meilleur compatibilité avec des nouvelles commandes, plugins etc.)

/etc/ansible/hosts

all:

  children:
    linux:
      children:
        redhats:
          hosts:
            rh69:
            centos1:
            (...)
            client3:
        debians:
          hosts:
            client1:
            (...)
            supervision:
        Xservers:
          hosts:
            client1:
            rh69:
            centos1:

    windows:
      hosts:
        srv-exchange01:

    web-servers:
      hosts:
        client1:
        (...)
        rh69:
        centos1:

Le playbook :

J’aurai pû m’appuyer sur le groupe « redhats », mais c’était l’occasion de travailler un peu plus finement.. 😉

reboot-redhatFamily.yml

- hosts: linux
  tasks:
          - name: test reboot des redhat
            when: ansible_os_family == "RedHat"
            command: /sbin/reboot

          - name: attendre reboot
            local_action: wait_for host="{{ inventory_hostname }}" search_regex=OpenSSH port=22 timeout=300

 

un petit test :

ansible-playbook reboot-redhatFamily.yml –list-hosts      Où tous les linux sont listés, mais où seuls les redhat et centos seront rebootés.

 

Leave a comment