DevOps Tools: Instalando as ferramentas da Hashicorp usando o recurso de roles doAnsible

Opa, hoje trazendo um post mais prático, espero que curtam a leitura e a prática com a role. 🚀
Para quem não conhece a Hashicorp, hoje é uma das empresas mais famosas que fornecem produtos utilizados pela comunidade DevOps, onde possui as ferramentas, Vagrant, Packer, Terraform, Vault, Nomad e Consul.

Para conhecer cada um dos produtos e entender todo o fluxo de funcionamento, confira o link abaixo:

Vou assumir que você já esteja com o Ansible instalado em seu sistema, caso contrário, se liga nesse link:

  • Estrutura do nosso case

Essa será a estrutura do nosso case, basicamente, vamos utilizar apenas uma role e dentro dela inserir as tasks:

deploying-hashicorp-tools.yml
deploy-tools/
├── defaults
│ └── main.yml
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── README.md
├── tasks
│ └── main.yml
├── templates
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
  • Criando nossa role com Ansible Galaxy

Vamos utilizar o comando ansible-galaxy init

$ ansible-galaxy init deploy-tools
- Role deploy-tools created successfully
  • Criando nossa task

Vamos acessar a nossa role que foi criada indo até o diretório: /etc/ansible/roles/deploy-tools/tasks/ Existe um arquivo chamado main.tf, vamos usar ele.

---
- name: Installing essentials packages
apt:
name: unzip
state: present
when: ansible_os_family == "Debian"
- name: Installing essentials packages
yum:
name: unzip
state: present
when: ansible_os_family == "Centos"
- name: Installing Packer tool
unarchive:
src: https://releases.hashicorp.com/packer/1.5.5/packer_1.5.5_linux_amd64.zip
dest: /usr/local/bin
remote_src: yes
tags: binary-packer
- name: Installing Vault tool
unarchive:
src: https://releases.hashicorp.com/vault/1.4.0/vault_1.4.0_linux_amd64.zip
dest: /usr/local/bin
remote_src: yes
tags: binary-vault
- name: Installing Terraform tool
unarchive:
src: https://releases.hashicorp.com/terraform/0.12.24/terraform_0.12.24_linux_amd64.zip
dest: /usr/local/bin
remote_src: yes
tags: binary-terraform
- name: Installing Consul tool
unarchive:
src: https://releases.hashicorp.com/consul/1.7.2/consul_1.7.2_linux_amd64.zip
dest: /usr/local/bin
remote_src: yes
tags: binary-consul
- name: Installing Vagrant tool
unarchive:
src: https://releases.hashicorp.com/vagrant/2.2.7/vagrant_2.2.7_linux_amd64.zip
dest: /usr/local/bin
remote_src: yes
tags: binary-vagrant
- name: Installing Nomad tool
unarchive:
src: https://releases.hashicorp.com/nomad/0.11.0/nomad_0.11.0_linux_amd64.zip
dest: /usr/local/bin
remote_src: yes
tags: binary-nomad
...
  • Criando nosso playbook

Feito isso, vamos agora criar outro arquivo que vai chamar essa role que acabamos de criar. Vou chamar esse arquivo de deploying-hashicorp-tools.yml

Nesse arquivo, vamos setar ele da seguinte forma:

---
- hosts: local
become_user: root
become: true
roles:
- deploy-tools
...

Esse arquivo fica dentro de /etc/ansible

Para executarmos nossa role, vamos usar o seguinte comando:

$ ansible-playbook -i hosts deploying-hashicorp-tools.yml

Na saída padrão iremos ver algo similar a essa tela:

output ansible-playbook

Para checar se deu certo, podemos ir até o servidor/instância e executarmos o seguinte comando:

tools version

Pronto, as ferramentas foram instaladas e estão prontas para uso.

Espero que tenham curtido. Se você curte Terraform, dá uma lida nesse outro artigo que eu postei:

Lembrando que a trilha de IaC vai até a parte 6!#VAIIII

Senior Linux Administrator at IBM, Focused on IaC and Automation

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store