
Soy Oscar Mas y en este apartado, procederemos a la instalación y configuración del agente de Zabbix en un servidor de Windows de forma automática mediante Ansible. El equipo de destino ha de estar en el dominio que hemos configurado con anterioridad, en el mismo dominio de Kerberos.
Como ya he comentado con anterioridad, es importante que antes de empezar a crear nuestro playbook, verificar que no exista en algún repositorio tipo Galaxy, ya que de existir nos ahorraremos bastante tiempo. Una URL que hemos de tener presente cuando lancemos PlayBooks en Windows es: http://docs.ansible.com/ansible/list_of_windows_modules.html, es esta web podremos encontrar todos los módulos existentes, para poder gestionar nuestro sistema de Windows.
Uno de los módulos que nos puede interesar, es el de Chocolatey: http://docs.ansible.com/ansible/win_chocolatey_module.html. Desde el cual podremos instalar diferentes programas que nos ofrecen: https://chocolatey.org/packages, la verdad es que es impresionante lo que podremos hacer uniendo estos dos productos. Aunque en este caso he decidido no usarlo para que podáis ver como instalar un programa.
Primero de todo configuraremos nuestro fichero de hosts, desde el cual indicaremos los servidores en los cuales ejecutaremos nuestro PlayBook y le indicaremos los datos de nuestro dominio para que pueda realizar la conexión con nuestro Active Directory.
root@ansible:~# cat /etc/ansible/hosts [windows] ansible-cli-ws.ilba.cat [windows:vars] [email protected] ansible_password=PasswordAdministradorDominio ansible_port=5986 ansible_connection=winrm ansible_winrm_server_cert_validation=ignore
NOTA: Cuando creemos nuestros PlayBooks ir con cuidado con los espacios, ya que Ansible es muy caprichoso con los espacios en los PlayBooks y si no “tabulamos” correctamente nuestro PlayBook nos dará error.
Este Playbook es muy sencillo, lo he hecho así para que sea más ameno y fácil de entender. Faltarían varias cosas básicas, como por ejemplo verificar el correcto sistema operativo de destino; en caso de no se Ubuntu 16.04 LTS que no se ejecute el PlayBook, ya que está pensado para Ubuntu. Pero esto lo dejo para otro post.
root@ansible:~# vim /etc/ansible/playbooks/zabbix_windows/install.yml
---
- name: windows
hosts: windows
gather_facts: false
tasks:
- name: Crear el directorio C:\Software
become: false
win_file:
path: C:\Software
state: directory
- name: Copiar el agente de Zabbix en C:\Software
become: false
win_copy:
src: files/zabbix_agent-3.2.3_installer.exe
dest: c:\Software
- name: Instalacion Zabbix Agent
become: false
win_package:
path: c:\Software\zabbix_agent-3.2.3_installer.exe
productid: 'Zabbix Agent'
arguments: "/server=zabbix.ilba.cat /hostname={{ inventory_hostname }} /serveractive=zabbix.ilba.cat /rmtcmd=1 /S"
ensure: present
Como podréis haber visto antes he usado un ejecutable de Zabbix: zabbix_agent-3.2.3_installer.exe, el cual lo he descargado de la web: http://www.suiviperf.com/zabbix/index.php y lo he colocado dentro de la carpeta de “files”. Para que veáis la estructura, os dejo una captura de pantalla de como quedaría:
root@ansible:~# ansible-playbook -s /etc/ansible/playbooks/zabbix_windows/install.yml
Una vez credo nuestro PlayBook y configurado nuestro fichero de hosts, simplemente nos quedará ejecutarlo de la siguiente manera:
Una vez lanzado el PlayBook, nos conectaremos al equipo de destino para verificar que realmente se ha procedido a la instalación:
Pasado un tiempo, podremos observar que el equipo se ha registrado automáticamente en nuestro servidor de Zabbix y lo ha ubicado en: “Discovered hosts” y en “Windows”, tal y como podremos ver en la siguiente captura:
Como ya he comentado anteriormente, este PlayBook es un ejemplo muy simple de Ansible, podríamos lanzar actualizaciones a los equipos e incluso con un poco de ayuda de PowerShell también podríamos desplegar un equipo en un sistema de Hyper-V clusterizado, etc.
Como siempre, para hacer más ameno el post lo he divido en diferentes partes:


Leave a Reply