Top Banner
Automate all the things AWS with Ansible Philipp Krenn@xeraa
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

Jul 19, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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