Provisionando um laboratório para estudar o Ansible e outras coisas

Ansible na Prática #7 - Playbook com Módulos YUM e APT
Por: Adelmo da Silva – consultor de sistemas
Sempre que lemos publicações, como os artigos que eu fiz sobre o Ansible e Linux, livros, blogs, entre outras fontes, ficamos tentados a replicar o que foi ensinado. Mas, como podemos replicar o que lemos de forma prática? Actualmente temos recursos como VirtualBox, VMWare Player ou Workstation, Parallels, Docker, Vagrant, entre outros. Por ser mais prático e rápido, vou explicar como montar um laboratório pronto para estudar o nosso amado Ansible, mas também pode ser base para outros estudos, é claro!
 
Pegue no seu cafezinho e vamos pôr a mão na massa.
 

O Vagrant

Em poucas palavras, o Vagrant é uma ferramenta de código aberto que automatiza a configuração e a gestão de ambientes de desenvolvimento virtuais, criando máquinas virtuais (VM), provisioná-las com software e configurações. A sua base é um arquivo de configuração chamado Vagrantfile, que contém todas as informações necessárias para criar e gerir o ambiente virtual.

O Vagrant, para criar as VMs, funciona de forma similar ao Docker, baixando uma box, uma imagem com o sistema operacional, de forma básica ou completa, dependendo do pacote desejado, que será a base para as VMs. Através dessa box, podem-se criar instâncias com configurações específicas como memória, CPU, rede, hostname, entre outras. Por exemplo, posso utilizar uma box Oracle Linux 7.9 para criar 3 servidores virtuais para um laboratório, onde cada servidor terá as suas especificações próprias.

O Vagrantfile

É um arquivo de configuração que contém todas as informações necessárias para criar e gerir um ambiente virtual com o Vagrant. Especificando a configuração das VMs, o software a ser instalado e as configurações do ambiente, etc.

Abaixo, um exemplo de um Vagrantfile com as configurações de uma VM:

# -*- mode: ruby -*-

# vi: set ft=ruby :

#### Definição Geral das Máquinas Virtuais ####

VAGRANTFILE_API_VERSION = “2”

Vagrant.configure(“2”) do |config|

   config.vm.box = “geerlingguy/rockylinux8”

config.vm.synced_folder “.”, “/vagrant”, disabled: true

config.vm.provider :virtualbox do |v|

       v.memory = 4092

       v.cpus = 2

   end

#### Definições da Máquina Virtual do Servidor Ansible ####

config.vm.define “ansible” do |ansible|

ansible.vm.hostname = “ansible-srv.lan”

ansible.vm.network :private_network, ip: “169.254.94.20”

       ansible.vm.network :forwarded_port, guest: 22, host: 2222, id: ‘ssh’

       ansible.vm.provider :virtualbox do |v|

v.memory = 4096

           v.cpus = 2

       end

   end

end

Neste artigo, não vou explicar em detalhe como funciona o Vagrant, mas vou mostrar o básico.

SECÇÃO 01: estas são linhas de comentário que indicam o formato e modo de edição do arquivo. Isto não afecta a configuração do Vagrant.

# -*- mode: ruby -*-

# vi: set ft=ruby :

SECÇÃO 02: aqui, é definida a versão da API do Vagrant que o arquivo está a usar. Neste caso, versão 2.

VAGRANTFILE_API_VERSION = “2”

SECÇÃO 03: isto inicia a configuração principal do Vagrant. Tudo dentro deste bloco será parte da configuração do ambiente virtual.

Vagrant.configure(“2”) do |config|

SECÇÃO 04: define a imagem do sistema operacional (box) que será usada para criar a máquina virtual.

config.vm.box = “geerlingguy/rockylinux8”

Neste caso, está a ser usada a imagem “geerlingguy/rockylinux8”. Para saber qual é a imagem que poderá utilizar, basta ir ao site https://app.vagrantup.com/boxes/search e pesquise o nome do sistema que deseja. Por exemplo:

Provisionando um laboratório para estudar o Ansible e outras coisasClique na imagem que deseja

Provisionando um laboratório para estudar o Ansible e outras coisasBasta copiar o código da secção Vagrantfile para ter a imagem desejada.

SECÇÃO 04: desactiva a pasta sincronizada padrão entre a máquina host e a máquina virtual. Geralmente, a pasta onde o Vagrantfile está localizado é automaticamente sincronizada com a pasta “/vagrant” na máquina virtual. No entanto, aqui ela está a ser desactivada (disabled: true).

config.vm.synced_folder “.”, “/vagrant”, disabled: true

SECÇÃO 05: esta seção define configurações específicas do provedor, que neste caso é o VirtualBox. Define a quantidade de memória (4092 MB) e o número de CPUs (2) para a máquina virtual.

config.vm.provider :virtualbox do |v|

   v.memory = 4092

   v.cpus = 2

end

