britho / Ansible-HedHat

0 stars 0 forks source link

Aula-1 #1

Open britho opened 3 years ago

britho commented 3 years ago

RedHat System Administration III: Linux Automation (RH294) para administradores e desenvolvedores de sistemas Linux que precisam automatizar o provisionamento, a configuração, a implantação de aplicativos e a orquestração.

Os alunos aprenderão a instalar e configurar o Ansible em uma workstation de gerenciamento e preparar hosts gerenciados para automação. Os alunos escreverão playbooks do Ansible para automatizar tarefas e os executarão para garantir que os servidores sejam implantados e configurados corretamente. Exemplos de abordagens para automatizar tarefas comuns de administração do sistema Linux serão explorados. Objetivos do curso

Instalar e configurar o Ansible ou o RedHat Ansible Engine em um nó de controle.

Criar e gerenciar inventários de hosts gerenciados e os prepare para a automação Ansible.

Executar tarefas de automação ad hoc individuais na linha de comando.

Gravar playbooks do Ansible para automatizar consistentemente várias tarefas e aplicá-las a hosts gerenciados.

Parametrizar os playbooks usando variáveis e fatos e proteger os dados confidenciais com o Ansible Vault.

Gravar e reutilizar funções existentes do Ansible para simplificar a criação de playbooks e reutilizar código.

Automatizar tarefas comuns de administração de sistemas RedHat Enterprise Linux usando o Ansible.

Público-alvo

Administradores de sistemas Linux, engenheiros de DevOps, engenheiros de automação de infraestrutura e engenheiros de projeto de sistemas responsáveis pela automação do gerenciamento de configuração, implantação consistente e repetitiva de aplicativos, provisionamento e implantação de servidores de desenvolvimento, teste e produção e integração com fluxos de trabalho DevOps CI/CD.

Pré-requisitos

Certificado de RedHat Certified System Administrator (EX200/RHCSA) ou conhecimento e experiência equivalente em RedHat Enterprise Linux.
britho commented 3 years ago

Neste curso, o principal sistema de computadores usado para atividades práticas de aprendizagem é a workstation. Quatro outras máquinas são usadas pelos alunos nessas atividades: servera, serverb, serverc e serverd. Todos esses cinco sistemas estão no domínio DNS lab.example.com.

Todas as máquinas têm uma conta de usuário padrão, student, com a senha student. A senha do root em todos os sistemas de alunos é redhat.

Nome da máquina | Endereços IP | Função -- | -- | -- bastion.lab.example.com | 172.25.250.254 | Sistema de gateway para conectar a rede privada do aluno ao servidor de sala de aula (deve estar sempre em execução) workstation.lab.example.com | 172.25.250.9 | Estação de trabalho gráfica usada para administração do sistema servera.lab.example.com | 172.25.250.10 | Host gerenciado com o Ansible serverb.lab.example.com | 172.25.250.11 | Host gerenciado com o Ansible serverc.lab.example.com | 172.25.250.12 | Host gerenciado com o Ansible serverd.lab.example.com | 172.25.250.13 | Host gerenciado com o Ansible

A função principal do bastion é a de roteador entre a rede que conecta as máquinas dos alunos e a rede da sala de aula. Se o bastion estiver inoperante, outras máquinas dos alunos poderão acessar os sistemas na rede individual do aluno.

Vários sistemas na sala de aula oferecem serviços de suporte. Dois servidores, content.example.com e materials.example.com, são fontes de materiais de software e laboratório usados em atividades práticas. Informações sobre como usar esses servidores são fornecidas nas instruções dessas atividades. Elas são fornecidas pela máquina virtual classroom.example.com. A classroom e o bastion devem sempre estar em execução para o uso adequado do ambiente de laboratório.

Computadores remotos são atribuídos aos alunos em uma sala de aula de aprendizagem on-line da RedHat. Eles são acessados por meio de um aplicativo web hospedado em rol.redhat.com. Os alunos devem fazer login nesse site usando suas credenciais de usuário do RedHat Customer Portal.

Controle de máquinas virtuais

As máquinas virtuais no ambiente de sala de aula são controladas por meio de uma página da web. O estado de cada máquina virtual na sala de aula é exibido na página na guia Online Lab.

