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:
- Instalación de Ansible.
- Adición de colecciones de Ansible.
- Creación de un archivo de inventario de Ansible.
- Utilización del almacenamiento de Ansible para cifrar archivos.
- 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
-
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
-
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 usuariosa-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 mandatoansible 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.
-
Para que no se solicite la contraseña de la caja fuerte, especifique los mandatos siguientes:
touch ~/.vault_pass vi ~/.vault_pass
-
Especifique la contraseña que desea utilizar para la caja fuerte y guarde el archivo.
-
Cambie los permisos para que solo el usuario de ansible pueda leer o escribir
chmod 600 ~/.vault_pass
. -
Cree el archivo de configuración de Ansible:
cd /swlib/ansible touch ansible.cfg vi ansible.cfg
-
A continuación, utilice el texto siguiente del archivo:
[defaults] inventory = /swlib/ansible/hosts vault_password_file = ~/.vault_pass
-
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
-
En el editor, escriba la contraseña:
ansible_password: <password>
-
Salga pulsando
Esc
y:wq
. -
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.
-
El mandato siguiente crea un archivo cifrado denominado
vault
:ansible-vault create vault
. -
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>
- 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.
-
Conéctese al nodo de control de Ansible como el usuario de ansible.
-
Instale python:
sudo pip3 install --upgrade pyvmomi pyvim requests
. -
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