Como criar um manual Ansible no Ubuntu

Como criar um manual Ansible no Ubuntu
Ansible é uma ferramenta poderosa de automação e gerenciamento remoto que permite administrar todas as suas máquinas remotas. Ansible é uma plataforma cruzada e pode funcionar na maioria das máquinas, sem requisitos para software adicional. Ansible também oferece segurança utilizando SSH e Python em máquinas remotas para executar tarefas especificadas.

Ele suporta dois métodos para gerenciar máquinas remotas: comandos ad hoc e manuais de Ansible. Comandos ad hoc são comandos brutos que você pode executar no terminal para executar uma tarefa em uma única instância.

Ansible Playbooks, por outro lado, são arquivos escritos na linguagem YAML. Eles contêm um único ou um conjunto de tarefas executadas na máquina remota. Devido à natureza estrita da YAML, os manuais de Ansible exigem atenção cuidadosa na sintaxe geral.

Este tutorial irá guiar você pelo básico de escrever manuais de Ansible e executar comandos em máquinas remotas. Para as ilustrações deste guia, configuraremos um manual simples que instala e configura o Apache WebServer.

OBSERVAÇÃO: Este tutorial não tem o objetivo de ensinar a você Ansible. Tudo o que faz é fornecer dicas e diretrizes para escrever um manual Ansible.

Pré-requisitos

Para obter o valor máximo deste guia, recomendamos seguir em frente. A seguir são coisas que você precisa.

  • Ubuntu ou uma distribuição baseada em Debian - esta é a máquina que usamos para conectar às máquinas remotas usando SSH.
  • Uma máquina remota para controlar com Ansible - recomendamos obter um sistema Linux como o Debian Server.

Depois de atender aos dois requisitos acima, podemos começar.

Como instalar Ansible no Debian/Ubuntu

O primeiro passo é garantir que tenhamos o Ansible instalado e funcionando em nossa máquina local. Eu estarei usando o Ubuntu para este tutorial.

Passo 1
Comece atualizando seu sistema usando os comandos abaixo:

Atualização de sudo apt-get
sudo apt-get dist-upgrade -y

Passo 2
Em seguida, use os comandos abaixo para instalar Ansible no Ubuntu.

sudo apt install install-properties-common
sudo add-aprop-repository-yes-update ppa: Ansible/Ansible
sudo apt installible -y

Agora que o instalamos em sua máquina local, podemos proceder para configurá -la.

Como configurar o inventário Ansible

Para gerenciar os servidores remotos usando o Ansible, você precisa dizer Ansible sobre isso. Fazemos isso criando um arquivo de inventário que contém os endereços IP ou nomes de host das máquinas remotas.

Por padrão, o arquivo de inventário host está em/etc/Ansible/hosts.

Para saber como você pode criar um arquivo de inventário de host personalizado em Ansible, considere um de nossos tutoriais.

Edite o arquivo/etc/Ansible/hosts e adicione o endereço IP da sua máquina remota, como mostrado abaixo:

No exemplo de inventário acima, criamos um grupo de servidores (Linuxhint) que gerenciaremos neste tutorial. Você pode ter outros grupos, como servidores da web, Database_servers, etc.

Como configurar o par de chaves ssh

Ansible usa SSH para fazer login nas máquinas remotas especificadas e executa as tarefas definidas no manual. Portanto, para minimizar a interação e criar um fluxo de trabalho totalmente automatizado, é melhor criar um par ssh para fazer login na máquina remota.

Passo 1
O primeiro passo é gerar um par de chaves ssh é usar a ferramenta ssh-keygen. Use o comando como:

ssh-keygen

Isso irá solicitar interativamente para você gerar um par de chaves ssh. Para simplificar, aceite os padrões e não adicione uma senha.

A saída para isso está abaixo:

Passo 2
Em seguida, precisamos copiar a chave SSH para as máquinas remotas usando a ferramenta SSH-Copy-ID. Use o comando como:

SSH-COPY-ID -I ~//.ssh/id_rsa.usuário de pub@remote_ip

A saída é como mostrado abaixo:

Para saber mais sobre como usar o comando ssh-copy-id, use isso: use o comando ssh cópia id.

Como escrever um manual Ansible

Como mencionei anteriormente, os manuais de Ansible usam YAML e, portanto, você precisa observar convenções sintáticas estritas.

Se você não estiver familiarizado com como escrever arquivos YAML, considere o tutorial neste link: Leia os valores dos arquivos YAML

