54
Automate all the things AWS with Ansible Philipp Krenn@xeraa

enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

  • Upload
    others

  • View
    36

  • Download
    0

Embed Size (px)

Citation preview

Page 1: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Automate all the things

AWS with Ansible

Philipp Krenn@

xeraa

Page 2: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic
Page 3: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic
Page 4: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic
Page 5: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic
Page 6: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Infrastructure | Developer Advocate

Page 7: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

AgendaAW

S & Ansible basicsAW

S & Ansible in action

Page 8: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

While we're getting started

USB Stick

Page 9: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic
Page 10: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic
Page 11: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic
Page 12: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic
Page 13: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Once upon a time

Handcrafting

Page 14: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

It workedsort of...

Page 15: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Root Loginhttps://console.aws.am

azon.comDem

o

Page 16: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic
Page 17: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Doing it right

Page 18: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic
Page 19: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

PetsvsCattle

Page 20: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

AWS

AWS CloudForm

ationTerraform

http://charity.wtf/2016/02/23/two-weeks-with-terraform/

Page 21: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

SystemChef, Puppet, Ansible,

Saltstack,...

Page 22: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

One tool

Page 23: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

AnsibleInventoryPlaybookRole

Page 24: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Boto

Page 25: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

USB stickVirtualBox

Box

Page 26: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

VirtualBoxW

indows, Mac: USB stickLinux

https://www.virtualbox.org/wiki/Linux_Downloads

Page 27: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

BoxVagrant Ansible

Provisioner

Page 28: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

But how?Vagrant

Ansible Provisioner

Page 29: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Credentialsvagrantvagrant

Page 30: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

SSH$ ssh [email protected] -p 2222 -o PreferredAuthentications=password

Page 31: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Test$ ansible --version

Page 32: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Create a VPC in Frankfurtplaybooks/0_vpc-create.yml

inventorygroup_vars/all.yml

Page 33: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

ChangeIn group_vars/all.yml myname

Page 34: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Run the playbook$ ansible-playbook playbooks/0_vpc-

create.yml

Page 35: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

If it fails

Check your firewallCheck your tim

e

Page 36: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Security Groupsplaybooks/1_security-groups.yml

Page 37: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Run the playbook$ ansible-playbook playbooks/1_security-

groups.yml

Page 38: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Create a Key Pairplaybooks/2_generate-key.yml

Page 39: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Run the playbook$ ansible-playbook playbooks/2_generate-

key.yml

Page 40: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Create an instanceplaybooks/3_instance-create.yml and role

Page 41: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Run the playbook$ ansible-playbook playbooks/3_instance-

create.yml

Page 42: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Find the dns_name in the output

Something like ec2-52-29-131-72.eu-

central-1.compute.amazonaws.com

Page 43: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

SSH into the instancessh [email protected]

central-1.compute.amazonaws.com -i ~/.ssh/id_rsa

Page 44: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

SSH into the instance$ ssh ec2-52-29-131-72.eu-

central-1.compute.amazonaws.com -F ssh.config

Page 45: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Change the DNS in your inventory file[first]ec2-52-29-131-72.eu-central-1.compute.amazonaws.com

Page 46: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Provision your instanceplaybooks/4_instance-configure.yml

Page 47: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Run the playbook$ ansible-playbook playbooks/4_instance-

configure.yml

Page 48: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Access the instanceec2-52-29-131-72.eu-

central-1.compute.am

azonaws.com

Page 49: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Ansible-Vault$ ansible-vault

Page 50: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Check & Lintcheck-playbook.sh

Page 51: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

https://cloudcraft.co

Page 52: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic
Page 53: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

ConclusionAW

S & Ansible basicsAW

S & Ansible in action

Page 54: enn with - I T.A.K.E. (Un) confitakeunconf.com/.../Automate-all-things-AWS-with-Ansible.pdfAWS WITH ANSIBLE elastic elastic elastic iii elastic elastic elastic elastic elastic elastic

Thanks!Questions?

@xeraa