Estado da máquina virtual | Descrição -- | -- STARTING | A máquina virtual está em processo de inicialização. STARTED | A máquina virtual está em execução e disponível (ou logo estará, ao inicializar). STOPPING | A máquina virtual está em processo de desligamento. STOPPED | A máquina virtual está completamente desligada. Na inicialização, a máquina virtual é inicializada no mesmo estado em que foi desligada (o disco será preservado). PUBLISHING | A criação inicial da máquina virtual está sendo realizada. WAITING_TO_START | A máquina virtual está esperando que outras máquinas virtuais sejam iniciadas.

Dependendo do estado da máquina, algumas das ações a seguir estarão disponíveis para você.

Botão ou ação | Descrição -- | -- PROVISION LAB | Criar a sala de aula do ROL. Cria todas as máquinas virtuais necessárias para a sala de aula e as inicia. Levará vários minutos para ser concluído. DELETE LAB | Excluir a sala de aula ROL. Destrói todas as máquinas virtuais na sala de aula. Cuidado: qualquer trabalho gerado nesses discos será perdido. START LAB | Iniciar todas as máquinas virtuais na sala de aula. SHUTDOWN LAB | Interromper todas as máquinas virtuais na sala de aula. OPEN CONSOLE | Abrir uma nova guia no navegador e conectar-se ao console da máquina virtual. Os alunos podem fazer login diretamente na máquina virtual e executar comandos. Na maioria dos casos, os alunos devem fazer login na máquina virtual workstation e usar ssh para se conectar a outras máquinas virtuais. ACTION → Start | Iniciar (ligar) a máquina virtual. ACTION → Shutdown | Desligar cuidadosamente a máquina virtual, preservando o conteúdo de seu disco. ACTION → Power Off | Desligar de maneira forçada a máquina virtual, preservando o conteúdo de seu disco. Isso equivale a remover a energia de uma máquina física. ACTION → Reset | Desligar de maneira forçada a máquina virtual e redefinir o disco para seu estado inicial. Cuidado: qualquer trabalho gerado no disco será perdido.

No início de um exercício, se instruído a redefinir um único nó de máquina virtual, clique em ACTIONReset somente para a máquina virtual específica.

No início do exercício, se instruído a redefinir todas as máquinas virtuais, clique em ACTIONReset.

Se você desejar retornar o ambiente de sala de aula para o estado original no início do curso, clique em DELETE LAB para remover todo o ambiente de sala de aula. Depois que o laboratório for excluído, clique em PROVISION LAB para provisionar um novo conjunto de sistemas de sala de aula.

Não é possível desfazer a operação DELETE LAB. Qualquer trabalho realizado no ambiente de sala de aula até esse ponto será perdido.

Temporizador de interrupção automática

O ingresso no ambiente de aprendizado on-line da RedHat garante aos alunos tempo para o uso do computador. Para ajudar a economizar tempo alocado do computador, a sala de aula ROL tem um cronômetro de contagem regressiva associado que desliga o ambiente de sala de aula quando o tempo acaba.

Para ajustar o temporizador, clique em MODIFY para exibir a caixa de diálogo New Autostop Time. Defina o número de horas e minutos até que a sala de aula seja automaticamente interrompida. Clique em ADJUST TIME para aplicar essa alteração às configurações do temporizador.

britho commented 3 years ago

Meta | Descrever os conceitos fundamentais do Ansible e como ele é usado, assim como instalar o RedHat Ansible Engine. -- | -- Objetivos | Descrever a motivação para automatizar as tarefas de administração do Linux com o Ansible, conceitos fundamentais do Ansible e sua arquitetura básica. Instalar o Ansible em um nó de controle e descrever a diferença entre a comunidade do Ansible e o RedHat Ansible Engine. Seções | Automatização da administração do Linux com o Ansible (e teste) Instalação do Ansible (e exercício orientado)

Objetivo

Depois de concluir esta seção, você deverá ser capaz de descrever a motivação para automatizar as tarefas de administração do Linux com o Ansible, conceitos fundamentais do Ansible e sua arquitetura básica.

Automação e administração do sistema Linux

Por muitos anos, a maior parte do gerenciamento da infraestrutura e administração de sistemas se baseou em tarefas manuais executadas por interfaces de usuário gráficas e de linha de comando. Os administradores de sistema geralmente trabalham com listas de verificação, outras documentações ou em uma rotina memorizada para realizar tarefas padrão.

