Este guia discutirá como você pode usar o módulo Ansible Run_once para executar um conjunto de operações.
Uso básico
O parâmetro Ansible run_once é aplicado a uma tarefa específica que você deseja ser executada no primeiro host.
O manual de exemplo a seguir mostra como você pode definir o parâmetro run_once em um manual.
---
- Hosts: todos
#…
tarefas:
- Nome: Execute este comando uma vez
shell: comando
run_once: true
O manual de exemplo acima mostra a sintaxe geral para implementar uma tarefa run_once.
Vejamos alguns exemplos e veja vários casos de uso do parâmetro run_once.
Exemplo 1
Implementaremos um manual simples que baixe um arquivo zip de um URL em nosso primeiro exemplo. Como não faz sentido reduzir repetidamente o arquivo em cada host, podemos usar o parâmetro run_once.
Pegue o manual de exemplo mostrado abaixo:
---
- Hosts: todos
Gather_Facts: Sim
tarefas:
- Nome: Download Arquivo apenas uma vez
run_once: true
get_url:
URL: https: // file-examples-com.Github.io/uploads/2017/02/zip_10mb.fecho eclair
dest: ~/zip_10mb.fecho eclair
- Nome: UNACRIVE
UNARCIVO:
SRC: ~/ZIP_10MB.fecho eclair
dest: ~/zip_10mb
O manual de exemplo acima vai baixar o arquivo no primeiro lote e depois desarquivo nos hosts remotos.
Exemplo 2
O próximo manual de amostra cria um arquivo de um repositório Git.
---
- Hosts: todos
Gather_Facts: Sim
tarefas:
- Nome: Crie Arquivo a partir de repo
git:
repo: https: // github.com/amostras/repo.git
dest:/home/user/repo
Arquivo:/Home/Usuário/Repo.fecho eclair
run_once: true
Exemplo 3
Também podemos usar o parâmetro run_once para criar um backup e depois sincronizar o banco de dados com os hosts remotos usando o protocolo RSYNC. Considere o manual de exemplo abaixo:
---
- Hosts: todos
Gather_Facts: Sim
tornar verdade
tarefas:
- Nome: Crie um arquivo de backup
arquivo:
caminho:
/var/log/
/Custom/All
dest: /backup /system0-backup.BZ2
Formato: BZ2
Remova: Não
run_once: true
- Nome: Backup de sincronização com rsync
sincronizar:
src: /backup /system0-backup.BZ2
dest: rsync: // Inventory_hostname/backups
O manual criará um arquivo de backup na localhost e sincroniza os arquivos a todos os hosts remotos.
Exemplo 4
O manual de exemplo usa o parâmetro run_once para enviar e -mail para todos os hosts.
---
- Hosts: todos
Gather_Facts: Sim
tornar verdade
tarefas:
- Nome: Crie um arquivo de backup
LOCAL_ACTION:
Módulo: Mail
Assunto: "Correio da Ansible."
para: ubuntu@localhost
Corpo: "Atualizado para a nova versão Redis."
run_once: true
O manual envia e -mail para um usuário específico.
Conclusão
Este guia mostra como usar o parâmetro run_once no Ansible para executar uma tarefa em um único host e aplicar os resultados a outros hosts.