Para se manter organizado, vamos criar um diretório onde vamos armazenar todos os nossos manuais.

CD ~
Mkdir Anisble-Workspace
CD Ansible-Workspace

Agora que criamos o diretório, vamos criar nosso primeiro manual Ansible (o arquivo deve terminar com .Extensão YAML.

teste Vim.Yaml

Dentro do arquivo YAML, adicione o seguinte conteúdo.

---
- Hosts: todos
tornar verdade
Torne -se_method: sudo
tarefas:
- Nome: "Mostrar interfaces de rede"
Comando: ifconfig
Registro: Detalhes
- Nome: 'Obtenha detalhes de interfaces'
depurar:
msg: "detalhes.stdout "

Salve o arquivo e execute -o no servidor usando o comando:

Teste Ansible-PlayBook.Yaml

O comando produzirá as informações sobre as interfaces de rede nas máquinas remotas, como mostrado na imagem abaixo:

Embora a saída não seja bonita e não forneça a maneira mais eficiente de coletar informações de rede usando Ansible, ele ilustra apropriadamente como podemos usar o Ansible para executar comandos em hosts remotos.

Como registrar variáveis ​​em manuais Ansible

Para criar uma variável em um manual Ansible, usamos a palavra -chave Register seguida pelo nome da variável. Você também pode usar o nome da variável como a chave e definir seu valor usando a notação do cólon.

Por exemplo, duas maneiras de registrar uma variável em Ansible.

Registro: variável1
variável2: valor

Com a variável definida, você a usa chamando seu nome dentro de um conjunto de dois aparelhos encaracolados como:

'Chamando a variável variável1 dentro de uma string'
variável2

Escalada de privilégios em Ansible

Ansible também permite que você atualize os privilégios de um usuário usando o se tornar. O método FEND é um valor booleano que especifica que as tarefas dentro do manual devem ser executadas como raiz.

Em nosso primeiro manual, definimos o TO TRUE e definimos o método de escalada de privilégios como sudo.

Apt Inside Playbooks

Ansible nos fornece maneiras de gerenciar pacotes APT no sistema baseado em Debian. Usando este método, você pode atualizar, instalar e desinstalar os pacotes usando o manual Ansible.

Considere a atualização.Arquivo YAML mostrado abaixo:

---
- Hosts: todos
Torne -se: sim
Torne -se_method: sudo
tarefas:
- Nome: "Atualizar cache e atualização completa do sistema"
APT:
update_cache: true
cache_valid_time: 3600
force_apt_get: true

Os manuais acima atualizam o cache do repositório. Isso corresponde a um comando bruto como:

Atualização de sudo apt-get

Isso pode ser incrivelmente útil ao instalar software como Apache, Nginx, etc., Em um host remoto.

Exemplo de uso de uso

Esta seção criará um manual que instala um servidor da Web Apache no sistema Debian e executa a configuração básica.

Este manual mostra várias peças em movimento de Ansible e fornecerá um bom exemplo de como os manuais de Ansible funcionam.

Comece criando o arquivo YAML.

vim config_apache.Yaml

Dentro do YAML, insira o seguinte manual.

---
- Hosts: todos
tornar verdade
Torne -se_method: sudo
tarefas:
- Nome: "Atualize pacotes e atualização"
APT:
update_cache: true
Upgrade: Dist
force_apt_get: true
- Nome: "Instale o Apache Server"
APT:
Nome: Apache2
Estado: mais recente
- Nome: "Crie raiz do documento"
arquivo:
Caminho: "/var/www/html"
Estado: Diretório
Proprietário: "www-data"
Modo: 0755
- Nome: "Ativar apache no firewall"
ufw:
Regra: permitir
Porta: 80
Proto: TCP
- Nome: "Reinicie o serviço Apache2"
serviço:
Nome: Apache2
Estado: reiniciado

Salve o arquivo e execute -o no servidor remoto usando o comando:

Ansible-playbook --User = "Ubuntu" Config_apache.Yaml

Após a execução bem -sucedida, você verá na saída como mostrado.

Confirme que o servidor está em execução usando o CURL como:

Curl 192.168.0.13

Você deve obter o código -fonte do Apache padrão (snippet mostrado abaixo).

E com isso, concluímos este tutorial.

Conclusão

É bom observar que a funcionalidade de escrever manuais dependerá fortemente das tarefas que você precisa executar. No entanto, espero que este tutorial tenha dado algumas diretrizes e dicas para criar uma de suas próprias.

Feliz automação!