Ejecución de scripts en hosts remotos
Uno de los casos de uso más comunes de Ansible es la ejecución de scripts en hosts remotos. Esto puede ser útil para una variedad de tareas, como la ejecución de scripts de mantenimiento del sistema, el despliegue de aplicaciones o la realización de soluciones ad hoc de resolución de problemas.
Para ejecutar un script en un host remoto utilizando Ansible, puede utilizar el módulo script. Este módulo le permite copiar un script local al host remoto y ejecutarlo.
A continuación, se muestra un ejemplo de cómo utilizar el módulo script:
- hosts: webservers
tasks:
- name: Run a script on remote hosts
script: /path/to/script.sh
En este ejemplo, el archivo script.sh se encuentra en el nodo de control de Ansible y se copiará y ejecutará en todos los hosts del grupo "webservers".
También puede pasar argumentos al script utilizando el parámetro args:
- hosts: webservers
tasks:
- name: Run a script with arguments
script: /path/to/script.sh
args:
- arg1
- arg2
En este caso, el script se ejecutará con los argumentos arg1 y arg2.
Si necesita capturar la salida del script, puede utilizar la palabra clave register para almacenar la salida en una variable:
- hosts: webservers
tasks:
- name: Run a script and capture output
script: /path/to/script.sh
register: script_output
- name: Print script output
debug:
var: script_output.stdout
En este ejemplo, la salida del script se almacena en la variable script_output.stdout, que luego se puede imprimir o utilizar en tareas posteriores.
También puede utilizar la palabra clave become para ejecutar el script con privilegios elevados (por ejemplo, como el usuario root):
- hosts: webservers
tasks:
- name: Run a script with elevated privileges
script: /path/to/script.sh
become: true
Esto ejecutará el script con sudo en los hosts remotos.
Al utilizar el módulo script, puede ejecutar fácilmente scripts en hosts remotos, lo que lo convierte en una herramienta poderosa para automatizar una amplia variedad de tareas con LabEx.