ansible tutorial installation
Tutorial prático do Ansible com instalação, uso e configuração do Ansible com os módulos do Ansible:
Nós discutimos sobre AWS Elastic Beanstalk em nosso tutorial anterior.
LISTA de tutoriais nesta série de Ansible:
Tutorial nº 1: Instalação e módulos compatíveis
Tutorial # 2: Ansible Playbooks and Vaults
Tutorial nº 3: Funções Ansible e integração com Jenkins
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ção.
Leia também => Lista de tutoriais de treinamento DevOps
Portanto, estamos falando sobre orquestração de TI, onde 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 de SSH e executa as tarefas que foram configuradas em manuais e usa uma linguagem simples chamada YAML (mais uma linguagem de marcação) .
O que você aprenderá:
- Visão geral do Ansible
- Processo de Instalação Ansible
- Uso Ansible
- Módulos Ansible
- Resumo
- Leitura recomendada
Visão geral do Ansible
Mais importante ainda, o Ansible não usa um agente para automatizar tarefas em máquinas diferentes.
A Ansible garante a manutenção de versões exatas e informações atualizadas dos 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 viável ir para todas as máquinas e instalá-las, em vez de usar o Ansible para automatizar a instalação ou até mesmo implantações de software usando Playbooks e Inventory escrito em uma linguagem muito simples.
Então, Ansible é:
- Livre e de código aberto
- Mantido por Redhat
- Essencialmente uma configuração de servidor
- Gerenciamento de configurações
Nesta série de tutoriais Ansible em 3 partes, discutiremos a abordagem prática nos seguintes tópicos:
- Processo de instalação e configuração
- Inventário
- Módulos Ansible
- Comandos ad-hoc,
- Automação de tarefas usando manuais
- Papéis Ansible
- Cofre Ansible
- Ansible e AWS
Processo de Instalação Ansible
O Ansible pode ser instalado e executado em qualquer máquina.
Normalmente, você precisará de um Maquina 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. Conforme mencionado anteriormente, o Ansible usa SSH para gerenciar máquinas remotas.
Ao longo deste tutorial, usarei instâncias do AWS EC2 para mostrar os exemplos. Usei 2 instâncias (uma máquina de controle e outra como alvo para automatizar tarefas) e Redhat Linux 7.5.
Seja em instâncias locais ou em nuvem, você precisará abrir portas de maneira adequada 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.
c ++ número aleatório entre 1 e 3
Na tela acima, mencionei a abertura da porta 8080, pois mostrarei sobre a automação da automação de implantação de software usando Tomcat, o que será útil do ponto de vista do DevOps, especialmente durante o processo de entrega contínua.
Instalação de Ansible usando YUM
Como mencionado antes, estarei usando uma máquina de controle e uma máquina de destino. Para iniciar a instalação, execute as etapas conforme mostrado abaixo em ambas as máquinas.
para) Crie um id comum em ambas as máquinas, para Exemplo , ansible com privilégios SUDO. Este id será usado para comunicação entre todas as máquinas envolvidas para automação de tarefas.
# useradd ansible # passwd ansible
b) Edite o / etc / ssh / sshd_config arquivo no máquina de controle e descomente as linhas para PasswordAuthentication e PermitRootLogin
Execute as etapas acima em ambas as máquinas. Depois de concluído, reinicie o sshd serviço em ambas as máquinas.
# systemctl restart sshd
c) Para a automação completa das tarefas, precisaremos da autenticação SSH sem senha, caso contrário, todo o processo não será usado se você tiver que digitar a senha todas as vezes.
Portanto, poste as alterações feitas acima se executarmos os comandos ssh e ssh, precisaremos digitar a senha todas as vezes, o que não é o procedimento correto para executar as tarefas Ansible.
d) Para habilitar a autenticação sem senha, execute as etapas mostradas abaixo. Em primeiro lugar, adicione o usuário ansible ao / etc / sudoers arquivo em ambas as máquinas, o que permitirá ao usuário ansible para executar qualquer comando que requeira privilégios de root.
Salve e saia do arquivo após adicionar o usuário.
é) No futuro, usaremos o usuário ansible para realizar todas as etapas. Então mude para o usuário ansible.
Máquina de Controle Su - ansible E Máquina Alvo aceitável
Máquina de Controle ssh-keygen
Máquina Alvo ssh-keygen
Copie a chave ssh para a máquina de destino e vice-versa.
Máquina de Controle ssh-copy-id
Máquina Alvo ssh-copy-id
perguntas e respostas da entrevista do oracle sql
Agora podemos fazer o login sem inserir a senha. Após a verificação da conectividade ssh em ambas as máquinas e ser logado como usuário ansible.
Máquina de controle: ssh ansible @
Máquina Alvo: ssh ansible @
f) Instale o wget se não estiver instalado em ambas as máquinas.
$ sudo yum install wget -y
g) Agora podemos instalar ansible na máquina de controle apenas habilitando o repositório EPEL do fedora, que fornece pacotes de software adicionais. Execute as seguintes etapas para instalar ANSÍVEL.
$ 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 ansible.cfg arquivo e habilitar o parâmetro do arquivo de inventário na máquina de Controle.
$ sudo vi /etc/ansible/ansible.cfg
eu) Ansible usa o conceito de Inventário para gerenciar e rastrear as máquinas de destino. Por padrão, este 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 é denotado por um colchete e um nome de grupo dentro. 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 sob o grupo do servidor web, execute o ansible ping comando como 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.
$ ansible webservers –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
- Máquina de Controle
- Inventário
- Livro de cantadas
A máquina de controle gerencia a execução do Playbook. Ele pode ser instalado no seu laptop ou em qualquer máquina na internet.
O arquivo de inventário 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 o software necessário.
O playbook 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. Cada operação é feita e a transferência de arquivos é criptografada.
Assim, como você deve ter visto na seção anterior, o Ansible não usa nenhum tipo de banco de dados para instalação e é muito fácil de instalar, iremos agora prosseguir com o uso real do Ansible começando com Módulos, que é o bloco de construção principal.
Módulos Ansible
Módulos são os principais blocos de construção 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 pacote de software, trabalho 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 únicas apenas uma vez e que não precisam ser executados posteriormente. Para Por exemplo. apenas instalando o Tomcat em todos os servidores.
ansible hostORgroup -m module_name -a 'arguments' -u username --become
Vamos dar uma olhada em alguns dos módulos Ansible mais populares e seu uso por meio de comandos ad-hoc e mais tarde no manual.
# 1) Módulo de configuração
Para obter informações sobre a rede ou hardware ou versão do sistema operacional ou informações relacionadas à memória, o módulo de configuração ajudará a coletar o mesmo sobre as máquinas de destino. No controle, a máquina executa o comando abaixo.
$ ansible webservers –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 fornecidos abaixo
$ ansible webservers –m command - an ‘uptime’ $ 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 no shell / bin / sh e você pode fazer uso de operadores como ‘>’ ou ‘|’ (símbolo de barra vertical ou até mesmo variáveis de ambiente.
Portanto, principalmente a diferença entre o módulo Shell e o módulo de comando é que, se você realmente não precisa usar os operadores como os mencionados, pode usar o módulo de comando.
$ ansible webservers -m shell -a 'ls -l > temp.txt'
Nas máquinas do grupo webservers, 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 de usuário
Usando este módulo, é possível criar ou excluir usuários.
Para adicionar usuário
$ ansible webservers -m user -a 'name=user1 password=user1' --become
Para deletar usuário
$ ansible webservers -m user -a 'name=user1 state=absent' --become
Opções:
- tornar-se - Privilégio para o superusuário para executar o comando
- estado = ausente para deletar o usuário
# 5) Módulo de Arquivo
Este módulo é usado para criar arquivos, diretórios, definir ou alterar permissões de arquivo e propriedade, etc.
Exemplo 1: Crie um arquivo
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=touch mode=600 owner=ansible group=ansible'
Exemplo 2: Crie 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 file -a 'dest=/home/ansible/vndir state=directory mode=755'
Exemplo 3: Excluir um arquivo
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=absent'
Exemplo 4: Excluir um diretório
Você pode excluir um diretório definindo o valor do parâmetro de estado para ausente . O diretório e todo o seu conteúdo serão excluídos.
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=absent'
ele suporta perguntas e respostas da entrevista com o técnico
# 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'
# 7) Gerenciamento de pacotes de software
Se você precisa instalar pacotes de software através de ‘yum’ ou ‘apt’, você pode usar os comandos abaixo.
Exemplo 1: Instale GIT
$ ansible webservers –m yum -a “name=git state=present” --become
Na janela à direita, você pode ver se o git não está instalado, ele apresentará o comando não encontrado e, uma vez instalado, mostrará a saída.
Neste comando, estado = presente irá verificar se o pacote está instalado ou não e se não estiver instalado irá 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 “name=git state=latest”
No comando acima, estado = mais recente irá atualizar o pacote apenas para a versão mais recente.
Exemplo 3: Instalar Apache Webserver
$ ansible webservers -m yum -a 'name=httpd state=present' –become
Exemplo 4: Verifique se o Maven está instalado ou não.
$ ansible webservers -m yum -a 'name=maven state=absent' –become
# 8) Módulo de Gerenciamento de Serviços
Para gerenciar serviços com ansible, usamos um módulo 'serviço'.
Iniciando um serviço
$ ansible webservers -m service -a “name=httpd state=started” --become
Parando um serviço
$ ansible webservers -m service -a “name=httpd state=stopped” --become
Reiniciando um serviço
$ ansible webservers -m service -a “name=httpd state=restarted --become
Clique aqui para obter a lista de Módulos Completos.
Resumo
Neste tutorial, apresentei os conceitos básicos e componentes do Ansible e também vimos mais sobre instalação, configuração e uso do Ansible com a ajuda dos módulos do Ansible, que é o principal componente na execução do Ansible.
Em nosso próximo tutorial, vamos nos concentrar no aspecto muito importante de escrever manuais para automação de tarefas e cofres Ansible para manter dados confidenciais em arquivos criptografados.
PREV Tutorial | PRÓXIMO Tutorial
Leitura recomendada
- Tutoriais detalhados do Eclipse para iniciantes
- Funções Ansible, integração com Jenkins no DevOps e módulos EC2
- Automação de tarefas usando Playbooks Ansible e Vaults Ansible com exemplos
- Instalação e configuração passo a passo do Appium Studio
- Introdução à linguagem de programação Java - tutorial em vídeo
- Configuração e instalação completas do WebDriver com Eclipse - Selenium Tutorial # 9
- Download e instalação do Jira com configuração da licença Jira
- Introdução ao Python e processo de instalação