-
Notifications
You must be signed in to change notification settings - Fork 1
Ansible
É uma ferramenta Open-Source, para orquestração e gerenciamento de configuração. Também conhecido como IaC(Infra As Code). Serve para automatização e padronização de configuração de hosts virtuais (VM e bare metal), possui uma arquitetura simples.
- Possuem 2 tipos de máquinas, Control Node e Managed Hosts, o Control é a máquina no qual configuramos o ansible e executamos remotamente todo a configuração dos hosts virtuais, já os Managed são os hosts virtuais no qual serão configurados através do Control Node;
- Na Control Machine, fica a instalação do Ansible;
- Dentro da Control Node, temos o Host Inventory no qual é um arquivo de texto com os IP’s mapeados da vm’s que desejamos configurar;
- A comunicação é efetuada via SSH;
- Não é necessário instalar agent no managed host.
Core Modules - Executam a maioria das atividades de administrador do S.O, exemplo: Criar usuários/diretórios, ativar/desativar aplicativos;
Custom Modules - São módulos que são criados por nós, desenvolvido em PY;
Playbooks - Arquivos YAML, com os passo a passo do que será configurado nos hosts virtuais;
Plugins - Extensão de funcionalidades(exemplo envio de e-mails, mensagens e etc);
Host Inventory - É o arquivo de texto com a lista de hosts/ips que serão gerenciados pelo Ansible;
Ansible Galaxy - É o local onde podemos pegar roles(tarefas) já desenvolvidas pela comunidade, semelhante ao Docker Hub.
Control Node - É acessado por um DevOps(Sysadmin) e inicializam as operações através do Control Node;
Requisitos
- Python 2.7,3.5 ou superior;
- Sistema Linux, Mac, não tem suporte a Windows, por isso não é recomendado utilizar Windows em ambiente de produção;
Requisitos
- SSH habilitado;
- Python 2.4 ou superior;
- Controle Nod: Ansible e playbooks
- APP01
- Java - OpenJDK-Notes App(REST);
- Maven
- DB01: MySQL
Servidores: control-node, app01 e db01
192.168.1.2 control-node
192.168.1.3 app01
192.168.1.4 db01
E no arquivo /etc/ansible/hosts, podemos criar grupos para os servidores:
$ cat /etc/ansible/hosts
[apps]
app01
[dbs]
db01
Correção de relação de confiança(Acesso via SSH entre os servidores)
Criar dentro da control_node uma chave SSH, com o comando $ ssh-keygen. Copiar a id_rsa.pub e inserir em arquivos de provisionamento para liberar o acesso. Caso já tenha provisionado as VMS, acessar o diretório no qual encontra o arquivo Vagrantfile e rodar $ vagrant reload - - provision. Para verificar se tudo ocorreu certo, basta rodar $ ansible -m ping all
São arquivos de configuração baseado em YAML, com sequência de passos realizados de forma remotamente pelo Ansible
Rodar um playbook
$ ansible-playbook nome.yml
Rodar um playbook sem executar
$ ansible-playbook nome.yml –check
Pratica Don’t repeat yourself(DRY)
Teste API:
INSERT: curl -H “Content-Type:application/json” –data @note.json http://api01:8080/api/notes
LIST: curl http://app01:8080/api/notes
DELETE: curl -x DELETE -H “Content-Type:application/json” http://app01:8080/api/notes/1
Visitas