Ansible se está convirtiendo cada vez más en la plataforma de referencia para la implementación de aplicaciones y el aprovisionamiento de software entre los desarrolladores debido a su facilidad de uso y flexibilidad. Además, es fácil de configurar y no es necesario instalar ningún agente en los nodos remotos; en su lugar, Ansible utiliza autenticación SSH sin contraseña para administrar hosts Unix/Linux remotos. En este tema, sin embargo, veremos cómo puede administrar Windows Host usando Ansible.
configuración de laboratorio
Usaremos la siguiente configuración para lograr nuestro objetivo.
- Nodo de control Ansible – CentOS 8 – IP: 192.168.43.13
- Nodo Windows 10 – Windows 10 – IP: 192.168.43.147
Parte 1: Instalación de Ansible en el nodo de control (CentOS 8)
Antes que nada, necesitamos instalar Ansible en el nodo de control, que es el sistema CentOS 8.
Paso 1: Verifique que Python3 esté instalado en el nodo de control de Ansible
En primer lugar, debemos confirmar si Python3 está instalado. CentOS 8 viene con Python3, pero si falta por algún motivo, instálelo con el comando:
# sudo dnf install python3
A continuación, haga que Python3 sea la versión predeterminada de Python ejecutando:
# sudo alternatives --set python /usr/bin/python3
Para verificar si python3 está instalado, ejecute el comando:
# python --version
Lea también: Cómo instalar Ansible (herramienta de automatización) en CentOS 8/RHEL 8
Paso 2: instale un entorno virtual para ejecutar Ansible
Para este ejercicio, se prefiere un entorno aislado para ejecutar y probar Ansible. Esto mantendrá a raya problemas como problemas de dependencia y conflictos de paquetes. El entorno aislado que vamos a crear se llama entorno virtual.
En primer lugar, comencemos con la instalación del entorno virtual en CentOS 8.
# sudo dnf install python3-virtualenv
Después de la instalación del entorno virtual, cree un espacio de trabajo virtual ejecutando:
# virtualenv env
# source env/bin/activate
¡Estupendo! Observe que el indicador ahora ha cambiado a (env).
Paso 3: Instale Ansible
Después de la creación del entorno virtual, proceda e instale la herramienta de automatización Ansible usando pip como se muestra:
# pip install ansible
Más tarde puede confirmar la instalación de Ansible usando el comando:
# ansible --version
Para probar Ansible y ver si está funcionando en nuestro servidor de Ansible Control, ejecute:
# ansible localhost -m ping
¡Estupendo! A continuación, debemos definir el host o sistema de Windows en un archivo de host en el nodo de control de Ansible. Por lo tanto, abra el archivo de hosts predeterminado
# vim /etc/ansible/hosts
Defina los hosts de Windows como se muestra a continuación.
Nota: El nombre de usuario y la contraseña apuntan al usuario en el sistema host de Windows.
A continuación, guarde y salga del archivo de configuración.
Paso 4: Instalar Pywinrm
A diferencia de los sistemas Unix, donde Ansible usa SSH para comunicarse con hosts remotos, con Windows es una historia completamente diferente. Para comunicarse con los hosts de Windows, debe instalar Winrm.
Para instalar winrm, una vez más, use la herramienta pip como se muestra:
# pip install pywinrm
Parte 2: Configuración del host de Windows
En esta sección, vamos a configurar nuestro sistema host remoto de Windows 10 para conectarse con el nodo Ansible Control. vamos a instalar el Oyente de WinRM- corto para Control remoto de Windows – que permitirá la conexión entre el sistema host de Windows y el servidor Ansible.
Pero antes de hacerlo, su sistema host de Windows debe cumplir algunos requisitos para que la instalación se realice correctamente:
- Su sistema host de Windows debe ser Windows 7 o posterior. Para servidores, asegúrese de que está utilizando Servidor Windows 2008 y versiones posteriores.
- Asegúrese de que su sistema esté funcionando .NET Framework 4.0 y después.
- ventanas Potencia Shell debe ser la versión 3.0 y posterior
Con todos los requisitos cumplidos, ahora sigue los pasos estipulados a continuación:
Paso 1: descargue el script WinRM en el host de Windows 10
WinRM se puede instalar mediante un script que puede descargar desde este Enlace. Copie todo el script y péguelo en el editor de notas. A partir de entonces, asegúrese de guardar el script WinRM en la ubicación más conveniente. En nuestro caso, hemos guardado el archivo en el Escritorio con el nombre ConfigureRemotingForAnsible.ps1
Paso 2: Ejecute el script WinRM en el host de Windows 10
A continuación, ejecute PowerShell como administrador
Navegue hasta la ubicación del script y ejecútelo. En este caso, navegamos a la ubicación del escritorio donde guardamos el script. A continuación, continúe y ejecute el script WinRM en el host de Windows:
.ConfigureRemotingForAnsible.ps1
Esto toma aproximadamente un minuto y debería obtener el resultado que se muestra a continuación. El resultado muestra que WinRM se ha instalado correctamente.
Parte 3: Conexión al host de Windows desde el nodo de control de Ansible
Para probar la conectividad con el host de Windows 10, ejecute el comando:
# ansible winhost -m win_ping
El resultado muestra que, de hecho, hemos establecido una conexión con el host remoto de Windows 10 desde el nodo de Ansible Control. Esto implica que ahora podemos administrar el host remoto de Windows usando Ansible Playbooks. Vamos a crear un libro de jugadas de muestra para el sistema host de Windows.
Parte 4: Creación y ejecución de un libro de jugadas para el host de Windows 10
En esta sección final, crearemos un libro de jugadas y crearemos una tarea que instalará Chocolatey en el host remoto. Chocolatey es un administrador de paquetes para el sistema Windows. El juego se define como se muestra:
# vim chocolatey.yml --- - hosts: winhost gather_facts: no tasks: - name: Install Chocolatey on Windows10 win_chocolatey: name=procexp state=present
Guarde y cierre el archivo yml. A continuación, ejecute el libro de jugadas como se muestra
# ansible-playbook chocolatey.yml
La salida es un puntero que todo salió bien. Y esto concluye este tema sobre cómo puede administrar el host de Windows usando Ansible.
Leer también : Cómo crear roles de Ansible y usarlos en Playbook