In DevOps Última actualizaciónated:
Comparte en:
Cloudways ofrece alojamiento en la nube administrado para empresas de cualquier tamaño para alojar un sitio web o aplicaciones web complejas.

Introducción a Ansible en Ubuntu para un mejor aprovisionamiento del entorno y gestión de la configuración.

La gestión de la configuración es una etapa crucial en DevOps ciclo vital. Ayuda en la automatización y orquestación de la infraestructura de TI.

Hay varias herramientas para la gestión de la configuración, por ejemplo, Puppet, Ansible, Chef y SaltStack. Y por supuesto, Ansible es una de las herramientas más populares en DevOps. Puede administrar miles de servidores y su infraestructura de TI completa con facilidad.

Cubriremos lo siguiente en este artículo.

  • Instalación Ansible
  • Intercambio de claves SSH
  • Configuración del cliente Ansible
  • Prueba de Ansible

Instalación Ansible

Para hacerlo simple, intentemos usar Ansible en dos servidores. Uno será ansible-server y otro ansible-client con la siguiente IP.

  • servidor ansible - 10.0.0.1
  • ansible-cliente - 10.0.0.25

La instalación es sencilla ... lo siguiente debe realizarse en todos los servidores en los que desee utilizar Ansible. En este caso, por encima de ambos servidores.

  • Ejecute el siguiente comando para instalar el software necesario requerido para instalar ansible.
root@ansible-server:~# apt install software-properties-common
  • Instale el repositorio con el paquete ansible.
root@ansible-server:~# apt-add-repository --yes --update ppa:ansible/ansible
  • Actualizaciónate la herramienta de empaquetado avanzada (apt)
root@ansible-server:~# apt update
  • y aletaally – ejecute el siguiente comando para instalar
root@ansible-server:~# apt install ansible

La instalación del paquete necesario tardará unos segundos.

¿Cómo se asegura de que esté instalado y de su versión?

Bueno, es facil. Puedes usar --version sintaxis con ansible para averiguarlo como se muestra a continuación.

root@ansible-server:~# ansible --version
ansible 2.8.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.15+ (default, Nov 27 2018, 23:36:35) [GCC 7.3.0]
root@ansible-server:~#

Como puede ver, Ansible 2.8.1 está instalado y proporciona la información necesaria, como la ubicación del archivo de configuración, el módulo de Python.

A continuación, necesitamos hacer un intercambio de claves SSH para que el servicio y un cliente puedan hablar entre sí.

Intercambio de claves SSH

Ansible se conecta a su cliente a través de SSH (Secure shell).

Primero generaremosate una clave pública en el servidor ansible, que debe copiarse en el cliente ansible.

Asegúrese de haber iniciado sesión como usuario root.

  • eneroate la clave usando ssh-keygen comando como se muestra a continuación
root@ansible-server:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:cDapZBESo+8XcbXupbtILkFrklUSpwa70Y1c7yH5K1A root@ansible-server
The key's randomart image is:
+---[RSA 2048]----+
|    =.+oo .      |
|   . B.B.= .     |
|  . o @oE +      |
|   . *oO * .     |
|    o++.S + .    |
|   .o +o . +     |
|    .o..o +      |
|     ..o o .     |
|       .o o.     |
+----[SHA256]-----+
root@ansible-server:~#

Como habrás notado, tiene gener.ateda clave pública en el .ssh carpeta. La ruta completa es /root/.ssh/id_rsa.pub

Nota: asegurar la privacidadate y los archivos de clave pública no son legibles en todo el mundo. Puede enumerar los archivos para verificarlos.

  • Vaya a la carpeta .ssh
cd /root/.ssh
  • Lista de archivos
root@ubuntu:~# ls -l 
-rw------- 1 root root 1679 Jun 19 00:37 id_rsa 
-rw------- 1 root root 404 Jun 19 00:37 id_rsa.pub

Si nota que el permiso es incorrecto, puede cambiarlo usando chmod comando

por ejemplo:

chmod 400 id_rsa
chmod 400 id_rsa.pub

Copiemos la clave pública al host Ansible cuya dirección IP es 192.168.56.101

root@ansible-server:~/.ssh# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.25
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '10.0.0.25 (10.0.0.25)' can't be established.
ECDSA key fingerprint is SHA256:eXduPrfV0mhxUcpsZWg+0oXDim7bHb90caA/Rt79cIs.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.0.0.25's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@10.0.0.25'"
and check to make sure that only the key(s) you wanted were added.

root@ansible-server:~/.ssh#

Puede ver en el resultado anterior que se ha agregado 1 clave correctamente. este indicaates que se intercambia la clave SSH.

A continuación, configuraremos un cliente Ansible.

Configuración del cliente Ansible

Supongo que ya ha seguido los pasos de instalación de Ansible en el servidor cliente como se explica en la p.revpasos iosos.

La configuración del cliente o del host no es más que hacer que el servidor Ansible conozca a los clientes. Y para hacerlo:

  • Inicie sesión en el servidor Ansible
  • Vaya a / etc / ansible
  • Agregue lo siguiente en archivo de hosts usando tu editor favorito
[Client] 
node1 ansible_ssh_host=10.0.0.25
  • Guarde el archivo de hosts

Prueba ansible

Si ha seguido todos los pasos correctamente, obtendrá un ÉXITO mensaje cuando ejecuta el siguiente comando en el servidor ansible.

root@ansible-server:~/.ssh# ansible -m ping Client
node1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    }, 
    "changed": false, 
    "ping": "pong"
}
root@ansible-server:~/.ssh#

Thea anterior hace ping al cliente para probar la conectividad y confirmar si es buena o no.

Conclusión

Espero que esto le dé una idea para comenzar con la instalación y el juego. Estén atentos para más tutoriales de Ansible o también consulte este Curso de Udemy Mastering Ansible.

Comparte en:
  • Avi
    Autor
    Avi es un entusiasta de la tecnología con experiencia en tecnologías de tendencia como DevOps, Cloud Computing, Big Data y muchas más. el es pasionate sobre aprender tecnologías de vanguardia y compartir su conocimiento con otros a través de...

Gracias a nuestros patrocinadores

Más lecturas excelentes sobre DevOps

Técnicas avanzadas de formato en Google Docs
Más allá de lo básico: técnicas avanzadas de formato en Google Docs

Google Docs hace un gran trabajo manteniendo las cosas simples. La configuración de página predeterminada funciona muy bien para la mayoría de los documentos y las opciones de formato comunes se encuentran directamente en la barra de herramientas. Sin embargo, cuando necesites realizar algún formateo avanzado, necesitarás profundizar un poco más.

Impulse su negocio

Algunas de las herramientas y servicios para ayudar a su negocio grow.
  • La herramienta de conversión de texto a voz que utiliza IA para generarate Voces realistas parecidas a las humanas.

    Intente Murf AI
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.

    Prueba Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno para ayudarlo a administrar proyectos, tareas, trabajo, ventas, CRM, operaciones, workflows, y más.

    Intente Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.

    Intente Intruder