Inicio > Administración, General > Introducción a Ansible – Playbooks II

Introducción a Ansible – Playbooks II

A continuación, especificaremos el Playbook que hicimos en el post anterior, más correctamente, pero ahora, modificaremos el reinicio del servicio NTP, y lo incluiremos dentro de la directiva “handlers”, con esto, conseguiremos que el servicio únicamente se reinicie en caso de que se haya realizaro una modificación en el servidor con las dependencias anteriores, si no se ha modificado nada previamente, el servicio no será reiniciado.

---
- hosts: webservers
  vars:
    ntp_server: hora.rediris.es
  remote_user: root
  tasks:
  - name: Instalando ntpdate
    apt:
      name: ntp
      state: present
  - name: agregando el fichero de configuracion
    copy:
      src: /root/playbooks/ntp.conf
      dest: /etc/ntp.conf
  handlers:
  - name: reinicio sel servicio ntp para coger los cambios.
    service:
      name: ntp
      state: restarted

Como se puede ver, la definición de este Playbook es diferente del anterior, es la nueva forma de definición, la anterior, también está soportada y de momento parece que no la van a descontinuar.

Por otro lado, este Playbook, también tiene un inconveniente, y es que está preparado únicamente para servidores Debian o derivados, en caso de tener servidores CentOS dentro del grupo “webservers”, dará un error en la ejecución.
Para solventar este problema, modificaremos el Playbook de la siguiente manera.

---
- hosts: webservers
  vars:
    ntp_server: hora.rediris.es
  remote_user: root
  tasks:
  - name: Instalando ntpdate Debian
    apt:
      name: ntp
      state: present
    when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu'
  - name: Instalando ntpdate CentOS
    yum:
      name: ntp
      state: present
    when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux'
  - name: agregando el fichero de configuracion
    copy:
      src: /root/playbooks/ntp.conf
      dest: /etc/ntp.conf
  handlers:
  - name: reinicio sel servicio ntp para coger los cambios.
    service:
      name: ntp
      state: restarted

En este caso, como vemos la ejecución ha dado un error, ya que es una distribución mínima de CentOS y no tiene instalado Python.

root@master:~/playbooks# ansible-playbook ntp.yml

PLAY [webservers] *************************************************************

GATHERING FACTS ***************************************************************
ok: [192.168.49.42]
ok: [192.168.49.43]

TASK: [Instalando ntpdate Debian] *********************************************
skipping: [192.168.49.43]
ok: [192.168.49.42]

TASK: [Instalando python CentOS] **********************************************
skipping: [192.168.49.42]
ok: [192.168.49.43]

TASK: [Instalando ntpdate CentOS] *********************************************
skipping: [192.168.49.42]
ok: [192.168.49.43]

TASK: [agregando el fichero de configuracion] *********************************
ok: [192.168.49.42]
changed: [192.168.49.43]

PLAY RECAP ********************************************************************
192.168.49.42              : ok=3    changed=0    unreachable=0    failed=0
192.168.49.43              : ok=4    changed=1    unreachable=0    failed=0
Categorías:Administración, General Etiquetas: , ,
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: