IBM Cloud Docs
Instalación y configuración de Ansible

Instalación y configuración de Ansible

En el paso anterior se ha suministrado el servidor de automatización y la configuración inicial del sistema operativo se ha completado. En este paso, se implementan las tareas siguientes:

  1. Instalación de Ansible.
  2. Adición de colecciones de Ansible.
  3. Creación de un archivo de inventario de Ansible.
  4. Utilización del almacenamiento de Ansible para cifrar archivos.
  5. Comprobación de conexiones.

Se incluye un paso opcional para instalar las colecciones NSX-T de Ansible. El paso opcional solo es necesario si Ansible® se utiliza para crear recintos de pruebas.

Instalación de Ansible

En una línea de mandatos del servidor de automatización, ejecute los mandatos siguientes.

sudo apt update
sudo apt install ansible -y
sudo apt install python3-pip -y
ansible --version

Estos mandatos se utilizan para los elementos siguientes:

  • Renueve el índice del paquete del sistema.
  • Instale el software de Ansible®.
  • Instale el paquete pip que es necesario para el uso si WinRM con Ansible.
  • Verifique si Ansible está instalado.

Adición de recopilaciones de Ansible

Las colecciones de Ansible son módulos adicionales. En este despliegue, utilice los mandatos siguientes para añadir las colecciones necesarias:

ansible-galaxy collection install ansible.posix
ansible-galaxy collection install community.general
ansible-galaxy collection install ansible.windows
ansible-galaxy collection install community.windows
ansible-galaxy collection install juniper.device
ansible-galaxy collection install junipernetworks.junos

Las colecciones juniper.device y junipernetworks.junos solo son necesarias si crea creando un entorno de recuperación aislado.

Creación de un archivo de inventario de Ansible

  1. Cree una estructura de directorios para los archivos Ansible y cree un archivo de inventario inicial para probar las conexiones de Ansible con los hosts de Ansible. Utilice los mandatos siguientes, cuando esté conectado como usuario de ansible:

    sudo mkdir /swlib
    sudo mkdir /swlib/ansible
    
  2. Cree un archivo de inventario denominado hosts que tenga dos grupos: [LHBR] y [VBR], con las direcciones IP o FQDN del repositorio protegido de Linux® y el servidor de copia de seguridad de Veeam®:

    touch /swlib/ansible/hosts
    vi /swlib/ansible/hosts
    

Ejemplos

Un archivo hosts para la copia de seguridad inmutable.

[lhbr]
lhbr01.test.ibmcloud.local ansible_user=root

[vbr]
prodbackup ansible_host=10.38.207.157 ansible_user=sa-ansible ansible_connection=winrm ansible_winrm_server_cert_validation=ignore

Un archivo hosts para el entorno de recuperación aislado.

[lhbr]
lhbr01.test.ibmcloud.local ansible_user=root

[vbr]
prodbackup ansible_host=10.38.207.157 ansible_user=sa-ansible ansible_connection=winrm ansible_winrm_server_cert_validation=ignore

[vsrx]
gateway01 ansible_host=10.5.37.138 ansible_user=sa-ansible

Utilización de la caja fuerte Ansible para cifrar archivos

La caja fuerte de Ansible permite el cifrado de valores y estructuras de datos para proteger datos confidenciales que son necesarios para ejecutar correctamente las reproducciones de Ansible, pero que no son visibles públicamente, como las contraseñas o claves privadas. Ansible descifra automáticamente el contenido cifrado por la caja fuerte en tiempo de ejecución cuando se proporciona la clave.

