segunda-feira, 18 de maio de 2020

Instalação E Uso Com Módulos Ansible e vms ec2 da amazon

Tutorial prático do Ansible com instalação, uso e configuração do Ansible com módulos Ansible:

O Ansible é uma ferramenta de código aberto que ajuda na automação de tarefas, implantação de aplicativos, provisionamento em nuvem e gerenciamento de configurações.

                    

Portanto, estamos falando sobre a orquestração de TI, na qual as tarefas são executadas em sequência em várias máquinas ou servidores diferentes.

O Ansible faz isso conectando-se a várias máquinas por meio do SSH e executa as tarefas que foram configuradas em playbooks e usa uma linguagem simples chamada YAML (Yet Another Markup Language).

Adicionar legenda


Visão geral do Ansible

O mais importante é que o Ansible não usa um agente para automatizar tarefas em máquinas diferentes.

O Ansible garante a manutenção de versões exatas e informações atualizadas para os pacotes de software.

Por exemplo , se você deseja instalar o JDK 8 ou Tomcat ou qualquer outro pacote de software em 10 ou 20 máquinas diferentes, não é realmente possível acessar todas as máquinas e instalá-las. Em vez disso, use Ansible para automatizar a instalação ou mesmo implantações de software usando Playbooks e Inventário escrito em uma linguagem muito simples.

Então Ansible é:

  • Código Aberto e Gratuito
  • Mantido por Redhat
  • Essencialmente uma configuração de servidor
  • Gerenciamento de configurações

Nesta série de Ansible Tutorial de 3 partes, discutiremos a abordagem prática sobre os seguintes tópicos:

  • Processo de instalação e configuração
  • Inventário
  • Módulos Ansible
  • Comandos ad-hoc,
  • Automação de tarefas usando playbooks
  • Papéis possíveis
  • Abóbada Ansible
  • Ansible e AWS

Processo de Instalação Ansible

O Ansible pode ser instalado e executado em qualquer máquina.

Normalmente, você precisará de uma máquina de controle para instalação, que deve ser Linux. A máquina Windows não suporta ser uma máquina de controle. A máquina de controle gerenciará as outras máquinas remotas. Como mencionado anteriormente, o Ansible usa o SSH para gerenciar máquinas remotas.

Neste tutorial, usarei instâncias do AWS EC2 para mostrar os exemplos. Eu usei 2 instâncias (uma máquina de controle e outra como alvo para automatizar tarefas) e o Redhat Linux 7.5.

Sejam instâncias locais ou na nuvem, será necessário abrir as portas adequadamente, com base nas tarefas que estão sendo automatizadas. Eu tenho as seguintes portas abertas como parte do grupo de segurança para as instâncias do EC2 para demonstrar os exemplos mencionados no tutorial.


Na tela acima, mencionei a abertura da porta 8080, como mostrarei sobre como automatizar a automação de implantação de software usando o Tomcat, que será útil do ponto de vista do DevOps, especialmente durante o processo de entrega contínua.

Instalação do Ansible usando o YUM

Como mencionado anteriormente, usarei uma máquina de controle e uma máquina de destino. Para iniciar a instalação, execute as etapas conforme mostrado abaixo nas duas máquinas.

a) criar uma ID de comum em ambas as máquinas, por exemplo ,  ansible com privilégios Sudo. Esse ID será usado para a comunicação em todas as máquinas envolvidas para automação de tarefas.

# useradd ansible 
# passwd ansible

b) Edite o arquivo / etc / ssh / sshd_config na máquina de controle e remova o comentário das linhas de PasswordAuthentication e PermitRootLogin



Execute as etapas acima em ambas as máquinas. Depois de concluído, reinicie o serviço sshd nas duas máquinas.

# systemctl restart sshd

c) Para a automação completa das tarefas, precisaremos de autenticação SSH sem senha, caso contrário, todo o processo não será usado se você precisar digitar a senha todas as vezes.

Portanto, poste as alterações feitas acima, se executarmos o comando ssh <target machine> e ssh <control machine>, precisaremos digitar a senha toda vez que não for o procedimento correto para executar tarefas Ansible.

d) Para habilitar a autenticação sem senha para executar as etapas mostradas abaixo. Em primeiro lugar adicionar o usuário ansible à etc / / sudoers arquivo em ambas as máquinas que permitem ao usuário ansible para executar qualquer comando que exige privilégios de root.


Salve e saia do arquivo depois de adicionar o usuário.

e) No futuro, usaremos o usuário ansible para executar todas as etapas. Então mude para o usuário ansible.

Control Machine  aceitável E  Target Machine  aceitável


Máquina de controle  ssh-keygen


Target Machine  ssh-keygen