Essa abordagem é suscetível a erros. É fácil para um administrador de sistema pular uma etapa ou realizar uma etapa por engano. Muitas vezes, há uma verificação limitada da realização adequada das etapas ou da geração dos resultados esperados.

Além disso, ao gerenciar cada servidor manualmente e de forma independente, é muito fácil para muitos servidores que deveriam ser idênticos em configuração serem diferentes de formas pouco (ou muito) significativas. Isso pode dificultar a manutenção e introduzir erros ou instabilidade no ambiente de TI.

A automação pode ajudar a evitar os problemas causados pela administração de sistema e o gerenciamento de infraestrutura manuais. Como administrador de sistema, você pode usá-la para garantir que todos os seus sistemas sejam implantados e configurados de forma rápida e correta. Isso permite que você automatize tarefas repetitivas na programação diária, liberando seu tempo e permitindo que você se concentre em tarefas mais importantes. Para sua organização, isso significa que você pode lançar mais rapidamente a próxima versão de um aplicativo ou as atualizações de um serviço.

Infraestrutura como código

Um bom sistema de automação permite que você implemente práticas de infraestrutura como código. Infraestrutura como código significa que você pode usar uma linguagem de automação legível por máquina para definir e descrever o estado desejado para sua infraestrutura de TI. Idealmente, essa linguagem de automação também deve ser de fácil leitura para humanos porque então você pode facilmente entender qual é o estado e fazer alterações nele. Esse código é aplicado à sua infraestrutura para garantir que ela esteja realmente nesse estado.

Se a linguagem de automação for representada como arquivos de texto simples, ela pode ser facilmente gerenciada em um sistema de controle de versão como código de software. A vantagem disso é que cada alteração pode ser verificada no sistema de controle de versão para que você tenha um histórico das alterações feitas ao longo do tempo. Se quiser reverter para uma configuração anterior válida e conhecida, você pode simplesmente extrair essa versão do código e aplicá-la à sua infraestrutura.

Isso cria uma base para ajudar você a seguir as práticas recomendadas em DevOps. Os desenvolvedores podem definir a configuração desejada na linguagem de automação. Os operadores podem revisar essas alterações com mais facilidade para fornecer feedback e utilizar essa automação para garantir de forma reproduzível que os sistemas estejam no estado esperado pelos desenvolvedores.

Redução de erros humanos

Ao reduzir as tarefas realizadas manualmente nos servidores com a automação de tarefas e as práticas de infraestrutura como código, seus servidores terão configurações consistentes com mais frequência. Isso significa que você precisa se acostumar a fazer alterações por meio da atualizações no código de automação, em vez de aplicá-las manualmente aos servidores. Caso contrário, você corre o risco de perder as alterações aplicadas manualmente na próxima vez que aplicar alterações por automação.

A automação permite que você use a revisão de código, a revisão em pares por vários especialistas no assunto e a documentação do procedimento pela própria automação para reduzir os riscos operacionais.

Por fim, você pode impor que as alterações na infraestrutura de TI sejam feitas por meio da automação, a fim de reduzir os erros humanos.

O que é o Ansible?

O Ansible é uma plataforma de automação open source. É uma linguagem de automação simples que pode descrever perfeitamente uma infraestrutura de aplicativo de TI em playbooks do Ansible. É também um mecanismo de automação que executa playbooks do Ansible.

O Ansible pode gerenciar ferramentas poderosas de automação e pode se adaptar a muitos fluxos de trabalho e ambientes diferentes. Ao mesmo tempo, novos usuários do Ansible podam usá-lo muito rapidamente para se tornarem produtivos.

O Ansible é simples

Os playbooks do Ansible fornecem automação legível. Isso significa que os playbooks são ferramentas de automação que também podem ser facilmente lidos, compreendidos e alterados. Não é necessário ter conhecimentos especiais de programação para escrevê-los. Os playbooks executam tarefas em ordem. Devido à simplicidade do design dos playbooks, eles podem ser usados por todas as equipes, o que permite que as pessoas novas no Ansible se tornem produtivas rapidamente.

O Ansible é poderoso

Você pode usar o Ansible para implantar aplicativos, para gerenciamento de configuração, automação de fluxos de trabalho e automação de redes. O Ansible pode ser usado para orquestrar todo o ciclo de vida do aplicativo.

O Ansible funciona sem agente

