Ansible pode criar instâncias EC2?

Ansible pode criar instâncias EC2?
As chances são de que, se você está olhando para este tutorial, não precisa de uma introdução ao Ansible. No entanto, não dói fazer uma recapitulação rápida.

Ansible é a ferramenta de gerenciamento de configuração mais popular e provavelmente poderosa. Ele é construído para facilitar o gerenciamento e a configuração de hosts remotos usando um conjunto de comandos definidos como tarefas.

Funciona usando módulos desenvolvidos para tarefas específicas, como gerenciar usuários, gerenciar arquivos, instalar e remover pacotes de software e muito mais.

Este guia usará o módulo Ansible AWS para provisão e gerenciar uma instância do EC2. Começaremos com o básico da configuração de uma conta da AWS, instalando Ansible e, finalmente, cobrirá como trabalhar com o módulo Ansible AWS.

O que é uma instância do EC2?

A primeira pergunta a ser abordada é: o que é um EC2? Se você é novo na computação em nuvem e na AWS, isso pode parecer novo para você.

Amazon Elastic Compute Cloud, ou Amazon EC2 para curta.

A capacidade de aumentar os servidores remotos configurados com recursos como CPU, memória, disco, redes, sistema operacional e muito mais por alguns cliques é muito benéfico. Ele remove a necessidade de investir em hardware e elimina a preocupação em conectar os dispositivos.

As instâncias do Amazon EC2 são um dos blocos de construção mais fundamentais da AWS Cloud Computing.

Não vamos mergulhar profundamente em como funciona ou nos modelos de preços e configurações para a AWS. Verifique o site da AWS para saber mais.

Configuração do ambiente

O primeiro passo é configurar nossos ambientes. Precisaremos de uma conta da AWS, Ansible e Python para este guia.

Recomendamos usar a versão mais recente do Ansible e Python.

Instale Ansible

Este tutorial mostrará a instalação e a configuração do Ansible em um sistema baseado em Debian. Verifique nossos outros tutoriais para aprender como instalá -lo em outras distribuições.

Abra o terminal e edite seus repositórios de software.

sudo vim/etc/apt/fontes.lista

Adicione a seguinte entrada ao arquivo:

Deb http: // ppa.plataforma de lançamento.Net/Ansible/Ansible/Ubuntu Focal Main

Em seguida, execute os comandos como mostrado abaixo:

sudo apt-get install gnupg
sudo apt-key Adv-KeyServer KeyServer.Ubuntu.COM--RECV-KEYS 93C4A3FD7BB9C367
Atualização de sudo apt-get
sudo apt-get installible

Depois de instalar o Ansible, podemos definir e configurar o Python.

Instale o python3, python3-pip

Para instalar o Python3 e o PIP no Debian 11, execute os comandos como mostrado:

Atualização de sudo apt-get
sudo apt-get install python3.9 python3 -pip -y

Os comandos acima instalarão Python versão 3.9 e o PIP3 em seu sistema.

Instale o BOTO

O próximo passo é instalar o BOTO. BOTO é um poderoso pacote Python que fornece uma interface para interagir com os serviços da AWS usando Python.

Para instalar a versão mais recente do pacote BOTO usando o PIP, como mostrado no comando abaixo:

sudo pip3 install boto3

Depois que todas as ferramentas e pacotes forem instalados com sucesso, podemos criar playbooks Ansible para inicializar uma instância do EC2.

Crie Playbook Ansible EC2

Abra o terminal e crie um manual Ansible terminando com um .Extensão YML. Edite o arquivo com seu editor de texto favorito e adicione o manual, como mostrado abaixo:

---
- Nome: Ansible Criar instância EC2
Anfitriões: localhost
Gather_Facts: False
tarefas:
- Nome: Provisão uma instância do EC2
EC2:
Região: EUA-East-2
Nome da chave: Ansible-EC2-SSH-Key
Instância_type: T2.micro
Imagem: AM1-123456
Espere: sim
Contagem: 1
Grupo: Sample_servers
atribuído_public_ip: sim
Registro: Amazon_EC2
delegate_to: localhost

Crie o par de chaves ssh

Depois que o manual estiver configurado, crie um par de chaves ssh para fazer login na instância do EC2, uma vez provisionado. Certifique-se de criar uma chave com um nome semelhante ao definido no parâmetro de nome-chave no manual acima.

ssh -keygen -t rsa -b 4096 -f ~//.SSH/ANSIBLE-EC2-SSH-KEY

Adicionando acesso da AWS e chave secreta

O próximo passo é adicionar nossas credenciais da AWS ao nosso manual. Por simplicidade, adicionaremos as credenciais ao manual em formato simples.

NOTA: Não exponha seu acesso à AWS e chave secreta dentro de um manual na vida real. Considere usar variáveis ​​de ambiente ou ferramentas, como o Ansible Vault.

---
- Nome: Ansible Criar instância EC2
Anfitriões: localhost
Gather_Facts: False
tarefas:
- Nome: Provisão uma instância do EC2
EC2:
Região: EUA-East-2
Nome da chave: Ansible-EC2-SSH-Key
Instância_type: T2.micro
Imagem: AM1-123456
Espere: sim
Conde: 1The
Grupo: Sample_servers
atribuído_public_ip: sim
vpc_subnet_id: padrão
aws_access_key: ************* xxxx
aws_secret_key: *****************
Registro: Amazon_EC2
delegate_to: localhost

O acima mostra o novo manual com as credenciais da AWS expostas. Evite isso!!

Depois de ter o manual, execute -o usando o comando:

Ansible-playbook create-ec2.yml

O comando acima deve executar o manual acima e criar uma instância do EC2.

Compreendendo o manual

Vamos agora entender o manual fornecido nos exemplos acima. Observe que vamos nos concentrar apenas na parte do EC2 do manual.

  1. Região - este parâmetro define a região da AWS ao criar a instância. Você pode verificar as regiões disponíveis para usar no seguinte recurso.
  2. O nome da chave define o par de chaves ssh a ser usado na instância criada. Verifique se a chave já existe.
  3. Instance_type - define o tipo de instância para criar. Verifique o seguinte recurso para saber mais.
  4. Imagem - define o ID AMI a ser usado ao criar a instância.
  5. Espere - um valor booleano para determinar se Ansible deve esperar que a instância esteja no estado desejado antes de retornar.
  6. Contagem - o número total de instâncias para criar.
  7. Grupo - define os grupos de segurança para a instância do EC2.
  8. Atribui_public_ip - valor booleano para definir se as instâncias devem receber um endereço IP público dentro do VPC.
  9. VPC_SUBNET_ID - define o ID da sub -rede sob o qual a instância do EC2 deve ser lançada.

Usando o módulo Ansible AWS, você pode usar os argumentos acima para criar uma instância do EC2.

Fechamento

Este guia fornece um tutorial sobre a criação de uma instância do Amazon EC2 usando o módulo Ansible AWS.