La caja fuerte se implementa con granularidad a nivel de archivo, lo que significa que los archivos están totalmente cifrados o sin cifrar. Utiliza el algoritmo AES256 para proporcionar un cifrado simétrico que se ha aplicado en una contraseña proporcionada por el usuario. La misma contraseña se utiliza para cifrar y descifrar contenido. El comando ansible-vault se utiliza para cifrar inicialmente los archivos y, a continuación, se utiliza para ver, editar o descifrar los datos.

  • Cree un archivo de configuración Ansible que detalle la ubicación del archivo hosts y el archivo de contraseña de la bóveda.
  • Cree y cifre un archivo, denominado group_vars/vbr.yml, que contenga la contraseña del usuario sa-ansible para acceder al servidor de copias de seguridad de Veeam. La razón por la que la contraseña para el servidor de copia de seguridad de Veeam se coloca aquí es para que funcione el mandato ansible vbr -m win_ping.
  • Cree y cifre un archivo denominado vault que contenga las contraseñas del repositorio de copia de seguridad protegido y opcionalmente, el dispositivo vSRX.

El uso del archivo vault_pass es una tarea opcional, que crea y protege un archivo que contiene la contraseña en la caja fuerte. Si decide no realizar esta tarea, deberá especificar la contraseña cuando se le solicite al ejecutar los mandatos de Ansible.

  1. Para que no se solicite la contraseña de la caja fuerte, especifique los mandatos siguientes:

    touch ~/.vault_pass
    vi ~/.vault_pass
    
  2. Especifique la contraseña que desea utilizar para la caja fuerte y guarde el archivo.

  3. Cambie los permisos para que solo el usuario de ansible pueda leer o escribir chmod 600 ~/.vault_pass.

  4. Cree el archivo de configuración de Ansible:

    cd /swlib/ansible
    touch ansible.cfg
    vi ansible.cfg
    
  5. A continuación, utilice el texto siguiente del archivo:

    [defaults]
    inventory = /swlib/ansible/hosts
    vault_password_file = ~/.vault_pass
    
  6. Necesitamos colocar la contraseña del servidor Windows® en un archivo cifrado. Ansible lee automáticamente archivos que contienen variables de directorios, denominados group_vars y host_vars, y los asocia con los grupos y hosts por el nombre de archivo. El mandato siguiente crea un archivo cifrado, denominado vbr.yml, que coincide con el grupo de vbr [vbr] en el archivo de inventario.

    mkdir group_vars
    ansible-vault create group_vars/vbr.yml
    
  7. En el editor, escriba la contraseña:

    ansible_password: <password>
    
  8. Salga pulsando Esc y :wq.

  9. Se pueden utilizar los siguientes mandatos para modificar el archivo cuando sea necesario:

    • ansible-vault edit group_vars/vbr.yml: el mandato edita el archivo.
    • ansible-vault decrypt group_vars/vbr.yml: el mandato descifra el archivo para que se pueda ver o modificar utilizando otro editor, por ejemplo, nano.
    • ansible-vault encrypt group_vars/vbr.yml: el mandato cifra el archivo después de que se visualice o se cambie.
  10. El mandato siguiente crea un archivo cifrado denominado vault: ansible-vault create vault.

  11. En el editor, especifique el mandato siguiente, donde <lhbr_password> y <sa_ansible_password> son las contraseñas definidas en la etapa de planificación.

vault_lhbr_password: <lhbr_password>
vault_sa_ansible_password: <sa_ansible_password>
  1. Salga pulsando Esc y :wq.

Prueba de conexiones

Utilice los mandatos siguientes para probar las conexiones:

ansible lhbr -m ping
ansible vbr -m win_ping

Si la salida es correcta, muestra SUCCESS para cada mandato.

Instalación de las colecciones NSX-T de Ansible

Este paso es opcional y solo es necesario si se utiliza Ansible para configurar recintos de pruebas.

  1. Conéctese al nodo de control de Ansible como el usuario de ansible.

  2. Instale python: sudo pip3 install --upgrade pyvmomi pyvim requests.

  3. Ejecute los mandatos siguientes para completar las tareas siguientes:

    • Cree una carpeta para la descarga.
    • Clone el repositorio Git.
    • Cree la colección de Ansible.
    • Instale la colección creada localmente.
    cd /swlib
    mkdir downloads
    cd downloads
    git clone https://github.com/vmware/ansible-for-nsxt.git
    cd ansible-for-nsxt
    ansible-galaxy collection build
    ansible-galaxy collection install vmware-ansible_for_nsxt-1.0.0.tar.gz