O Ansible foi desenvolvido de acordo com uma arquitetura sem agente. Normalmente, o Ansible se conecta aos hosts que ele gerencia usando OpenSSH ou WinRM e executa tarefas, frequentemente (mas não sempre) enviando por push pequenos programas chamados de módulos do Ansible a esses hosts. Esses programas são usados para colocar o sistema em um estado específico desejado. Qualquer módulo enviado é removido quando o Ansible conclui as tarefas. Você pode começar a usar o Ansible quase imediatamente, já que nenhum agente especial precisa de aprovação para ser usado e implantado nos hosts gerenciados. Como não há agentes e infraestruturas de segurança personalizada adicionais, o Ansible é mais eficiente e mais seguro que as outras alternativas.

O Ansible possui vários pontos fortes importantes:

  • Suporte multiplataforma: o Ansible oferece suporte sem agente para o Linux, Windows, UNIX e dispositivos de rede, em ambientes físicos, virtuais, de nuvem e em contêineres.

  • Automação legível: os playbooks do Ansible, escritos como arquivos de texto YAML, são fáceis de ler e ajudam a garantir que todos entendam o que farão.

  • Descrição perfeita de aplicativos: qualquer alteração pode ser feita pelos playbooks do Ansible e cada aspecto do seu ambiente de aplicativo pode ser descrito e documentado.

  • Fácil de gerenciar em controle de versão: os playbooks e projetos do Ansible são textos simples. Eles podem ser tratados como código-fonte e colocados em seu sistema de controle de versão existente.

  • Compatível com inventários dinâmicos: a lista de máquinas que o Ansible gerencia pode ser atualizada dinamicamente a partir de fontes externas para obter a lista atual correta de todos os servidores gerenciados a todo momento, independente da infraestrutura ou localização.

  • Orquestração que se integra facilmente a outros sistemas: HP SA, Puppet, Jenkins, RedHat Satellite e outros sistemas que existem em seu ambiente podem ser aproveitados e integrados em seu fluxo de trabalho do Ansible.

Ansible: a linguagem de DevOps

  --
1.1: O Ansible no ciclo de vida do aplicativo

Comunicação é essencial para DevOps. O Ansible é a primeira linguagem de automação que pode ser lida e escrita em toda a TI. É também a única ferramenta somente de automação que pode automatizar o ciclo de vida do aplicativo e o pipeline de entrega contínua do início ao fim.

Conceitos e arquitetura do Ansible

Existem dois tipos de máquina na arquitetura do Ansible: os nós de controle e os hosts gerenciados. O Ansible é instalado e executado a partir de um nó de controle, e esta máquina também tem cópias dos arquivos de projeto do Ansible. Um nó de controle pode ser o laptop de um administrador, um sistema compartilhado por vários administradores ou um servidor executando o RedHat AnsibleTower.

Os hosts gerenciados são listados em um inventário, que também organiza esses sistemas em grupos para um gerenciamento coletivo mais fácil. O inventário pode ser definido em um arquivo de texto estático ou pode ser determinado dinamicamente por scripts que obtêm informações de fontes externas.

Em vez de escrever scripts complexos, os usuários do Ansible criam ações de alto nível para garantir que um host ou grupo de hosts esteja em um determinado estado. Uma ação realiza uma série de tarefas nos hosts, na ordem especificada pela ação. Essas ações são expressas em formato YAML em um arquivo de texto. Um arquivo que contém uma ou mais ações é chamado de playbook.

Cada tarefa executa um módulo, um pequeno trecho de código (escrito em Python, PowerShell ou alguma outra linguagem) com argumentos específicos. Cada módulo é, essencialmente, uma ferramenta em seu kit de ferramentas. O Ansible tem centenas de módulos úteis que podem realizar uma grande variedade de tarefas de automação. Eles podem agir em arquivos de sistema, instalar software ou fazer chamadas de API.

Quando usado em uma tarefa, um módulo geralmente garante que um aspecto especifico da máquina esteja em um determinado estado. Por exemplo, uma tarefa que usa um módulo pode garantir que um arquivo exista e tenha permissões e conteúdo específicos, enquanto uma tarefa que usa outro módulo pode garantir que um sistema de arquivos específico seja montado. Se o sistema não estiver nesse estado, a tarefa deverá colocá-lo em tal estado. Se o sistema já estiver nesse estado, ela não fará nada. Em caso de falha em uma tarefa, o comportamento padrão do Ansible é abortar o resto do playbook para os hosts que apresentaram falhas.

