Executando Scripts em Hosts Remotos
Um dos casos de uso mais comuns do Ansible é executar scripts em hosts remotos. Isso pode ser útil para uma variedade de tarefas, como executar scripts de manutenção do sistema, implantar aplicativos ou realizar solução de problemas ad-hoc.
Para executar um script em um host remoto usando o Ansible, você pode usar o módulo script. Este módulo permite copiar um script local para o host remoto e executá-lo.
Aqui está um exemplo de como usar o módulo script:
- hosts: webservers
tasks:
- name: Executar um script em hosts remotos
script: /path/to/script.sh
Neste exemplo, o arquivo script.sh está localizado no nó de controle do Ansible e será copiado e executado em todos os hosts no grupo "webservers".
Você também pode passar argumentos para o script usando o parâmetro args:
- hosts: webservers
tasks:
- name: Executar um script com argumentos
script: /path/to/script.sh
args:
- arg1
- arg2
Neste caso, o script será executado com os argumentos arg1 e arg2.
Se você precisar capturar a saída do script, pode usar a palavra-chave register para armazenar a saída em uma variável:
- hosts: webservers
tasks:
- name: Executar um script e capturar a saída
script: /path/to/script.sh
register: script_output
- name: Imprimir a saída do script
debug:
var: script_output.stdout
Neste exemplo, a saída do script é armazenada na variável script_output.stdout, que pode então ser impressa ou usada em tarefas subsequentes.
Você também pode usar a palavra-chave become para executar o script com privilégios elevados (por exemplo, como o usuário root):
- hosts: webservers
tasks:
- name: Executar um script com privilégios elevados
script: /path/to/script.sh
become: true
Isso executará o script com sudo nos hosts remotos.
Usando o módulo script, você pode facilmente executar scripts em hosts remotos, tornando-o uma ferramenta poderosa para automatizar uma ampla gama de tarefas com o LabEx.