Ansible - Gerenciamento de Infra Flashcards
O que é gerenciamento de Configuração?
Processo usado para manter sistemas, servidores e aplicações em um
estado DESEJADO e CONSISTENTE.
É uma forma de se certificar de que o sistema funciona CONFORME ESPERADO
mesmo com alterações/atualizações.
Benefícios do Gerenciamento de Configuração.
- Garantir que os ambientes de teste e produção correspondam, para que
os aplicativos sejam executados conforme o esperado. - Automatização de tarefas administrativas que permitem provisionar
servidores rapidamente. - Automação e Agilidade mitigam erro humano e tornam o gerenciamento do
sistema mais previsível e escalável.
Ansible
Ferramenta Open Source.
Automatiza os seguintes processos:
Provisionamento e gerenciamento de configurações
Implantação de aplicações e orquestração.
Recursos do Ansible
Gerenciamento de Configuração
Implantação de Aplicações
Provisionamento em Nuvem
Segurança e Compliance
Orquestração (de Hosts em um Inventário).
Outras ferramentas de Gerenciamento de Configuração
Puppet
Chef
CFEngine
SaltStack
Arquitetura do Ansible 1
Engine com
Inventário
Módulos
Plugins
API
Ansible Playbook
o usuário determina quais tarefas o Ansible deve executar a partir de
ma lista de inventário nos Hosts que integram esse inventário.
Networking para gerenciar recursos de rede
CMDB - Data base
Arquitetura do Ansible 2
Desenvolvida em Python
Autenticação
. User e senha
. LDAP e Kerberos
. Chaves SSH
Comunicação
. SSH (Linux)
. WinRM (Windows)
Idempotente
. Shell Script executa tudo, sempre.
. Ansible executa a mesma ação apenas uma vez.
Inventory File
Uma lista de nós gerenciados(‘target’ | um ou mais ‘hosts’)
Ansible Facts
São as propriedades dos recursos do sistema. O Inventário dos Recursos
Ansible cfg
Principal arquivo de configuração do Ansible.
Comando para visualizar as confiurações: ansible-config
Armazenado por padrão em /etc/ansible/ansible.cfg
Modules
Unidades de código que podem controlar recursos ou executar comandos.
Ad-hoc Commands
Comandos CLI usados para execução de tarefas simples.
Playbooks
É um arquivo yml com uma ou mais plays, usado para definir o estado desejado.
Variables
Armazena informações para gerir diferenças entre sistemas
Conditionals
Ação executada coom base em alguma condição
when: ansible_facts[‘os_family’] == “Debian”
Loops
Execução de uma mesma tarefa várias vezes
ROLES
Coleções totalmente customizáveis, de acordo com a necessidade.
Ansible Automatiza tarefas nos “hosts”, através de ______________
Pode ser gerido de forma ____________ ou ___________
- uma lista (inventário) Inventory File.
- manual / dinâmica.
Pode-se utilizar o nome de um __________ ou de um ___________ na linha de comando.
Host / group
ansible -i <inventory-file><host> -m ping | ansible<all> -m ping</all></host></inventory-file>
Aprofundando: Módulos
São scripts que executam tarefas específicas.
-m parâmetro para ‘module’
Qual a diferença entre os dois comandos?
ansible<host> -m ping
ansible<host> -m apt -a"name=unzip state=latest" -b</host></host>
O primeiro, utilizando o módulo ping, verifica se há comunicação com um host, sem utilizar argumentos
O segundo, utilizando o módulo apt, instala em um host gerenciadores de pacotes passando o nome e a versão da aplicação. No caso a mais recente. Além disso o “-b” inputa privilégios de administrador.
módulo apt
Gerenciador de pacotes Linux:Debian/Ubuntu
módulo user
gerencia contas de atributos de usuários. Em sistemas Windows:’win_user’
modulo file
Gerencia arquivos e diretórios(deletar, criar, adicionar/modificar permissões)
módulo service
Controla serviços em hosts remotos (start, stop, restart services)
módulo system
gerencia ações no nível do sistema, como modificar usuários e grupos,
modificar regras de iptables, starting/stopping nos serviços etc.
O que é o Ansible ad hoc?
Utiliza a ferramenta de linha de comando para execução de tarefas simples nos Hosts
no modo “ad hoc”, os comandos são executados diretamente da linha de comando, ou seja,
para situações que não necessitem de ‘Playbooks’
Sintaxe de um comando ad hoc
Binario : Ansible
Inventário/ Host/ Grupo : [pattern]
módulo: -m [module]
Argumento do módulo: -a “[module options]”