Automatizar Windows con Ansible WinRM

Automatizar Windows con Ansible WinRM

Muchas personas tienen conceptos erróneos sobre Ansible y las plataformas que admite, creyendo que solo es accesible para Ubuntu. Sin embargo, Ansible también se puede usar para controlar las PC de Windows, dispositivos conectados, dispositivos de seguridad de Internet, servicios web, aplicaciones y otras cosas. Vamos a hablar sobre el uso de Windows con Ansible en este tutorial.

La herramienta de configuración Ansible puede administrar y llevar a cabo tareas esenciales en instalaciones de Windows, como gerentes remotos con alertas de WinRM y protección. A pesar de requerir que Ubuntu funcione en Ansible, los controladores de Microsoft pueden administrar y administrar sus dispositivos utilizando Ansible a pesar de tener alguna experiencia previa con los terminales de Ubuntu. Los controladores de Microsoft podrán administrar Microsoft Windows usando Ansible de alguna manera que sea relevante para ellos debido a la funcionalidad nativa de Windows que emplea Microsoft Windows PowerShell Remote. Las soluciones avanzadas para controlar y administrar plataformas de Microsoft Windows se incluyen en la plataforma de software Ansible para la gestión organizacional. Puede automatizar la implementación, la activación del software y la integración del sistema para un entorno multivendor con la ayuda de la plataforma de software Ansible.

En Ansible, la mayoría de la terminología y las directrices utilizadas para administrar hosts remotos de Linux, así como estas terminologías, se aplican por igual a los hosts de Microsoft Windows. Pero todavía hay ciertas peculiaridades cada vez que se refiere a variables de separadores de ruta o actividades específicas del sistema operativo. Se debe configurar WinRM para habilitar el acceso a los sistemas Windows desde el controlador Ansible. Puede iniciarse utilizando Ansible para Microsoft Windows en su configuración de desarrollo o monitoreo ejecutando el script PowerShell. Cada host de Microsoft Windows autorizado está configurado por el script para WinRM.

Prerrequisitos:

Asegúrese de que siempre haya tenido estos requisitos:

Versión: Vamos a utilizar el controlador Ansible versión 2.9. Para que haga cambios, necesitamos un servidor de control para Ansible, y en este caso, estamos utilizando Ansible como controlador con la dirección IP 192.168.5.220.

Host de Windows: Le requerimos que interactúen con los anfitriones locales. Además, estamos utilizando el host de Windows en esta instancia como un servidor remoto de destino durante la operación.

Pitón: Su dispositivo de host de controlador Ansible se configurará para ejecutar Python. Python utilizará la versión 2, mientras que la versión 3 también es una opción.

Paquete: El servidor host de Windows se configurará para instalar el paquete "Pip".

Estación de trabajo de Windows: Deberá pasar tiempo en una consola de Windows a medida que preconfiguemos el host que Microsoft usará para manejar Ansible.

Potencia Shell: El servidor de Windows tendrá la capacidad de controlar el acceso remoto de PowerShell.

Ejemplo: Establecer un host de Microsoft Windows para permitir conexiones con el controlador Ansible

En este ejemplo, primero, trabajaremos para el host remoto de destino que es windows_host. Luego, trabajaremos con Ansible para que no habrá confusión para el usuario.

Ventana de destino_host

No se necesitan servidores para Ansible. Entonces, tanto SSH como Windows Remote Manager son compatibles con Windows WinRM. WinRM significa Windows Remote Manager y se usa con frecuencia a través de SSH debido a la estrecha integración de WinRM.

PS C: \ Windows \ System32> Winrm Get Winrm/config/Service

Configurar el winrm

Después de eso, vamos a actualizar el WinRM en Microsoft Windows. El software Ansible ha creado comandos disponibles para evaluar WinRM y realizar los ajustes requeridos para que Ansible pueda acceder a estos comandos. Aunque solo queremos utilizar credenciales básicas, por lo que preferiríamos emplear algo más seguro para acceder a él. Los siguientes son los pasos para la actualización del WinRM:

Guardar la ruta de los comandos

Usaremos los comandos, por lo que para eso, primero lanzamos la ventana del terminal de Microsoft PowerShell para que podamos guardar la ruta de comandos.