Copie a chave ssh para a máquina de destino e vice-versa.

Máquina de controle  ssh-copy-id <IP-Address-Host-Machine>


Máquina de destino  ssh-copy-id <IP-Address-Control-Machine>


Agora podemos fazer login sem digitar a senha. Após o check-out da conectividade ssh nas duas máquinas e logado como usuário ansible.

Máquina de controle:  ssh ansible @ <IP-Address-Host-Machine


Máquina de destino:  ssh ansible @ <IP-Address-Control-Machine>


f) Instale o wget se não estiver instalado nas duas máquinas.

$ sudo yum instala o wget -y

g) Agora podemos instalar o ansible na máquina Control apenas ativando o repositório EPEL do fedora, que fornece pacotes de software complementares. Execute as seguintes etapas para instalar o ANSIBLE.

$ wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
$ sudo rpm -ivh epel-release-latest-7.noarch.rpm 
$ sudo yum install ansible -y 
$ ansible --version

A versão ansible usada é 2.5.3

h) Edite o arquivo ansible.cfg e ative o parâmetro do arquivo de inventário na máquina de controle.

$ sudo vi /etc/ansible/ansible.cfg


i) A Ansible usa o conceito de Inventário para gerenciar e rastrear as máquinas de destino. Por padrão, esse arquivo está localizado em / etc / ansible / hosts e também pode ser alterado. Um arquivo host consiste em grupos para melhor classificação e várias máquinas no grupo. Todas as máquinas necessárias podem ser adicionadas a esses grupos.

Cada grupo é indicado por um colchete e um nome de grupo. Um servidor pode realmente existir em vários grupos.

Edite o arquivo de inventário / etc / ansible / hosts e adicione todos os servidores que precisam ser gerenciados.


j) Para testar a conectividade dos servidores no grupo do servidor da web, execute o comando ansible ping conforme mostrado. Aqui, ping é um módulo que executa uma função específica para testar se os hosts podem ser conectados conforme definido no arquivo de inventário ou não. Veremos mais sobre vários módulos e seus exemplos na próxima seção.

Servidores da Web $ ansible –m ping


Para listar os hosts no arquivo de inventário, você pode executar o comando abaixo

 $ ansible webservers --list-hosts

Uso Ansible


Ansible consiste em 3 componentes principais

  • Control Machine
  • Inventário
  • Livro de cantadas

A máquina de controle gerencia a execução do Playbook. Pode ser instalado no seu laptop ou em qualquer máquina na internet.

O arquivo Inventory fornece uma lista completa de todas as máquinas de destino nas quais vários módulos são executados, fazendo uma conexão ssh e instalando os softwares necessários.

O manual consiste em etapas que o mecanismo de controle executará nos servidores definidos no arquivo de inventário.

Muito importante entender aqui é que o Ansible interage com todos os servidores definidos no inventário por meio do protocolo SSH, que é um método seguro de login remoto. Todas as operações são feitas e a transferência de arquivos é criptografada.

Como você viu na seção anterior, o Ansible não usa nenhum tipo de banco de dados para instalação e é muito fácil de instalar, agora prosseguiremos com o uso real do Ansible, começando com Módulos, que é o principal componente.

Módulos Ansible

Os módulos são os principais componentes do Ansible e são basicamente scripts reutilizáveis ​​usados ​​pelos manuais do Ansible. O Ansible vem com vários módulos reutilizáveis. Isso inclui funcionalidade para controlar serviços, instalação de pacotes de software, trabalhar com arquivos e diretórios etc.

A sintaxe é a seguinte ao executar os comandos ad-hoc que ajudam na execução de tarefas simples ou simples apenas uma vez e que não precisam ser executados posteriormente. Por exemplo, apenas instalando o Tomcat em todos os servidores.

hostible hostORgroup -m module_name -a "argumentos" -u nome de usuário --become

Vamos dar uma olhada em alguns dos módulos Ansible mais populares e seu uso através dos comandos ad-hoc e posteriormente no manual.

# 1) Módulo de instalação

Para obter informações sobre a rede ou o hardware ou a versão do SO ou informações relacionadas à memória, o módulo de configuração ajudará a reunir o mesmo sobre as máquinas de destino. No controle, a máquina executa o comando abaixo.

Servidores da Web $ ansible –m setup


# 2) Módulo de comando

O módulo de comando simplesmente executa um comando específico na máquina de destino e fornece a saída.

Alguns dos exemplos são dados abaixo

$ ansible webservers –m command - um 'tempo de atividade' 
$ ansible webservers –m command –a 'hostname'


# 3) Módulo Shell

