Como utilizar o Ansible para Automatizar a Configuração de um Servidor Ubuntu

Introdução

Automatizar processos repetitivos é uma dos papéis essências tanto para administradores de sistemas como para programadores. Existem diversas ferramentas que auxiliam nesse processo, uma delas é o Ansible, ela facilita a desenvolvimento do de configuração de servidor automatizado, estabelecendo procedimentos padrão para novos servidores e, ao mesmo tempo, reduzindo o erro humano associado a configurações manuais.

O Ansible oferece uma arquitetura simples que não requer a instalação de software especial nos nós, somente a presença do Python instalado. Ele também fornece um conjunto robusto de recursos e módulos integrados que facilitam a escrita de scripts de automação.

Antes de tudo

Para começarmos a escrever e testar as nossas automações vamos precisar de:

  • Um Nó de controle Ansible: De forma resumida é máquina com no caso deste exemplo a minha maquina, que possui um elemantary OS, variante do Ubuntu, vamos instalar o Ansible nessa máquina e configurar para acessar o Host utilizando ssh key, você pode utilizar esse tutorial para configurar a sua cloud.
  • Um ou mais Ansible Hosts : um ou mais servidores Ubuntu 20.04 remotos.

Vamos criar um novo usuario sudo para realizar as nossas operações

# adduser sammy

E escolha uma senha.

Caso você já tenha configurado o acesso direto copiando a chave ssh, você tera que fazer o mesmo processo só que agora com o novo usuario

ssh-copy-id -i ~/.ssh/absam sammy@nat-31184.nuvem-us-04.absamcloud.com -p 11484

Vamos começar

Primeiramente vamos utilizar como base o um playbook

cd ~
git clone https://github.com/do-community/ansible-playbooks.git
cd ansible-playbooks

Os arquivos de nosso interesse estão localizados dentro da setup_ubuntu1804pasta, que possui a seguinte estrutura:

setup_ubuntu1804
├── playbook.yml
└── vars
    └── default.yml

Aqui está o que cada um desses arquivos são:

  • vars/default.yml: Arquivo de variável para personalizar as configurações do manual.
  • playbook.yml: O arquivo do manual, contendo as tarefas a serem executadas no (s) servidor (es) remoto (s).


Instale o Ansible no nó de controle:

sudo apt install ansible

Instale nos HOSTS o python

sudo apt install python

Vamos criar o nosso inventario, criaremos o arquivo inventory.yml:

[webservers]
server1 ansible_host=IPDOSERVIDOR ansible_port=PORTA

Agora vamos rodar o nosso playbook:

ansible-playbook playbook.yml -i inventory.yml -u root

A saida esperada é:

Como Configurar O Acesso a Um Servidor Utilizando SSH KEY

Depois de criar um servidor você precisa de credenciais para acesso, usuário e senha. Outra forma de acessar o servidor de maneira mais simples é criando uma chave ssh ou ssh key, para acessar de forma direta o servidor, sem a necessidade de adicionar a senha todo momento que for necessário entrar na cloud. Caso você ainda não tenha um servidor, você poderá criar facilmente utilizando o nosso dashboard.

Login padrão

Servidores recém-instalados vem com o usuário padrão root ou admin esse usuários tem todos os privilegios dentro da cloud, para descobrir qual o seu caso, você poderá ver no email de confirmação como no exemplo a seguir:

No email você pode perceber que existe tanto o Usuário padrão como a senha de acesso utilizando este usuario. Para acessar a sua cloud você poderá utilizar o modo padrão, que seria algo como:

ssh root@nat-31184.nuvem-us-04.absamcloud.com -p 11484

Utilizando um terminal ou powershell, você pode acessar utilizando o comando a cima, mas ele solicitará a senha para que você consiga ter acesso ao terminal do servidor em questão.

Acesso com SSH KEY

Primeiramente vamos criar a nossa chave, por padrão, irei adicionar essa nova chave dentro da pasta .ssh que é padrão em distribuições linux.

cd ~/.ssh

Vamos Criar a nossa chave utilizando o comando:

ssh-keygen

Logo após você pode escolher o nome da sua nova chave, no meu caso eu escolhe Absam.

Agora vamos adicionar essa chave lá dentro do nosso servidor.

ssh-copy-id -i ~/.ssh/absam root@nat-31184.nuvem-us-04.absamcloud.com -p 11484 

Diga sim para opções que irão aparecer, e logo após adicione a senha de acesso.

Se você receber essa mensagem, tudo deu certo, agora você poderá acessar de forma direta o seu servidor sem ter que adicionar a senha toda vez que for tentar o acesso. Como você faria da forma normal:

ssh root@nat-31184.nuvem-us-04.absamcloud.com -p 11484

Outro detalhe é, vamos adicionar a chave publica:

cat ~/.ssh/absam.pub | ssh sammy@nat-31184.nuvem-us-04.absamcloud.com -p 11484 "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

Qual a Melhor Cloud ?

Essa é uma pergunta bastante comum, que muitos gerentes de projeto, empreendedores e programadores se fazem. Existem dezenas de opções de cloud para colocar a sua aplicação no ar e disponível.

Primeiro uma visão geral e simples do que é a Cloud, a Cloud nada mais é do que um servidor, onde os arquivos da linguagem de programação e configurações da mesma ira ficar, com a Cloud você conseguira disponibilizar a sua aplicação para qualquer pessoa que tenha acesso à internet.

Tendo isso em mente, vamos entender como escolher a melhor cloud para que você tenha alta disponibilidade e segurança.

O primeiro aspecto disponibilidade é bastante importante, pois você não quer que a sua aplicação fique fora do ar, ou que os seus clientes não consigam ter acesso ao seu serviço ou produto, por isso, procure uma cloud com redundância, pois com esse diferencial, você dificilmente a sua aplicação ficará indisponível.

Para obter segurança na sua aplicação, é preciso ter um firewall nativo da cloud, para proteção de ataques por exemplo DDOS, então busque uma nuvem que tenha essa característica.

Além das características já citadas há outras que são bastante importantes e devem ser consideradas, como se há alguma forma de suporte, redimensionamento, facilidade de realizar o Deploy, backup automático, monitoramento. Vamos tentar entender rapidamente cada um deles.

Suporte para eventuais problemas no sua Cloud, então caso a sua cloud tenha algum problema de disponibilidade ou instabilidade na rede, percebendo isso você podera ter um contato rapido e direto com a empresa e seu suporte tecnico. Isso é bem mais complicado em Cloud’s mais famosas, algumas até cobram para abrir um chat de suporte.

Redimensionamento, caso a sua aplicação cresça ou necessidade de mais hardware, isso tem que ser simples de realizar, então por meio de painel ou dashboard e alguns cliques você consiga realizar essas alterações.

Facilidade de realizar Deploy, já entrando na hospedagem que iremos recomendar, você consegue com alguns cliques criar uma infraestrutura voltada para a tecnologia que você utiliza, como Python/Django, PHP/Laravel, GO, Java, Node, dentre diversas outras.

Backup automático você poderá de forma gratuita configurar backups da sua cloud semanalmente ou mensalmente.

Monitoramento, no dashboard você poderá analisar os picos de uso de rede e hardware que aconteceram na sua cloud, e verificar a necessidade de redimensionamento da sua aplicação.

Depois de considerar todas as características e vantagens, há cloud que atende a todos esse requisitos é a Absam, nela você conseguira ter acesso a tudo isso e muito mais.

Sair da versão mobile