Hoy en día en el campo de TI, la automatización es el tema candente y cada organización está comenzando a adoptar las herramientas de automatización como Puppet , Ansible , cocinero , CFEngine , capataz y Katelo . De estas herramientas, Ansible es la primera opción de casi todas las organizaciones de TI para administrar sistemas similares a UNIX y Linux. En este artículo, demostraremos cómo instalar y usar la herramienta ansible en Debian 10 Server.
Detalles de mi laboratorio:
- Debian 10:servidor Ansible/nodo controlador:192.168.1.14
- CentOS 7:host de Ansible (servidor web):192.168.1.15
- CentOS 7:host de Ansible (servidor de base de datos):192.169.1.17
También demostraremos cómo se pueden administrar los servidores Linux con Ansible Server
Instalación de Ansible en el servidor Debian 10
Supongo que en su sistema Debian 10 tiene un usuario que tiene privilegios de root o derechos de sudo. En mi configuración, tengo un usuario local llamado "pkumar" con derechos de sudo.
Los paquetes de Ansible 2.7 están disponibles en los repositorios predeterminados de Debian 10, ejecute los siguientes comandos desde la línea de comandos para instalar Ansible,
$ sudo apt update $ sudo apt install ansible -y
Ejecute el siguiente comando para verificar la versión ansible,
[email protected]:~$ sudo ansible --version
Para instalar la última versión de Ansible 2.8, primero debemos configurar los repositorios de Ansible.
Ejecute los siguientes comandos uno tras otro,
$ echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" \ | sudo tee -a /etc/apt/sources.list $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 $ sudo apt update $ sudo apt install ansible -y $ sudo ansible --version
Administrar servidores Linux usando Ansible
Consulte los siguientes pasos para administrar servidores similares a Linux utilizando el nodo del controlador Ansible,
Paso:1) Intercambiar las claves SSH entre Ansible Server y sus hosts
Genere las claves ssh desde el servidor ansible y comparta las claves entre los hosts ansible
$ sudo -i # ssh-keygen # ssh-copy-id [email protected] # ssh-copy-id [email protected]
Paso:2) Crear archivo de inventario de Ansible Hosts
Cuando se instala ansible, se crea automáticamente el archivo /etc/hosts, en este archivo podemos mencionar los hosts de ansible o sus clientes. También podemos crear nuestro propio archivo de inventario de host ansible en nuestro directorio de inicio,
Obtenga más información sobre:Cómo administrar el inventario de host dinámico y estático de Ansible
Ejecute el siguiente comando para crear un inventario de hosts ansible en nuestro directorio de inicio
[email protected]:~$ vi $HOME/hosts [Web] 192.168.1.15 [DB] 192.168.1.17
Guardar y salir del archivo
Paso:3) Probar y usar módulos ansible predeterminados
Ansible viene con muchos módulos predeterminados que se pueden usar en el comando ansible, los ejemplos se muestran a continuación,
Sintaxis:
# ansible -i
donde:
- -i ~/hosts :contiene una lista de hosts ansible
- -m: después de -m, especifique el módulo ansible como ping &shell
: Hosts Ansible donde queremos ejecutar los módulos ansible
Verifique la conectividad de ping usando el módulo de ping ansible
$ sudo ansible -i ~/hosts -m ping all $ sudo ansible -i ~/hosts -m ping Web $ sudo ansible -i ~/hosts -m ping DB
La salida de los comandos anteriores sería algo como lo siguiente:
Ejecutar comandos de shell en hosts ansible usando el módulo de shell
Sintaxis: # ansible -i
Ejemplo:
[email protected]:~$ sudo ansible -i ~/hosts -m shell -a "uptime" all 192.168.1.17 | CHANGED | rc=0 >> 01:48:34 up 1:07, 3 users, load average: 0.00, 0.01, 0.05 192.168.1.15 | CHANGED | rc=0 >> 01:48:39 up 1:07, 3 users, load average: 0.00, 0.01, 0.04 [email protected]:~$ [email protected]:~$ sudo ansible -i ~/hosts -m shell -a "uptime ; \ df -Th / ; uname -r" Web 192.168.1.15 | CHANGED | rc=0 >> 01:52:03 up 1:11, 3 users, load average: 0.12, 0.07, 0.06 Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 13G 1017M 12G 8% / 3.10.0-327.el7.x86_64 [email protected]:~$
La salida de los comandos anteriores confirma que hemos configurado correctamente el nodo del controlador ansible
Vamos a crear un libro de jugadas de instalación de NGINX de muestra, el siguiente libro de jugadas instalará nginx en todos los servidores que forman parte del grupo de host web, pero en mi caso tengo una máquina centos 7 en este grupo de host.
[email protected]:~$ vi nginx.yaml --- - hosts: Web tasks: - name: Install latest version of nginx on CentOS 7 Server yum: name=nginx state=latest - name: start nginx service: name: nginx state: started
Ahora ejecute el libro de jugadas usando el siguiente comando,
[email protected]:~$ sudo ansible-playbook -i ~/hosts nginx.yaml
la salida del comando anterior sería algo así como a continuación,
Esto confirma que el libro de jugadas de Ansible se ejecutó con éxito, eso es todo del artículo, comparta sus comentarios y opiniones.