Para executar qualquer comando no shell de sua escolha, você pode usar o módulo Shell. Os comandos do módulo shell são executados em / bin / sh shell e você pode fazer uso de operadores como '>' ou '|' (símbolo de pipe ou mesmo variáveis ​​de ambiente.

Portanto, a principal diferença entre o módulo Shell e o comando é que, se você realmente não precisar usar operadores como os mencionados, poderá usar o módulo de comando.

$ ansible webservers -m shell -a 'ls -l> temp.txt'


Nas máquinas do grupo de servidores da web, verifique o arquivo criado e execute o comando para visualizar o arquivo de texto.

$ ansible webservers –m command -a 'cat temp.txt'

# 4) Módulo do usuário

Usando este módulo, pode-se criar ou excluir usuários.

Para adicionar usuário

$ ansible webservers -m usuário -a 'nome = usuário1 senha = usuário1' --become


Para excluir usuário

$ ansible webservers -m usuário -a 'nome = estado do usuário1 = ausente' - torne-se

17.para excluir user117.para excluir user2

Opções:

  • torne - se - privilégio para o superusuário executar o comando
  • state = ausente para excluir o usuário

# 5) Módulo de arquivo

Este módulo é usado para criar arquivos, diretórios, definir ou alterar permissões e propriedade de arquivos, etc.

Exemplo 1: Crie um arquivo

$ ansible webservers -m arquivo -a 'dest = / home / ansible / niranjan.txt state = modo de toque = 600 owner = grupo ansible = ansible'


Exemplo 2: Criar um Diretório

Para criar um diretório usando o módulo de arquivo, você precisa definir dois parâmetros.

  • Caminho (alias - nome, dest) - Este é o caminho absoluto do diretório a ser criado.
  • Estado - você deve inserir o valor como 'diretório'. Por padrão, o valor é 'arquivo'.
$ ansible webservers -m arquivo -a "dest = / home / ansible / vndir state = modo de diretório = 755"

19.criar dir119.criar dir2

Exemplo 3: excluir um arquivo

$ ansible webservers -m arquivo -a "dest = / home / ansible / niranjan.txt state = ausente"

20.delete file120.delete file2

Exemplo 4: excluir um diretório

Você pode excluir um diretório definindo o valor do parâmetro state como ausente . O diretório e todo o seu conteúdo serão excluídos.

$ ansible webservers -m arquivo -a "dest = / home / ansible / vndir state = ausente"

21. excluir dir1

21. excluir dir2

# 6) Módulo de cópia

É usado para copiar arquivos para várias máquinas de destino.

$ ansible webservers -m copy -a "src = sample.txt dest = / home / ansible / sample.txt"

22.Copy Module122.Copy Module2

# 7) Gerenciando pacotes de software

Se você precisar instalar pacotes de software através do 'yum' ou 'apt', poderá usar os comandos abaixo.

Exemplo 1: Instalar o GIT

$ ansible webservers –m yum -a “nome = estado do git = presente” - torne-se

23. Gerenciando pacotes de software1

23. Gerenciando pacotes de software2

Na janela da direita, você pode ver se o git não está instalado, ele dará o comando não encontrado e, uma vez instalado, mostrará a saída.

Neste comando, state = present verificará se o pacote está instalado ou não e, se não estiver instalado, instalará a versão mais recente.

Exemplo 2: verifique se o pacote está instalado e atualize-o para a versão mais recente.

$ ansible webservers -m yum -a "nome = estado do git = mais recente"

No comando acima, state = latest atualizará o pacote apenas para a versão mais recente.

24. Verifique se o pacote está instalado e atualize-o para a versão mais recente

Exemplo 3: Instale o Apache Webserver

$ ansible webservers -m yum -a "nome = httpd estado = presente" - torne-se

Exemplo 4: Verifique se o Maven está instalado ou não.

$ ansible webservers -m yum -a "name = maven state = ausente" - torne-se

# 8) Módulo de gerenciamento de serviços

Para gerenciar serviços com ansible, usamos um módulo 'service'.

Iniciando um serviço

$ ansible webservers -m service -a “nome = httpd estado = iniciado” --become

25. Gerenciando o módulo de serviços125. Gerenciando o módulo de serviços2

Parando um serviço

$ ansible webservers -m service -a "nome = httpd estado = parado" --become

Reiniciando um serviço

$ ansible webservers -m service -a “name = httpd state = restarted --become

Clique aqui para obter a lista Módulo completo.

Sumário

Neste tutorial, apresentei os conceitos e componentes básicos do Ansible e também vimos mais sobre instalação, configuração e uso do Ansible com a ajuda dos módulos Ansible, que é o principal componente na execução do Ansible.

Nenhum comentário:

Postar um comentário

 

bobox

Blogger news