by Daniel Romero / @infoslack
aplicação pronta para deploy
o servidor precisa ser configurado
a empresa não tem mais um sysadmin
e você foi escolhido para configurar o servidor
stackoverflow
server fault
receitas prontas de shell script
você pede ajuda aos amigos
Criado por Michael DeHaan
O foco da ferramenta é na simplicidade
Usa YAML como linguagem de configuração
Fácil de compartilhar tarefas
Só precisa de SSH
Inventory: hosts e variáveis específicas;
Task: regras que serão aplicadas;
Modules: facilitadores para escrever tasks;
Play: um grupo de tasks;
Playbook: conjunto de plays;
Role: organização das tarefas;
[app]
app.infoslack.org
[db]
master.infoslack.org
slave.infoslack.org
[api]
api.infoslack.org
[production]
web
api
db
- apt_repository: >
repo="deb http://nginx.org/packages/ubuntu/ trusty nginx"
state=present
---
- hosts: app
vars:
port: 80
remote_user: ubuntu
tasks:
- name: "Install the latest Nginx version"
apt: >
pkg=nginx
update_cache=yes
cache_valid_time=3600
state=latest
force=yes
notify:
- restart nginx
handlers:
- name: restart nginx
service: name=nginx state=restarted
server.yml
roles/
common/
files/
templates/
tasks/
handlers/
vars/
defaults/
meta/
webservers/
files/
templates/
tasks/
handlers/
...
---
- name: app
hosts: web
sudo: yes
user: ubuntu
roles:
- common
- firewall
- nginx
- postgresql
- name: Alert
hosts: notify
tasks:
- irc: >
server=irc.freenode.net
channel="#somechannel"
msg="done!"
nick=ansibleAlert
criar uma instância
configurar o ssh
adicionar o ip para o ansible
executar o playbook
---
- hosts: local
connection: local
tasks:
- name: Provision an EC2 node
ec2:
key_name: infoslack
group: ansible
instance_type: t2.micro
image: ami-d05e75b8
ec2_url: ec2.us-east-1.amazonaws.com
region: us-east-1
vpc_subnet_id: subnet-5f698206
wait: yes
count: 1
assign_public_ip: yes
register: ec2
- infoslack/ansible-rails
- ansible-tuto
- Gerenciamento de servidores com Ansible
- Ansible - variáveis, tags e loops
- ansible-book