Tarefas, ações e playbooks são projetados para serem idempotentes. Isso significa que você pode executar com segurança um playbook nos mesmos hosts várias vezes. Quando os sistemas estão no estado correto, o playbook não faz alterações ao ser executado. Isso significa que você pode executar um playbook nos mesmos hosts várias vezes em segurança. Quando os sistemas estão no estado correto, o playbook não deve fazer alterações ao ser executado. Há diversos módulos que podem ser usados para executar comandos arbitrários. No entanto, você deve usar esses módulos com cuidado para garantir que sejam executados de maneira idempotente.

O Ansible também usa plugins. Plugins são códigos que você pode adicionar ao Ansible para estendê-lo e adaptá-lo a novos usos e plataformas.

A arquitetura do Ansible funciona sem agente. Normalmente, quando um administrador executa um playbook do Ansible ou um comando ad hoc, o nó de controle se conecta ao host gerenciado usando SSH (por padrão) ou WinRM. Isso significa que os clientes não precisam ter um agente específico para o Ansible em hosts gerenciados, além de não precisarem permitir tráfego de rede especial para portas não padrão.

O RedHat AnsibleTower é uma estrutura empresarial para ajudar a controlar, proteger e gerenciar a automação do Ansible em escala. Você pode usá-lo para controlar quem tem acesso à execução de playbooks em quais hosts, compartilhar o uso de credenciais SSH sem permitir que os usuários transfiram ou vejam o conteúdo, registrar em log todas as tarefas do Ansible e gerenciar o inventário, entre muitas outras tarefas. Ele oferece uma interface de usuário baseada na web (interface web) e uma API RESTful. Não é uma parte fundamental do Ansible, mas um produto separado que ajuda a utilizar o Ansible de forma mais eficaz com uma equipe ou em grande escala.

  --
1.2: Arquitetura do Ansible

O modo de trabalho do Ansible

A complexidade acaba com a produtividade

Mais simples é melhor. O Ansible foi projetado para que suas ferramentas sejam simples de usar e a automação seja simples de escrever e ler. Você deve aproveitar as vantagens disso para buscar simplificar o modo com que cria sua automação.

Otimizar para legibilidade

A linguagem de automação do Ansible foi desenvolvida com base em arquivos simples, declarativos e baseados em texto que são fáceis de ler. Se escritos adequadamente, os playbooks do Ansible podem documentar claramente sua automação de fluxo de trabalho.

Pense de forma declarativa

O Ansible é uma ferramenta de estado desejado. Ele aborda o problema de como automatizar implantações de TI ao expressá-las nos termos do estado no qual você deseja que seus sistemas estejam. O objetivo do Ansible é levar seus sistemas ao estado desejado, fazendo apenas as alterações que forem necessárias. Tentar tratar o Ansible como uma linguagem de scripts não é a abordagem certa.

  --
1.3: O Ansible oferece automação completa

Casos de uso

Diferente de outras ferramentas, o Ansible combina e une a orquestração com o gerenciamento de configuração, o provisionamento e a implantação de aplicativos em uma plataforma fácil de usar.

Alguns casos de uso do Ansible incluem:

Gerenciamento de configuração

A centralização da implantação e do gerenciamento de arquivos de configuração é um caso de uso comum do Ansible, e é com essa finalidade que muitos usuários avançados começam a usar a plataforma de automação do Ansible.

Implantação de aplicativos

Ao definir os aplicativos com o Ansible e gerenciar as implantações com o RedHat Ansible Tower, as equipes podem gerenciar todo o ciclo de vida do aplicativo com eficiência desde o desenvolvimento até a produção.

Provisionamento

Os aplicativos precisam ser implantados ou instalados em sistemas. O Ansible e o RedHat AnsibleTower podem ajudar a aperfeiçoar o processo de provisionamento de sistemas, seja na inicialização PXE e no kickstart de servidores bare-metal ou máquinas virtuais ou na criação de máquinas virtuais ou instâncias de nuvem a partir de modelos. Os aplicativos precisam ser implantados ou instalados em sistemas.

Entrega contínua

