Inicio > Administración, General > Introducción a Ansible IV – Ejecutar comandos ad-hoc en Ansible

Introducción a Ansible IV – Ejecutar comandos ad-hoc en Ansible

Es posible ejecutar comandos independientes en Ansible, esto nos puede servir si no queremos crear un Playbook, que serían los scripts de ejecución masivos de Ansible.

– Ejecutar comandos de shell

Para ejecutar un comando independiente, lo haríamos de la siguiente manera:

# ansible all -a "/bin/echo hello"
192.168.49.42 | success | rc=0 >>
hello

Por defecto, Ansible está configurado para lanzar 5 procesos/hilos en paralelo, si queremos que lance más, podemos forzarlo en la ejecución.

# ansible all -a "/bin/echo hello" -f 10

Por defecto, Ansible ejecuta el módulo “shell”, que es el que ejecuta el comando, pero también podemos indicar que módulo queremos ejecutar.

# ansible all -m shell -a "/bin/echo hello" -f 10

– Transferencia de ficheros

Otra posibilidad, es realizar una copia masiva de ficheros a través de scp, para eso, utilizaremos el módulo copy

# ansible all -m copy -a "src=/etc/hosts dest=/tmp/hosts2"

Una vez hemos copiado el fichero, podemos cambiar los permisios y privilegios del mismo.

# ansible webservers -m file -a "dest=/tmp/hosts2 mode=600"
# ansible webservers -m file -a "dest=/tmp/hosts2 mode=600 owner=user group=user"

El cambio de permisos y privilegios también se puede realizar directamente desde el copiado de los ficheros.

por último, también podemos gestionar el borrado de ficheros y directorios, tener en cuenta que el borrado de directorios es recursivo.

# ansible webservers -m file -a "dest=/tmp/hosts2 state=absent"

– Gestión de paquetes.

Podemos gestionar los paquetes en yum y apt, por ejemplo podemos verificar si un paquete se encuentra instalado, en caso de no estar instalado, realizará la instalación.

# ansible webservers -m apt -a "name=screen state=present"

También podemos verificar que se encuentre en una versión específica.

# ansible webservers -m apt -a "name=screen-4.2.1 state=present"

O que está en la última versión

# ansible webservers -m apt -a "name=screen state=latest"

Por último, también podemos desinstalar un paquete que se encuentre instalado.

# ansible webservers -m apt -a "name=screen state=absent"

– Gestión de usuarios y grupos.

También podemos gestionar los usuarios y grupos de los equipos.

Podemos modificar o crear un usuario con el siguiente comando.

# ansible all -m user -a "name=usuario password=`openssl passwd -1 -salt `date +%N`  "password"`"

Para eliminar un usuario lo haríamos de la siguiente manera.

# ansible all -m user -a "name=usuario state=absent"

En el siguiente enlace se pueden consultar todos los módulos disponibles para Ansible.

http://docs.ansible.com/list_of_all_modules.html

– Gestión de servicios

También podemos gestionar los servicios de un servidor.

Podemos asegurar que un servicio esté encendido, y si no lo está encenderlo.

# ansible webservers -m service -a "name=networking state=started"

También podemos reiniciar los servicis en caso de haber aplicado un nuevo fichero de configuración.

# ansible webservers -m service -a "name=networking state=restarted"

Por último, podemos parar un servicio en caso de no querer que siga iniciado.

# ansible webservers -m service -a "name=httpd state=stopped"
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: