GNU/Linux >> Tutoriales Linux >  >> Linux

Guía de Ansible:el comando ad-hoc

El comando Ad-Hoc es el comando ansible de una sola línea que realiza una tarea en el host de destino. Le permite ejecutar una tarea simple de una línea contra uno o un grupo de hosts definidos en la configuración del archivo de inventario. Un comando Ad-Hoc solo tendrá dos parámetros, el grupo de un host que desea realizar la tarea y el módulo Ansible para ejecutar.

El comando Ad-Hoc le brinda más ventajas para explorar ansible en sí. Puede realizar tareas sin crear primero un libro de jugadas, como reiniciar servidores, administrar servicios, editar la configuración de línea, copiar un archivo en un solo host, instalar solo un paquete.

En este tutorial, mostraré el uso básico del comando Ansible Ad-Hoc. Usaré el comando Ad-Hoc para realizar tareas simples que pueden ser necesarias para su día a día como administrador del sistema.

Requisitos

Para esta guía, usaremos dos servidores Ubuntu 18.04 LTS, Bionic Beaver. El servidor ansible obtendrá el nombre de host 'ansible-node' con la dirección IP 10.5.5.20 y el servidor Provision con el nombre de host 'provision' y la dirección IP 10.5.5.21.

¿Qué haremos?

  1. Comando ad-hoc básico
  2. Transferencia de archivos
  3. Actualizar y Actualizar
  4. Administrar paquete
  5. Administrar servicios
  6. Sistema de control

Uso básico de comandos ad-hoc

Primero, aprenderemos el uso básico de Ansible Ad-Hoc para administrar servidores. Aprenderemos el comando básico de Ansible Ad-Hoc, usando el comando Ad-Hoc con autenticación de contraseña ssh, la escalada de privilegios y usando el comando Ad-Hoc contra un grupo de hosts.

1. Comando Básico

El comando básico de ansible ad-hoc contra 'todos' los hosts en el archivo de inventario y usando el módulo 'ping'.

ansible all -m ping
  • El primer parámetro 'todos' para todos los hosts en el archivo de inventario.
  • El segundo parámetro dentro de la opción '-m' para el módulo, ejecutando el módulo ping.

Ahora obtendrá el resultado como se muestra a continuación.

Un comando Ad-Hoc contra el servidor de aprovisionamiento ha sido 'ÉXITO' sin ningún cambio realizado en el servidor y obtenemos el resultado del módulo 'ping' del servidor de aprovisionamiento 'pong'.

2. Filtrar grupo de hosts y host único

Ahora puede usar el comando Ad-Hoc contra un grupo de hosts que ya están definidos en el archivo de inventario. Puede usar su archivo de inventario personalizado o usar el archivo de inventario predeterminado '/etc/ansible/hosts'.

A continuación, se muestra un ejemplo para ejecutar el comando ad-hoc contra el grupo de hosts llamado 'hakase-testing' que ya están definidos en el archivo de configuración de inventario predeterminado.

ansible hakase-testing -m setup -a "filter=ansible_distribution*"

Si está utilizando el archivo de inventario personalizado, agregue la opción '-i' después del nombre del archivo de inventario.

ansible hakase-testing -i hosts -m setup -a "filter=ansible_distribution*"

Obtendrás el mismo resultado.

Ahora, si desea ejecutar contra un solo host en la configuración de inventario, puede usar el nombre del host como se muestra a continuación.

ansible provision -m setup -a "filter=ansible_distribution*"

Y el comando ad-hoc se ejecutará solo en el servidor de 'provisión'.

3. Uso de la contraseña SSH

Ahora ejecutaremos un comando Ad-Hoc utilizando la autenticación de contraseña ssh solicitada. Y para hacer esto, necesita instalar el paquete adicional llamado 'sshpass' en el 'ansible-node'.

Instale el paquete sshpass usando el comando apt a continuación.

sudo apt install sshpass -y

Ahora ejecute el comando ad-hoc y agregue la opción '--ask-pass' al final.

ansible hakase-testing -m ping --ask-pass

Y se le pedirá la 'Contraseña SSH' para el servidor.

Escriba su contraseña ssh y el comando ad-hoc se ejecutará contra el servidor.

4. Escalada de privilegios

Ansible proporciona características para la escalada de privilegios contra servidores. Si desea ejecutar el comando ad-hoc como usuario no root, puede usar la opción '--become' para obtener los privilegios de root y la opción '-K' para solicitar la contraseña.

Ejecute el comando ad-hoc 'fdisk -l' como usuario 'hakase' con la opción de privilegio '--become' y '-K' para solicitar la 'Contraseña SUDO'.

ansible hakase-testing -m shell -a 'fdisk -l' -u hakase --become -K

A continuación se muestra el resultado.

Transferencia de archivos

Ahora vamos a usar el comando Ad-Hoc para Transferencia de archivos hacia y desde el servidor. Podemos transferir un archivo al servidor de aprovisionamiento con el módulo 'copiar' y descargar el archivo del servidor usando el módulo 'buscar'.

1. Subir archivo al servidor

Para este ejemplo, ejecutaremos el comando ad-hoc y usaremos el módulo 'copiar' para cargar la configuración de sudoers para el usuario hakase en el directorio '/etc/sudoers.d' en el grupo 'hakase-testing'.

Ejecute el comando ad-hoc a continuación.

ansible hakase-testing -m copy -a 'src=/home/hakase/hakase-sudo.conf dest=/etc/sudoers.d/hakase owner=root mode=0644' -u hakase --become -K

Ahora se le pedirá la 'Contraseña SUDO' para el usuario hakase. Escriba la contraseña y obtendrá el resultado que se muestra a continuación.

El archivo se cargó en el directorio de destino 'dest' y obtienes el resultado 'modificado' como 'verdadero'.

2. Descargar archivo desde el host

Ahora vamos a utilizar un comando ad-hoc con el módulo 'fetch' para descargar el archivo desde el servidor de aprovisionamiento al servidor local 'ansible-node'.

Descargue el archivo de configuración '/etc/sudoers.d/hakase' del servidor 'provision' al directorio local llamado 'backup'.

ansible provision -m fetch -a 'src=/etc/sudoers.d/hakase dest=/home/hakase/backup/hakase-sudoers flat=yes'

Y obtendrá el archivo llamado 'hakase-sudoers' en el directorio 'backup'.

Paso 3:actualización del repositorio y paquetes de actualización

Para actualizar y actualizar el repositorio de los servidores de Ubuntu, podemos usar el comando ad-hoc con el módulo apt.

Actualice el repositorio en el grupo hakase-testing.

ansible hakase-testing -m apt -a 'update_cache=yes' --become

Ahora actualice los repositorios y actualice todos los paquetes a la última versión usando la opción 'upgrade=dist'.

ansible hakase-testing -m apt -a 'upgrade=dist update_cache=yes' --become

Espere a que se actualicen todos los paquetes.

Gestionar paquetes

Esto es muy útil cuando intenta crear y depurar su propio libro de jugadas. Porque a veces es necesario instalar un paquete adicional en el sistema. Por lo tanto, este comando ad-hoc le brindará una manera fácil de instalar ese paquete sin iniciar sesión en cada servidor.

1. Paquete de instalación

Instale un solo paquete usando el comando ad-hoc con el módulo apt como se muestra a continuación.

ansible hakase-testing -m apt -a 'name=nginx state=latest' --become

2. Eliminar paquete

Quite el paquete y purgue toda la configuración relacionada con el paquete.

ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes' --become

3. Eliminación automática

El siguiente ejemplo es eliminar el paquete nginx y purgar toda la configuración relacionada y luego eliminar todos los paquetes no utilizados en el sistema.

ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes autoremove=yes' --become

Administrar servicios

En este paso, usaremos el módulo de servicio en el comando ad-hoc para administrar el servicio del sistema en el servidor de aprovisionamiento.

1. Servicios de inicio

Inicie el servicio nginx y agréguelo al tiempo de arranque.

ansible hakase-testing -m service -a 'name=nginx state=started enabled=yes' --become

Obtendrá el resultado 'cambiado' y 'habilitado' como 'verdadero'.

2. Reiniciar servicio

Si desea reiniciar el servicio, puede utilizar el siguiente comando.

ansible hakase-testing -m service -a 'name=nginx state=restarted' --become

El servicio nginx se ha reiniciado.

3. Detener un servicio

Para detener el servicio, cambie el valor de 'estado' a 'detenido'.

ansible hakase-testing -m service -a 'name=nginx state=stopped' --become

El servicio nginx en los servidores 'hakase-testing' se ha detenido.

Revisando el Sistema

Ahora vamos a usar el módulo 'shell' dentro del comando ad-hoc. Y haremos un monitoreo simple del sistema usando un comando simple de Linux a través de Ansible ad-hoc.

En primer lugar, instale el paquete 'sysstat' en todos los servidores mediante el siguiente comando ad-hoc.

ansible hakase-testing -m apt -a 'name=sysstat state=latest' --become

Espere a que se instale el paquete 'sysstat'.

Una vez que esté completo, estará listo para verificar todos los servidores.

1. Disco disponible

Verifique el disco disponible en la partición raíz usando el comando fdisk.

ansible hakase-testing -m shell -a 'df -h /dev/sda2' --become

Cambie '/dev/sda2' con su propia ruta.

2. Uso de memoria RAM

Ahora verifique el uso de la memoria RAM en todos los servidores usando el comando 'free -m'.

ansible hakase-testing -m shell -a 'free -m' --become

Y se le mostrará el resultado de la siguiente manera.

3. Uso de CPU

Comprobación del uso de la CPU de todos los servidores mediante el comando mpstat.

ansible hakase-testing -m shell -a 'mpstat -P ALL' --become

El comando mpstat es parte del paquete 'sysstat'.

4. Puertos abiertos

Verificando los puertos abiertos en todos los sistemas usando netstat a través del comando ad-hoc.

ansible hakase-testing -m shell -a 'netstat -plntu' --become

5. Tiempo de actividad

Ahora comprueba el tiempo de actividad de cada servidor.

ansible hakase-testing -m shell -a 'uptime' --become

Linux
  1. Una guía de la terminal de Linux para principiantes

  2. Introducción al comando de alternativas en Linux

  3. Una introducción al comando diff

  4. ¿El comando "eval" en Bash?

  5. El comando de localización en Linux

Domina la línea de comandos de Linux

Una guía para principiantes para navegar por el sistema de archivos de Linux

El comando elegir en Linux

El comando del temporizador en Linux

Una guía práctica para el comando chroot en Linux

El comando apt:una guía práctica de uso