A criação de um pipeline CI/CD precisa da coordenação e do comprometimento de várias equipes. Você não conseguirá realizá-la sem uma plataforma de automação simples que todos em sua organização possam usar. Os playbooks do Ansible mantêm seus aplicativos adequadamente implantados (e gerenciados) ao longo de todo o ciclo de vida.

Segurança e conformidade

Quando a política de segurança está definida nos playbooks do Ansible, é possível integrar a verificação e a remediação de políticas de segurança de todo o site a outros processos automatizados. Em vez de ser deixada para depois, essa é uma parte integrante de tudo que é implantado.

Orquestração

Por si só, as configurações não são suficientes para definir seu ambiente. Você precisa decidir de que forma as múltiplas configurações interagem e garantir que componentes discrepantes possam ser gerenciados como um todo.

britho commented 3 years ago

Escolha a resposta correta para as seguintes perguntas:

  1. 1.   --   | Qual dos termos a seguir melhor descreve a arquitetura do Ansible? A |   | Sem agente B |   | Cliente/servidor C |   | Impulsionado por evento D |   | Sem estado
2.   --   | Qual é o protocolo de rede que o Ansible usa por padrão para se comunicar com os nós gerenciados? A |   | HTTP B |   | HTTPS C |   | SNMP D |   | SSH
3.   --   | Qual dos arquivos a seguir define as ações que o Ansible realiza em nós gerenciados? A |   | Inventário de hosts B |   | Manifesto C |   | Playbook D |   | Script
4.   --   | Qual sintaxe é usada para definir os playbooks do Ansible? A |   | Bash B |   | Perl C |   | Python D |   | YAML
britho commented 3 years ago

Objetivos

Depois de concluir esta seção, você deverá ser capaz de instalar o Ansible em um nó de controle e descrever a diferença entre a comunidade do Ansible e o RedHat Ansible Engine. Ansible ou RedHat Ansible Automation?

A RedHat fornece software Ansible em canais especiais como conveniência para assinantes do RedHat Enterprise Linux, e você pode usar esses pacotes de software normalmente.

No entanto, se desejar suporte formal para o Ansible e seus módulos, a RedHat oferece uma subscrição especial para isso, o RedHat AnsibleAutomation. Essa subscrição inclui suporte para o Ansible em si, como RedHat AnsibleEngine. Ela adiciona suporte técnico formal com SLAs e um escopo de cobertura publicado para o Ansible e seus módulos principais. Mais informações sobre o escopo desse suporte estão disponíveis em Ciclo de vida do Red Hat Ansible Engine. Nós de controle

O Ansible é simples de instalar O software do Ansible só precisa ser instalado no nó (ou nós) de controle no qual ele será executado. Os hosts que são gerenciados pelo Ansible não precisam ter o Ansible instalado. Essa instalação envolve relativamente poucas etapas e tem requisitos mínimos.

O nó de controle deve ser um sistema Linux ou UNIX. O Microsoft Windows não é compatível como um nó de controle, embora os sistemas Windows possam ser hosts gerenciados.

O Python3 (versão3.5 ou posterior) ou o Python2 (versão2.7 ou posterior) precisa ser instalado no nó de controle.

Se você estiver executando o RedHat EnterpriseLinux8, o Ansible2.8 pode usar automaticamente o pacote platform-python que é compatível com utilitários de sistema que usam Python. Você não precisa instalar os pacotes python36 ou python27 do AppStream.

[root@controlnode ~]# yum list installed platform-python Loaded plugins: langpacks, search-disabled-repos Installed Packages platform-python.x86_64 3.6.8-2.el8_0 @anaconda

Informações sobre como instalar o pacote de software ansible em um sistema RedHat Enterprise Linux estão disponíveis no artigo da Base de Conhecimento Como fazer download e instalar o Red Hat Ansible Engine?.

O Ansible está em rápido desenvolvimento upstream e, portanto, o RedHat Ansible Engine tem um ciclo de vida rápido. Mais informações sobre o ciclo de vida atual estão disponíveis em https://access.redhat.com/support/policy/updates/ansible-engine.

A RedHat oferece o canal ansible-2.8-for-rhel-8-x86_64-rpms para o RedHat Enterprise Linux8. Você também pode obter a atualização mais recente da versão principal do RedHat Ansible Engine2 para RHEL8 no canal ansible-2-for-rhel-8-x86_64-rpms.

