Como usar tags em Ansible

Como usar tags em Ansible

As peças, papéis e tarefas são a estrutura Ansible e essa estrutura Ansible contém o atributo importante que é chamado de tags em Ansible. Sempre que lançamos um manual em Ansible, você pode empregar os comandos -Tags e -Skip Tags para que possamos executar apenas uma série de tarefas, peças e papéis específicos. Se tivermos um manual que contém tantas tarefas, mas não queremos executar todas as tarefas do manual, em vez de executar todo o manual, apenas executaremos algumas tarefas usando o comando de tag no Ansible Playbook.

Vamos discutir tags neste tópico, que servem como uma das facetas mais importantes do Ansible. Tentaremos explicar o que são tags e como as tags operam em Ansible, porque esse é um recurso desconcertante da plataforma Ansible.

Por exemplo, um manual pode conter três responsabilidades: instalando o módulo, configurando -o e verificando o status do módulo implantado, como se o serviço está em execução e acessível. Como simplesmente precisamos ver o estado dos módulos em algumas máquinas remotas, utilizamos tags Ansible nessa situação, em vez de executar todas as tarefas no manual. Ele nos permite executar uma determinada operação exclusivamente, permitindo reduzir o tempo de execução, mantendo todas as atividades relacionadas em um único manual.

Pré -requisitos de utilizar as tags no Ansible Playbook

Para colocar os exemplos práticos no software Ansible, devemos atender aos seguintes requisitos.

Um servidor de controlador Ansible deve ser necessário para que faça alterações. Para utilizar o parâmetro de tags no software Ansible, precisamos que os hosts locais se comuniquem com eles. Nesse caso, estamos usando o host local durante toda a execução como servidor remoto de destino. Criaremos playbooks, executaremos comandos de tag Ansible e monitoraremos os resultados em hosts remotos do dispositivo Ansible Controller.

Nosso objetivo é empregar diferentes cenários para examinar algumas das tags Ansible, para que o aluno possa entender facilmente o conceito de tags em um manual Ansible.

Exemplo 01: Acessando uma única tarefa no manual Ansible

Vamos implementar em Ansible fornecendo várias tarefas no manual e depois acessaremos apenas uma única tarefa, utilizando as tags nele. Para fazer isso, criaremos primeiro o manual escrevendo o seguinte comando:

[root@master Ansible]# Nano Ansible_tags.yml

Depois de criar e lançar os Ansible_tags.Playbook YML. Agora vamos começar a escrever os comandos no manual. Primeiro, passaremos os anfitriões fornecidos no parâmetro “hosts 'que usaremos“ localhost ”. Em seguida, escreveremos o valor "falso" no parâmetro "Gather_facts" para que não possamos obter informações extras sobre o host local quando executamos o manual.

Depois disso, começaremos a listar as atividades no parâmetro "tarefas" um por um que queremos executar. Determinaremos se o documento está lá na máquina de localhost no primeiro processo. Se estiver disponível, o armazenamos no parâmetro "registrar" e, em seguida, daremos o nome exclusivo à tag para que, quando executarmos o manual, seja fácil para acessar a tag. Na segunda tarefa, faremos o mesmo que fizemos na primeira tarefa, mas a tag deve ser única e depois usaremos a opção de depuração para mostrar a tarefa junto com a mensagem relacionada.

- anfitriões:
- LocalHost
Gather_Facts: False
tarefas:
- Nome: Verifique o arquivo existência x '
Stat: Path =./hospedar.yml
Registro: fileExists
Tags: check_file
- depurar:
msg: "'arquivo existe' se fileExists.Estado.existe 'arquivo não encontrado' "
Tags: check_file
- Nome: Verifique se host.YML é acessível pelo usuário atual
shell: stat -c "%a" ./hospedar.yml
Registro: AccessPath
Tags: check_access
- depurar:
msg: "'arquivo acessível' if (accessPath.stdout | int) < 660 else 'File is not accessible' "
Tags: check_access

Agora, vamos salvar o manual e depois fechá -lo. Queremos executar os Ansible_tags.Playbook YML, então escreveremos o seguinte comando no terminal Ansible para mostrar a saída para os usuários.

[root@master Ansible]# Ansible-playbook Ansible_tags.yml -tags check_file

Depois de executar o comando acima, obteremos a saída desejada em troca. Como mostrado abaixo, apenas uma tarefa é executada e que é exibida na saída que é "Verifique a existência do arquivo".

Exemplo 02: Ignore a tag específica em Ansible Playbook

Aqui está o segundo exemplo da tag Ansible, onde estamos indo para a tag "Skip". Cabe a você se você deseja ignorar todas as tarefas ou deseja ignorar uma tarefa específica do manual em Ansible. Estamos utilizando a implementação do Exemplo 1 e depois ignoraremos a tarefa simplesmente escrevendo a declaração abaixo no terminal Ansible.

[root@master Ansible]# Ansible-playbook Ansible_tags.YML-SKIP-TAGS CHECK_FILE

A partir do comando acima, simplesmente ignoramos a tarefa de "Existência do arquivo de verificação". Agora, apenas uma única tarefa é exibida na saída que é "acessível ao arquivo" na fonte verde.

Exemplo 03: sempre continue executando a tarefa no manual Ansible

Vamos implementar o terceiro exemplo baseado na tag Ansible. Neste exemplo, usaremos a tag "sempre", o que significa que uma tag específica sempre será executada no manual Ansible. Para lançar o manual, use o seguinte comando:

[root@master Ansible]# Nano Ansible_tags.yml

No manual, criamos várias tarefas a serem executadas, mas passamos a tag "sempre" na última tarefa que é "Excluir a senha do inventário". A seguir estão o comando implementado no manual:

- Hosts: todos
Gather_Facts: False
tarefas:
- Nome: Verifique a existência do arquivo
Stat: Path =./hospedar.yml
Registro: fileExists
delegate_to: localhost
Tags: check_file
- depurar:
msg: "'arquivo existe' se fileExists.Estado.existe 'arquivo não encontrado' "
Tags: check_file
- Nome: Verifique se host.YML é acessível pelo usuário atual
shell: stat -c "%a" ./hospedar.yml
Registro: AccessPath
delegate_to: localhost
Tags: check_access
- depurar:
msg: "'arquivo acessível' if (accessPath.stdout | int) < 660 else 'File is not accessible' "
Tags: check_access
- Nome: Excluir senha do inventário
LineInfile:
caminho: "Inventory_file"
regexp: '\ b item.*\ b '
estado: ausente
delegate_to: localhost
Torne -se: Falso
Tags: sempre
with_items:
- Ansible_password

Depois disso, criaremos o arquivo de inventário para construir a conexão entre o controlador e o host remoto de destino. Abaixo está o comando:

[root@master Ansible]# Nano Host.yml

Aqui está o arquivo de inventário que contém as informações relacionadas ao "Linux_host" em Ansible.

Todos:
anfitriões:
Linux_host:
Ansible_host: 192.168.3.229
Ansible_user: Ansible
Ansible_password: ******
Ansible_connection: ssh
Ansible_port: 22

Para obter a saída desejada, executaremos o seguinte comando no terminal Ansible:

[root@master Ansible]# Ansible-playbook Ansible_tags.yml -tags check_file -i host.yml

Conclusão

Tags em Ansible foram explicadas neste artigo. Agora entendemos a função das tags e os lugares em Ansible, onde os aplicaremos. Para ajudar o aluno a entender a compreensão do conceito de tags Ansible, desenvolvemos uma variedade de exemplos.