Gerenciar Pacotes no Centos 7 com Ansible
Bom dia pessoal tudo bem? Hoje vamos aprender a Gerenciar Pacotes no Centos 7 com Ansible. Quem trabalhar com Infraestrutura seja ela em nuvem ou on premise precisa conhecer esse cara ou então vai ter que rodar comandos na mão nos seus servidores.
Já falamos um pouco sobre o Ansible nesse post: Como dar os Primeiros Passos com Ansible
Como sempre, recomento você visitar a página oficial da documentação do Ansible dar uma lida com calma!
Aqui, assumimos que você já tem o Ansible instalado no seu servidor virtual e ele já está com acesso a máquina que vamos gerenciar.
Criando Playbook para Instalação
Bom, dentro de /etc/ansible vamos criar o arquivo provisionamento.yml com o seguinte conteúdo:
--- # Todo arquivo YML Começa com ---
- hosts: all # Defino os hosts que vão rodar os comandos de Instação
tasks: # Defino uma task
- name: 'Instala PHP' # Nomeio a tasks
yum: # Chamo o modulo yum para instalação de pacotes no Centos
name: php # Falo qual pacote precisa ser Instalado
state: latest # Defino que a versão do pacote é a latest
become: yes # Falo que para executar esse comando ele precisar se root
- name: 'Instala Apache Httpd'
yum:
name: httpd
state: latest
become: yes
- name: 'Instalando MySQL'
yum:
name: php-mysql
state: latest
become: yes
Executando nosso Playbook
Dessa forma, ao executar o comando ansible-playbook você vai ter o seguinte resultado:
Os resultados em verde, quer dizer que o Ansible foi lá para instalar o pacote do PHP e do Apache2 mas não executou nada pois ele viu que a ultima versão do pacote está instalada.
Já no modulo do MySQL, ele deu status “changed”. Isso quer dizer que ele conseguiu alterar o estado instalando o pacote do do MySQL.
Como podemos melhorar nosso arquivo?
Podemos melhor um pouco mais nosso arquivo do Ansible, vamos fazer um loop para não precisar digitar tanto código:
---
- hosts: all
tasks:
- name: 'Instala Pacotes de Dependencia do Centos'
yum:
name: "{{ item }}"
state: latest
become: yes
with_items:
- php
- httpd
- php-mysql
Dessa forma, eu uso a variável “item” ao invés nome do pacote para fazer o loop de todos os pacotes que quero instalar no meu sistema operacional e o resultado é o mesmo. Dessa forma vou reduzir drasticamente a quantidade de código que eu vou precisar escrever!
Espero que você tenha entendido e eu tenho ajudado você a Gerenciar Pacotes no Centos 7 com Ansible!