Você pode usar esses canais para instalar o Ansible com suporte limitado com subscrições padrão do RedHat Enterprise Linux. Se precisar de suporte mais abrangente para o Ansible, é possível comprar subscrições completas do RedHat Ansible Engine e associá-las aos sistemas antes de ativar os canais, conforme discutido no artigo da Base de conhecimento.

Se você tem uma subscrição do RedHat Ansible Engine, o procedimento de instalação do RedHat Ansible Engine2 é o seguinte:

Você não precisa executar essas etapas em seu ambiente de sala de aula.

Registre seu sistema no RedHat Subscription Manager.

[root@host ~]# subscription-manager register

Defina uma função para o seu sistema.

[root@host ~]# subscription-manager role --set="Red Hat Enterprise Linux Server"

Anexe sua subscrição do RedHat Ansible Engine. Este comando ajuda a encontrar sua subscrição do RedHat Ansible Engine:

[root@host ~]# subscription-manager list --available

Use a ID do pool da subscrição para anexar o pool ao sistema.

[root@host ~]# subscription-manager attach --pool=<engine-subscription-pool>

Ative o repositório do RedHat Ansible Engine.

[root@host ~]# subscription-manager repos \
> --enable ansible-2-for-rhel-8-x86_64-rpms

Instale o RedHat Ansible Engine.

[root@host ~]# yum install ansible

Se estiver usando a versão com suporte limitado fornecida com sua subscrição do RedHat Enterprise Linux, use o seguinte procedimento:

Ative o repositório do RedHat Ansible Engine.

[root@host ~]# subscription-manager refresh
[root@host ~]# subscription-manager repos \
> --enable ansible-2-for-rhel-8-x86_64-rpms

Instale o RedHat Ansible Engine.

[root@host ~]# yum install ansible

Hosts gerenciados

Um dos benefícios do Ansible é que os hosts gerenciados não precisam ter um agente especial instalado. O nó de controle Ansible se conecta a hosts gerenciados usando um protocolo de rede padrão para garantir que os sistemas estejam no estado especificado.

Hosts gerenciados podem ter algumas exigências dependendo de como o nó de controle se conecta a eles e quais módulos executará neles.

Hosts gerenciados Linux e UNIX precisam ter Python2 (versão2.6 ou superior) ou Python3 (versão3.5 ou posterior) instalado para que a maioria dos módulos funcione.

Para o RedHat EnterpriseLinux8, pode ser possível utilizar o pacote platform-python. Você também pode ativar e instalar o fluxo de aplicativos python36 (ou o fluxo de aplicativos python27).

[root@host ~]# yum module install python36

Se o SELinux estiver ativado nos hosts gerenciados, você também precisará garantir que o pacote python3-libselinux esteja instalado antes de usar módulos relacionados a funções de cópia, arquivo ou template. (Se outros componentes Python estiverem instalados, você pode usar módulos do Ansible como yum ou package para garantir que esse pacote também esteja instalado.)

Alguns nomes de pacotes podem ser diferentes no RedHat EnterpriseLinux7 e versões anteriores por causa da migração em andamento para o Python 3.

Para o RedHat EnterpriseLinux7 e versões anteriores, instale o pacote python, que fornece o Python 2. Em vez do python3-libselinux, você precisará garantir que o pacote libselinux-python esteja instalado.

Alguns módulos podem ter exigências próprias adicionais. Por exemplo, o módulo dnf, que pode ser usado para instalar os pacotes nos sistemas Fedora atuais, exige o pacote python3-dnf (python-dnf no RHEL7).

Alguns módulos não precisam do Python. Por exemplo, argumentos transmitidos para o módulo Ansible raw são executados diretamente por meio do shell remoto configurado, em vez de passar pelo subsistema do módulo. Isso pode ser útil para gerenciar dispositivos que não têm o Python disponível ou não podem instalar o Python ou para realizar bootstrap do Python em um sistema que não tem o recurso.

Entretanto, o módulo raw é difícil de usar de modo idempotente seguro. Se puder usar um módulo normal, é melhor evitar o uso do raw e de outros módulos de comando semelhantes. Isso será discutido em detalhes mais tarde neste curso.

Hosts gerenciados baseados no Microsoft Windows

O Ansible inclui diversos módulos que são projetados especificamente para os sistemas Microsoft Windows. Eles estão listados na seção Módulos do Windows do índice de módulos do Ansible.

