Exercício - Projects & job templates

Leia em outras linguagens:
uk English, japan日本語, brazil Portugues do Brasil, france Française, Español Español.

O Project é uma coleção lógica de Playbooks. Você pode gerenciar seus playbooks colocando-os em um sistema de gerenciamento de código-fonte (SCM) suportado pelo Tower, incluindo Git, Subversion e Mercurial.

Você definitivamente deve manter seus Playbooks sob controle de versão. Neste laboratório, usaremos Playbooks mantidos em um repositório Git.

Configurando o repositório Git

Para esta demonstração, usaremos playbooks armazenados em um repositório Git:

https://github.com/ansible/workshop-examples

Um Playbook para instalar o servidor Apache já foi confirmado no diretório rhel/apache, apache_install.yml:

---
- name: Instalado apache server
  hosts: all

  tasks:
  - name: Ultima versao do apache instalada
    yum:
      name: httpd
      state: latest

  - name: Ultima versão do firewalld instalada
    yum:
      name: firewalld
      state: latest

  - name: Firewalld ativado e em execucao
    service:
      name: firewalld
      enabled: true
      state: started

  - name: Firewalld permite o servico http
    firewalld:
      service: http
      permanent: true
      state: enabled
      immediate: yes

  - name: Apache ativado e em execucao
    service:
      name: httpd
      enabled: true
      state: started

Dica

Compare e observe a diferença entre outros Playbooks que você pode ter escrito! O mais importante é que não há become, e hosts está definido como all.

Para configurar e usar este repositório como um sistema Source Control Management (SCM) no Tower, é necessário criar um Project que use o repositório.

Criando o projeto

Agora você precisa do URL para acessar o repositório. Vá para o repositório do Github mencionado acima, escolha o botão verde Clone or download à direita, clique em Use https e copie o URL HTTPS.

Nota

Se não houver Use https para clicar, basta copiar o URL. O importante é que você copie o URL começando com https.

Digite o URL na configuração do projeto:

O novo projeto será sincronizado automaticamente após a criação. Mas você também pode fazer isso: Sincronize o projeto novamente com o repositório Git, indo para a visualização Projects e clicando na seta circular Get latest SCM revision à direita do projeto.

Após iniciar o trabalho de sincronização, vá para a exibição Jobs: há um novo trabalho para a atualização do repositório Git.

Criando um job template e executando um job

Um Job template é uma definição e um conjunto de parâmetros para executar um job. Job templates são úteis para executar o mesmo trabalho várias vezes. Portanto, antes de executar um Job no Tower, você deve criar um Job Template que reúne:

Ok, vamos fazer isso: vá para a visualização Templates, clique no botão plus e escolha Job template.

Dica

Lembre-se que você pode clicar nas lupas para obter uma visão geral das opções a serem selecionadas para preencher os campos.

Você pode iniciar o trabalho clicando diretamente no botão azul LAUNCH, ou clicando no foguete na visão geral de Job Template. Depois de iniciar o Job Template, você é automaticamente levado para a visão geral do job, onde pode acompanhar a execução do playbook em tempo real:

job exection

Como isso pode levar um tempo, verifique todos os detalhes fornecidos:

Após o término do job, vá para a tela principal Jobs: Todos os jobs são listados aqui, você deve ver diretamente antes do Playbook executar uma atualização do SCM. Esta é a atualização do Git que configuramos para o Project no lançamento!

Laboratório de Desafios: Confira o Resultado

É hora de um pequeno desafio:

Você já passou por todas as etapas necessárias, então tente isso por si mesmo.

Dica

E quanto ao systemctl status httpd?

ATENÇÃO

Solução abaixo

E quanto a alguma prática?

Aqui está uma lista de tasks:

ATENÇÃO

Certifique-se de concluir estas etapas, pois o próximo capítulo depende disso!

Dica

O Job não mudou nada porque o Apache já estava instalado na versão mais recente.


Clique aqui para retornar ao Workshop Ansible for Red Hat Enterprise Linux