Ps c: \> $ url = "https: // raw.githubusercontent.com/ansible/ansible/defel/ejemplos/scripts/
ConfigUerReMotingForansible.PS1 "
Dirección del almacenamiento del comando

Usaremos la siguiente URL para que podamos almacenar fácilmente los comandos allí:

Ps c: \> $ file = "$ env: temp \ configureuremotingForansible.PS1 "

Descargue los comandos y exuétalos localmente

Ahora, descargaremos los comandos y mostraremos estos comandos en un documento local.

PS C: \> (Sistema New -Object -TyPeName.Neto.WebClient).Downloadfile ($ url, $ archivo)

Ejecutar los comandos

Para ejecutar, el comando es la ruta que mostrará la ejecución del documento.

PS C: \> PowerShell.EXE -EXECUCIONSPOLICY BYPASS -FILE $ FILE

Después de escribir la ruta anterior, obtendremos la salida a continuación en PowerShell en Windows.

Verifique la conectividad WinRM

Esto es para verificar si la conexión del WinRM está construida con Ansible o no.

PS C: \> Winrm Enumerate Winrm/config/oyente

Como se muestra, Ansible y WinRM son compatibles entre sí.

Controlador ansible

Este es el trabajo en la herramienta Ansible y el controlador utiliza los comandos para que pueda configurar la información y construir la conexión entre Windows y Ansible. Primero, crearemos el libro de jugadas.

Creando el libro de jugadas

Ahora, administraremos la implementación y la actualización de los paquetes. Para eso, creemos un libro de jugadas en Ansible primero:

[root@master ansible]# nano win_ping.YML

Aquí está la declaración del libro de jugadas Ansible. Cuando el libro de jugadas gane_ping.Se crea YML, luego se lanzará a la nueva terminal de Ansible. Aquí, escribiremos los hosts y la tarea que queremos realizar. En Win_Ping.YML, nombramos el libro de jugadas que queremos hacer en el libro de jugadas.

Luego, escribiremos el nombre de los hosts, ya que estamos configurando los datos del host de Microsoft Windows. Entonces, el nombre del host de destino es "windows_host". Luego, hemos pasado la opción "False" a la opción Reungue_Fact del libro de jugadas para que no recupere la información del host de Windows de destino en el libro de jugadas. A continuación, hemos enumerado las tareas en el libro de jugadas. Queremos verificar la conexión entre el controlador de libro de jugadas Ansible y el host de Windows de destino para que pasemos el nombre del libro de jugadas en la tarea.

- Nombre: prueba del módulo win_ping
Hosts: Windows_host
convertirse en: falso
gather_facts: falso
tareas:
- Nombre: conexión de prueba
win_ping:

Creación del archivo de inventario

Después de la creación y terminación del libro de jugadas, construiremos el archivo de inventario para que proporcionemos la información sobre el host de Windows aquí. Escribiremos la dirección IP, el nombre del usuario, la contraseña, el nombre de la conexión, el número de puerto y la validación de WinRM. Esta es la declaración que escribiremos para construir el archivo de inventario en Ansible.

[root@master ansible]# nano win_ping.yml todos:
Hospedadores:
Windows_host:
ansible_host: 192.168.5.220
ansible_user: ansible
ansible_password: ********
ansible_connection: winrm
Ansible_port: 5986
ansible_winrm_server_cert_validation: ignorar

Después de proporcionar la información necesaria sobre el host de Windows de destino, ejecutaremos el libro de jugadas junto con el archivo de inventario. Para hacerlo, escriba el comando a continuación:

[root@master ansible]# ansible-playbook win_ping.yml -i anfitrión.YML

Como se muestra, la conexión entre el controlador Ansible y el host de Windows se ha realizado con éxito.

Conclusión

Usando el paquete WinRM en Ansible, hemos aprendido cómo automatizar Microsoft Windows en esta conferencia. Describimos en detalle cómo configurar un host de Microsoft Windows para Ansible. Ansible es una herramienta que históricamente se ha asociado con Linux, aunque también se puede utilizar en Microsoft Windows con facilidad.