A maioria dos módulos especificamente projetados para hosts gerenciados do Microsoft Windows exigem PowerShell3.0 ou posterior no host gerenciado, em vez do Python. Além disso, os hosts gerenciados precisam ter comunicação remota do PowerShell configurada. O Ansible também requer pelo menos o .NET Framework4.0 ou posterior para ser instalado em hosts gerenciados do Windows.

Este curso usa hosts gerenciados baseados em Linux nos exemplos e não se aprofunda sobre as diferenças e ajustes específicos necessários ao gerenciar hosts gerenciados baseados no Microsoft Windows. Mais informações estão disponíveis no site do Ansible em https://docs.ansible.com/ansible/latest/user_guide/windows.html.

Dispositivos de rede gerenciados

Também é possível usar a automação do Ansible para configurar dispositivos de rede gerenciados, como roteadores e comutadores. O Ansible inclui um grande número de módulos projetados especificamente para essa finalidade. Isso inclui suporte para Cisco IOS, IOS XR e NX-OS; Juniper Junos; Arista EOS; dispositivos de rede baseados em VyOS, entre outros.

É possível escrever playbooks do Ansible para dispositivos de rede usando as mesmas técnicas básicas que você usa ao escrever playbooks para servidores. Como a maioria dos dispositivos de rede não pode executar o Python, o Ansible executa módulos de rede no nó de controle, não nos hosts gerenciados. Métodos especiais de conexão também são usados para se comunicar com dispositivos de rede, geralmente usando a CLI por SSH, XML por SSH ou API por HTTP(S).

Este curso não aborda a automação do gerenciamento de dispositivos de rede em profundidade. Para mais informações sobre esse tópico, consulte Ansible for Network Automation no site da comunidade do Ansible ou participe de nosso curso alternativo Ansible for Network Automation (DO457).

Página do man ansible(1)

Principais políticas de suporte do Red Hat Ansible Automation

Installation Guide — Ansible Documentation

Windows Guides — Ansible Documentation

Ansible for Networking Automation — Ansible Documentation

britho commented 3 years ago

Neste exercício, você instalará o Ansible em um nó de controle executando o RedHat EnterpriseLinux.

Resultado

Você deverá ser capaz de instalar o Ansible em um nó de controle.

Faça login na workstation como student usando a senha student e execute lab intro-install start. Esse script inicial configura o nó de controle.

[student@workstation ~]$ lab intro-install start

Instale o Ansible na workstation para que possa servir o nó de controle.

[student@workstation ~]$ sudo yum install ansible
[sudo] password for student:
Loaded plugins: langpacks, search-disabled-repos
Resolving Dependencies
--> Running transaction check
...output omitted...
Is this ok [y/d/N]: y
...output omitted...

Verifique se o Ansible está instalado no sistema. Execute o comando ansible com a opção --version.

[student@workstation ~]$ ansible --version
ansible 2.8.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/student/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Apr  3 2019, 17:26:03) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)]

Verifique ansible_python_version no host local usando o módulo de configuração.

[student@workstation ~]$ ansible -m setup localhost | grep ansible_python_version
    "ansible_python_version": "3.6.8",

Encerramento

Na workstation, execute o script lab intro-install finish para limpar este exercício.

[student@workstation ~]$ lab intro-install finish

Isso conclui o exercício orientado.

britho commented 3 years ago

Neste capítulo, você aprendeu que:

A automação é uma ferramenta fundamental para reduzir os erros humanos e garantir rapidamente que sua infraestrutura de TI esteja em um estado consistente e correto.

O Ansible é uma plataforma de automação open source que pode se adaptar a diferentes fluxos de trabalho e ambientes.

O Ansible pode ser usado para gerenciar diferentes tipos de sistemas, incluindo servidores executando Linux, Microsoft Windows ou UNIX, além de dispositivos de rede.

Os playbooks do Ansible são arquivos de texto legíveis que descrevem o estado desejado de uma infraestrutura de TI.

O Ansible é criado em torno de uma arquitetura sem agentes na qual o Ansible é instalado em um nó de controle e clientes que não precisam de um software de agente especial.

O Ansible conecta-se a hosts gerenciados usando protocolos de rede padrão como SSH e executa códigos ou comandos nos hosts gerenciados para garantir que eles estejam no estado especificado pelo