SECÇÃO 06: aqui, está a ser definida uma máquina virtual com o nome “ansible”. São definidas configurações específicas para esta máquina, como o nome do host, redes privadas com endereços IP específicos e um encaminhamento de porta para permitir acesso SSH (porta 22 na máquina virtual) através da porta 2222 na máquina host. Também são definidas configurações do provedor VirtualBox para esta máquina, incluindo memória e CPUs.

config.vm.define “ansible” do |ansible|

   ansible.vm.hostname = “ansible-srv.lan”

   ansible.vm.network :private_network, ip: “169.254.94.20”

   ansible.vm.network :forwarded_port, guest: 22, host: 2222, id: ‘ssh’

   ansible.vm.provider :virtualbox do |v|

       v.memory = 4096

       v.cpus = 2

   end

end

No caso da porta ssh, o guest é a VM e o host é o seu computador. Para uma conexão ssh temos duas formas: Interna e Externa:

Interna – Entre duas VMs: desta forma, você irá se conectar como de costume. Supondo que você tem a VM ansible e a VM node01 e que vá se conectar à VM node01 a partir da VM ansible. Neste caso, na VM ansible você entrará com o comando ssh vagrant@<ip-da-vm-node01> e informará a password. A porta 22 é a porta padrão do SSH e por isso não precisa de a declarar no comando. Pronto, já se estará a conectar na VM node01.

Externa – Entre a computador físico (host) e a VM (guest): se você desejar conectar-se a uma das VMs, criadas pelo Vagrant através de um MobaXterm, Putty, CMC, etc, execute o comando:

ssh 127.0.0.1:2222

Sim, 127.0.0.1, localhost. So assim se pode conectar com a VM do Vagrant. Já a porta 2222, que é definida no Vagrantfile é a porta de acesso externo à VM. Em outras palavras: o computador físico “conecta-se” ao Vagrant pela porta 2222 e o Vagrant redirecciona a conexão para a porta 22 da VM e, pronto, você está a conectar-se. Incrível, não!?

SECÇÃO 07: isto encerra a definição da configuração principal do Vagrant.

end

Principais comandos do Vagrant

Até aqui você já instalou o Vagrant, criou seu Vagrantfile (espero que sim!) e agora está na hora de colocar este camarada para trabalhar. Para manipularmos as VMs no Vagrant, trabalharemos principalmente com 5 comandos:

  • vagrant status: Verifica o status das VMs,, como:
    • not created: Existe a descrição da VM no Vagrantfile, mas ainda não foi criada.
    • running: A VM foi criada e está em funcionamento.
    • poweroff: A VM foi criada, mas está desligada.
  • vagrant up: Inicia a criação da VM ou dá boot na mesma.
  • vagrant ssh: Acede o terminal da VM.
  • vagrant reload: Reinicia a VM
  • vagrant halt: Desliga a VM.

Qualquer um dos comandos pode sede executado desta forma, como descrito, ou fazendo referência a uma, ou duas VMs,. Por exemplo:

vagrant up ansible – Isto irá iniciar, ou criar, a VM do ansible

vagrant up ansible node01 – Isto irá iniciar, ou criar, as VMs, ansible e node01.

E, assim, o mesmo poderá ser feito com os outros comandos.

Criando a nossa primeira VM com o Vagrant

Vamos criar a nossa primeira VM chamada ansible. Para isso, deve-se rodar os comandos dentro do mesmo directório onde está o Vagrantfile. Execute os comandos na sequência abaixo:

  • Criar a VM: vagrant up ansible
  • Depois de ter sido criada, vamos aceder: vagrant ssh ansible

Você estará no terminal da VM ansible com o utilizador administrativo “vagrant”, que é o utilizador padrão de VM’s criadas pelo Vagrant:

C:\~\Laboratorios_TIS\weblogic_admin> vagrant ssh weblogic à aqui estamos no cmd do Windows

Activate the web console with: systemctl enable –now cockpit.socket

Last login: Thu Aug 31 14:04:33 2023 from 10.0.2.2

[vagrant@weblogic-srv ~]$ à aqui já estamos dentro da VM

Pronto! Uma VM novinha para que você possa estudar, treinar, praticar e, até mesmo, trabalhar no seu Laptop, Desktop, etc. Agora é só criar quantas VMs, o seu computador aguentar.

Depois de criada, a VM poderá, até mesmo, aceder à Internet, pois usará seu computador como gateway.

Mas lembre-se: A VM irá consumir da memória física e do CPU do seu computador.

Agora, sim. Pode tomar aquele cafezinho e continuar a aprender… até a próxima.

 

Partilhar artigo:

Somos um portal de notícias, voltado às tecnologias de informação e inovação tecnológica. Informamos com Rigor, Objectividade e Imparcialidade. Primamos pela qualidade, oferecendo aos nossos leitores, a inclusão tecnológica e a literacia digital

+(244) 930747817

info@pti.ao | redaccao@pti.ao

Mais Lidas

Últimos Artigos

Desenvolvido Por SP Media