SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
Ansible 101
Jeff Geerling
Ansible St. Louis Meetup - July 8, 2015
Who am I?
• Jeff Geerling (geerlingguy)
• Technical Architect, Acquia
• Owner, Midwestern Mac LLC
• Dev (mainly), Ops
Ansible for DevOps
• On LeanPub
• Nearly complete!
• 50% off: http://bit.ly/ansible-stl
My Story
• First 'real' server build: a 486 PC, RedHat Linux 6
Gateway 2000 4DX2-66v
RedHat Linux 6.x
Today
Midwestern Mac Server Check.in Hosted Apache Solr
Personal
= 50+ prod servers,

one very part-time sysadmin
• “Configuration management for humans.”
• Uses SSH
• Secure, fast, simple
• 300+ built-in modules
• Don't need configuration management to manage
your conguration management.
• “Configuration management for humans.”
• Uses SSH
• Secure, fast, simple
• 300+ built-in modules
• Don't need configuration management to manage
your conguration management.
	
  ___________	
  	
  
<	
  And	
  cows!	
  >	
  
	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ^__^	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (oo)_______	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (__)	
  	
  	
  	
  	
  	
  	
  )/	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ||-­‐-­‐-­‐-­‐w	
  |	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ||	
  	
  	
  	
  	
  ||
Installation
• Python pip: sudo pip install ansible
• Mac: brew install ansible
• RHEL/CentOS/Fedora: sudo yum install ansible
• Deb/Ubuntu:

sudo apt-add-repository ppa:ansible/ansible

sudo apt-get update

sudo apt-get install ansible
Ansible 101
1. Inventory: Describe your infrastructure
2. Ad-Hoc commands: Run one-off tasks
3. Playbooks: "Infrastructure as code"
4. Roles: Encapsulate conguration
http://robmyers.org/cc-ironies/no_flash_photography_sign/
Please help me avoid the

Xenon Death Flash
• 6-node Raspberry Pi cluster
CPU 24 cores / 5.4 GHz
RAM 6 GB
Storage 96 GB microSD
Network 10/100 over Gig
https://github.com/geerlingguy/raspberry-pi-dramble
The #Dramble
Inventory
[balancer]
10.0.1.60
[webservers]
10.0.1.61
10.0.1.62
10.0.1.63
10.0.1.64
[database]
10.0.1.65
[dramble:children]
balancer
webservers
database
[dramble:vars]
ansible_ssh_user=pi
• INI-syntax (can also use YAML and dynamic sources)
• Default location: /etc/ansible/hosts (can override with -i)
• Check connectivity (always a good first step!)

$ ansible all -m ping
• Have fun with RGB LEDs!

$ ansible webservers -a "rgb red" -s
Ad-Hoc Commands
• Check connectivity (always a good first step!)

$ ansible all -m ping
• Have fun with RGB LEDs!

$ ansible webservers -a "rgb red" -s
Ad-Hoc Commands
	
  ________	
  
<	
  Shiny!	
  >	
  
	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ^__^	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (oo)_______	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (__)	
  	
  	
  	
  	
  	
  	
  )/	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ||-­‐-­‐-­‐-­‐w	
  |	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ||	
  	
  	
  	
  	
  ||
Demo
# Test connectivity.
ansible all -m ping
# Raspberry Pi RGB LEDs.
ansible all -a "rgb green" -s
ansible all -a "rgb blue" -s --forks=1
ansible all -a "rgb green" -s --forks=2
ansible all -a "colors 255 255 255" -s
# More useful commands.
ansible all -m setup
ansible all -a "free -m"
ansible all -m shell -a "ifconfig | grep inet" -s
ansible all -m user -a "name=pgibbons state=absent remove=yes" -s
ansible webservers -m service -a "name=nginx state=restarted" -s --forks=2
Download playbook examples
Playbooks
• Ad-Hoc commands don't solve the snowflake
problem
• "infrastructure as code"
• Simple YAML files
• Run with: ansible-playbook
Unique, by Pen Waggener
Playbooks
#!/bin/bash
# Shell script to install/configure Apache.
# Install Apache.
yum install --quiet -y httpd httpd-devel
# Copy configuration files.
cp /path/to/config/httpd.conf 
/etc/httpd/conf/httpd.conf
cp /path/to/config/httpd-vhosts.conf 
/etc/httpd/conf/httpd-vhosts.conf
# Start Apache.
service httpd start
# Set Apache to run on startup.
chkconfig httpd on
Playbooks
#!/bin/bash
# Shell script to install/configure Apache.
# Install Apache.
yum install --quiet -y httpd httpd-devel
# Copy configuration files.
cp /path/to/config/httpd.conf 
/etc/httpd/conf/httpd.conf
cp /path/to/config/httpd-vhosts.conf 
/etc/httpd/conf/httpd-vhosts.conf
# Start Apache.
service httpd start
# Set Apache to run on startup.
chkconfig httpd on
---
# Playbook to install/configure Apache.
hosts: all
tasks:
- name: Install Apache.
yum: name={{ item }} state=present
with_items:
- httpd
- httpd-devel
- name: Copy configuration files.
copy: "src={{ item.src }} dest={{ item.dest }}"
with_items:
- { src: "/path/to/config/httpd.conf",
dest: "/etc/httpd/conf/httpd.conf" }
- { src: "/path/to/config/httpd-vhosts.conf",
dest: "/etc/httpd/conf/httpd-vhosts.conf" }
- name: Ensure Apache is started and runs on startup.
service: name=httpd state=started enabled=yes
Demo
# Run just the users playbook.
ansible-playbook users.ml
# Run the users playbook again, to demonstrate idempotence.
ansible-playbook users.yml
# Run the web playbook (twice, again).
ansible-playbook web.yml
ansible-playbook web.yml
# Run the main playbook that includes users.yml and web.yml
ansible-playbook main.yml
ansible-playbook main.yml
Download playbook examples
Roles
• Like: Libraries, packages, config bundles
• Encapsulate configuration in smaller, reusable
chunks
• 4,000+ contributed roles on Ansible Galaxy
• To create: ansible-galaxy init [role-name]
Demo
Role folder structure:
rolename/
defaults/
main.yml <-- Most variables go here, so you can override if needed.
handlers/
main.yml
meta/
main.yml
tasks/
main.yml
tests/ <-- See Testing Ansible Roles with Travis CI on GitHub
vars/
main.yml <-- Special and static variables go here.
Download playbook examples
More Ansible
• Ansible Tower, Jenkins integration, CI
• Docker integration
• AWS, DigitalOcean, Rackspace, Softlayer, Linode, etc.
• Notifications
• Rolling updates
• Ansible Vault
• etc...
More Ansible
• Ansible Tower, Jenkins integration, CI
• Docker integration
• AWS, DigitalOcean, Rackspace, Softlayer, Linode, etc.
• Notifications
• Rolling updates
• Ansible Vault
• etc...
	
  ______________________________	
  
<	
  Follow	
  @AnsiBull	
  on	
  Twitter!	
  >	
  
	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ^__^	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (oo)_______	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (__)	
  	
  	
  	
  	
  	
  	
  )/	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ||-­‐-­‐-­‐-­‐w	
  |	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ||	
  	
  	
  	
  	
  ||
More Resources
• Ansible documentation
• Ansible Vagrant examples
• Ansible for DevOps
• 50% off: http://bit.ly/ansible-stl
• Raspberry Pi Dramble
• Example playbook from this presentation

Weitere ähnliche Inhalte

Was ist angesagt?

What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
Simplilearn
 

Was ist angesagt? (20)

Network Automation with Ansible
Network Automation with AnsibleNetwork Automation with Ansible
Network Automation with Ansible
 
DevOps for Humans - Ansible for Drupal Deployment Victory!
DevOps for Humans - Ansible for Drupal Deployment Victory!DevOps for Humans - Ansible for Drupal Deployment Victory!
DevOps for Humans - Ansible for Drupal Deployment Victory!
 
Ansible 2 and Ansible Galaxy 2
Ansible 2 and Ansible Galaxy 2Ansible 2 and Ansible Galaxy 2
Ansible 2 and Ansible Galaxy 2
 
Introduction to ansible
Introduction to ansibleIntroduction to ansible
Introduction to ansible
 
Ansible Case Studies
Ansible Case StudiesAnsible Case Studies
Ansible Case Studies
 
Ansible + WordPress
Ansible + WordPressAnsible + WordPress
Ansible + WordPress
 
Ansible and AWS
Ansible and AWSAnsible and AWS
Ansible and AWS
 
How Ansible Makes Automation Easy
How Ansible Makes Automation EasyHow Ansible Makes Automation Easy
How Ansible Makes Automation Easy
 
Network automation (NetDevOps) with Ansible
Network automation (NetDevOps) with AnsibleNetwork automation (NetDevOps) with Ansible
Network automation (NetDevOps) with Ansible
 
A quick intro to Ansible
A quick intro to AnsibleA quick intro to Ansible
A quick intro to Ansible
 
Ansible Automation Best Practices From Startups to Enterprises - Minnebar 12
Ansible Automation Best Practices From Startups to Enterprises - Minnebar 12Ansible Automation Best Practices From Startups to Enterprises - Minnebar 12
Ansible Automation Best Practices From Startups to Enterprises - Minnebar 12
 
Hands On Introduction To Ansible Configuration Management With Ansible Comple...
Hands On Introduction To Ansible Configuration Management With Ansible Comple...Hands On Introduction To Ansible Configuration Management With Ansible Comple...
Hands On Introduction To Ansible Configuration Management With Ansible Comple...
 
Using Ansible at Scale to Manage a Public Cloud
Using Ansible at Scale to Manage a Public CloudUsing Ansible at Scale to Manage a Public Cloud
Using Ansible at Scale to Manage a Public Cloud
 
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
 
Ansible for large scale deployment
Ansible for large scale deploymentAnsible for large scale deployment
Ansible for large scale deployment
 
Introduction to ansible galaxy
Introduction to ansible galaxyIntroduction to ansible galaxy
Introduction to ansible galaxy
 
Hands on ansible
Hands on ansibleHands on ansible
Hands on ansible
 
Continuous Testing with Molecule, Ansible, and GitHub Actions
Continuous Testing with Molecule, Ansible, and GitHub ActionsContinuous Testing with Molecule, Ansible, and GitHub Actions
Continuous Testing with Molecule, Ansible, and GitHub Actions
 
Ansible intro
Ansible introAnsible intro
Ansible intro
 
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
 

Andere mochten auch

Andere mochten auch (11)

ProTips for Staying Sane while Working from Home
ProTips for Staying Sane while Working from Home ProTips for Staying Sane while Working from Home
ProTips for Staying Sane while Working from Home
 
Ansible for Drupal infrastructure and deployments
Ansible for Drupal infrastructure and deploymentsAnsible for Drupal infrastructure and deployments
Ansible for Drupal infrastructure and deployments
 
Ansible 101
Ansible 101Ansible 101
Ansible 101
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
 
Drupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionDrupal 8 - A Brief Introduction
Drupal 8 - A Brief Introduction
 
Cyansible
CyansibleCyansible
Cyansible
 
Automated Deployments with Ansible
Automated Deployments with AnsibleAutomated Deployments with Ansible
Automated Deployments with Ansible
 
V2 and beyond
V2 and beyondV2 and beyond
V2 and beyond
 
AnsibleBuilding a Docker-ized Microservice In Node, Using Ansible - AnsibleF...
AnsibleBuilding a Docker-ized Microservice  In Node, Using Ansible - AnsibleF...AnsibleBuilding a Docker-ized Microservice  In Node, Using Ansible - AnsibleF...
AnsibleBuilding a Docker-ized Microservice In Node, Using Ansible - AnsibleF...
 
Ansible tips & tricks
Ansible tips & tricksAnsible tips & tricks
Ansible tips & tricks
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 

Ähnlich wie Ansible 101 - Presentation at Ansible STL Meetup

Ähnlich wie Ansible 101 - Presentation at Ansible STL Meetup (20)

Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)
 
Ansible @ WebElement 2015
Ansible @ WebElement 2015Ansible @ WebElement 2015
Ansible @ WebElement 2015
 
Automating with Ansible
Automating with AnsibleAutomating with Ansible
Automating with Ansible
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with Ansible
 
No Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with AnsibleNo Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with Ansible
 
Go Faster with Ansible (AWS meetup)
Go Faster with Ansible (AWS meetup)Go Faster with Ansible (AWS meetup)
Go Faster with Ansible (AWS meetup)
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansible
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. Ansible
 
A tour of Ansible
A tour of AnsibleA tour of Ansible
A tour of Ansible
 
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
 
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.Ansible 2.0 - How to use Ansible to automate your applications in AWS.
Ansible 2.0 - How to use Ansible to automate your applications in AWS.
 
Ansible on aws - Pop-up Loft Tel Aviv
Ansible on aws - Pop-up Loft Tel AvivAnsible on aws - Pop-up Loft Tel Aviv
Ansible on aws - Pop-up Loft Tel Aviv
 
20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw
 
Ansible is the simplest way to automate. MoldCamp, 2015
Ansible is the simplest way to automate. MoldCamp, 2015Ansible is the simplest way to automate. MoldCamp, 2015
Ansible is the simplest way to automate. MoldCamp, 2015
 
Ansible, best practices
Ansible, best practicesAnsible, best practices
Ansible, best practices
 
Introduction to Ansible - Jan 28 - Austin MeetUp
Introduction to Ansible - Jan 28 - Austin MeetUpIntroduction to Ansible - Jan 28 - Austin MeetUp
Introduction to Ansible - Jan 28 - Austin MeetUp
 
Ansible Devops North East - slides
Ansible Devops North East - slides Ansible Devops North East - slides
Ansible Devops North East - slides
 
Ansible roles done right
Ansible roles done rightAnsible roles done right
Ansible roles done right
 
DevOps for database
DevOps for databaseDevOps for database
DevOps for database
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 

Mehr von Jeff Geerling

Mehr von Jeff Geerling (12)

2020 Drupal Local Development Tools Survey - CMS Philly
2020 Drupal Local Development Tools Survey - CMS Philly2020 Drupal Local Development Tools Survey - CMS Philly
2020 Drupal Local Development Tools Survey - CMS Philly
 
There's a role for that! (AnsibleFest 2019)
There's a role for that! (AnsibleFest 2019)There's a role for that! (AnsibleFest 2019)
There's a role for that! (AnsibleFest 2019)
 
Everything I know about Kubernetes I learned from a Raspberry Pi cluster
Everything I know about Kubernetes I learned from a Raspberry Pi clusterEverything I know about Kubernetes I learned from a Raspberry Pi cluster
Everything I know about Kubernetes I learned from a Raspberry Pi cluster
 
Real World DevOps - Jeff Geerling's NEDCamp 2018 Keynote
Real World DevOps - Jeff Geerling's NEDCamp 2018 KeynoteReal World DevOps - Jeff Geerling's NEDCamp 2018 Keynote
Real World DevOps - Jeff Geerling's NEDCamp 2018 Keynote
 
Make your Ansible playbooks maintainable, flexible, and scalable
Make your Ansible playbooks maintainable, flexible, and scalableMake your Ansible playbooks maintainable, flexible, and scalable
Make your Ansible playbooks maintainable, flexible, and scalable
 
Ansible and Kubernetes
Ansible and KubernetesAnsible and Kubernetes
Ansible and Kubernetes
 
HTTPS and Ansible
HTTPS and AnsibleHTTPS and Ansible
HTTPS and Ansible
 
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
 
Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017
 
Server Check.in case study - Drupal and Node.js
Server Check.in case study - Drupal and Node.jsServer Check.in case study - Drupal and Node.js
Server Check.in case study - Drupal and Node.js
 
Florissant TIF - Cross Keys Redevelopment
Florissant TIF - Cross Keys RedevelopmentFlorissant TIF - Cross Keys Redevelopment
Florissant TIF - Cross Keys Redevelopment
 
How to Build a Drupal Module
How to Build a Drupal ModuleHow to Build a Drupal Module
How to Build a Drupal Module
 

KĂźrzlich hochgeladen

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

KĂźrzlich hochgeladen (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 

Ansible 101 - Presentation at Ansible STL Meetup

  • 1. Ansible 101 Jeff Geerling Ansible St. Louis Meetup - July 8, 2015
  • 2. Who am I? • Jeff Geerling (geerlingguy) • Technical Architect, Acquia • Owner, Midwestern Mac LLC • Dev (mainly), Ops
  • 3. Ansible for DevOps • On LeanPub • Nearly complete! • 50% off: http://bit.ly/ansible-stl
  • 4. My Story • First 'real' server build: a 486 PC, RedHat Linux 6 Gateway 2000 4DX2-66v RedHat Linux 6.x
  • 5. Today Midwestern Mac Server Check.in Hosted Apache Solr Personal = 50+ prod servers,
 one very part-time sysadmin
  • 6. • “Conguration management for humans.” • Uses SSH • Secure, fast, simple • 300+ built-in modules • Don't need conguration management to manage your conguration management.
  • 7. • “Conguration management for humans.” • Uses SSH • Secure, fast, simple • 300+ built-in modules • Don't need conguration management to manage your conguration management.  ___________     <  And  cows!  >    -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐                        ^__^                        (oo)_______                          (__)              )/                                  ||-­‐-­‐-­‐-­‐w  |                                  ||          ||
  • 8. Installation • Python pip: sudo pip install ansible • Mac: brew install ansible • RHEL/CentOS/Fedora: sudo yum install ansible • Deb/Ubuntu:
 sudo apt-add-repository ppa:ansible/ansible
 sudo apt-get update
 sudo apt-get install ansible
  • 9. Ansible 101 1. Inventory: Describe your infrastructure 2. Ad-Hoc commands: Run one-off tasks 3. Playbooks: "Infrastructure as code" 4. Roles: Encapsulate conguration
  • 11. • 6-node Raspberry Pi cluster CPU 24 cores / 5.4 GHz RAM 6 GB Storage 96 GB microSD Network 10/100 over Gig https://github.com/geerlingguy/raspberry-pi-dramble The #Dramble
  • 13. • Check connectivity (always a good rst step!)
 $ ansible all -m ping • Have fun with RGB LEDs!
 $ ansible webservers -a "rgb red" -s Ad-Hoc Commands
  • 14. • Check connectivity (always a good rst step!)
 $ ansible all -m ping • Have fun with RGB LEDs!
 $ ansible webservers -a "rgb red" -s Ad-Hoc Commands  ________   <  Shiny!  >    -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐                        ^__^                        (oo)_______                          (__)              )/                                  ||-­‐-­‐-­‐-­‐w  |                                  ||          ||
  • 15. Demo # Test connectivity. ansible all -m ping # Raspberry Pi RGB LEDs. ansible all -a "rgb green" -s ansible all -a "rgb blue" -s --forks=1 ansible all -a "rgb green" -s --forks=2 ansible all -a "colors 255 255 255" -s # More useful commands. ansible all -m setup ansible all -a "free -m" ansible all -m shell -a "ifconfig | grep inet" -s ansible all -m user -a "name=pgibbons state=absent remove=yes" -s ansible webservers -m service -a "name=nginx state=restarted" -s --forks=2 Download playbook examples
  • 16. Playbooks • Ad-Hoc commands don't solve the snowflake problem • "infrastructure as code" • Simple YAML les • Run with: ansible-playbook Unique, by Pen Waggener
  • 17. Playbooks #!/bin/bash # Shell script to install/configure Apache. # Install Apache. yum install --quiet -y httpd httpd-devel # Copy configuration files. cp /path/to/config/httpd.conf /etc/httpd/conf/httpd.conf cp /path/to/config/httpd-vhosts.conf /etc/httpd/conf/httpd-vhosts.conf # Start Apache. service httpd start # Set Apache to run on startup. chkconfig httpd on
  • 18. Playbooks #!/bin/bash # Shell script to install/configure Apache. # Install Apache. yum install --quiet -y httpd httpd-devel # Copy configuration files. cp /path/to/config/httpd.conf /etc/httpd/conf/httpd.conf cp /path/to/config/httpd-vhosts.conf /etc/httpd/conf/httpd-vhosts.conf # Start Apache. service httpd start # Set Apache to run on startup. chkconfig httpd on --- # Playbook to install/configure Apache. hosts: all tasks: - name: Install Apache. yum: name={{ item }} state=present with_items: - httpd - httpd-devel - name: Copy configuration files. copy: "src={{ item.src }} dest={{ item.dest }}" with_items: - { src: "/path/to/config/httpd.conf", dest: "/etc/httpd/conf/httpd.conf" } - { src: "/path/to/config/httpd-vhosts.conf", dest: "/etc/httpd/conf/httpd-vhosts.conf" } - name: Ensure Apache is started and runs on startup. service: name=httpd state=started enabled=yes
  • 19. Demo # Run just the users playbook. ansible-playbook users.ml # Run the users playbook again, to demonstrate idempotence. ansible-playbook users.yml # Run the web playbook (twice, again). ansible-playbook web.yml ansible-playbook web.yml # Run the main playbook that includes users.yml and web.yml ansible-playbook main.yml ansible-playbook main.yml Download playbook examples
  • 20. Roles • Like: Libraries, packages, cong bundles • Encapsulate conguration in smaller, reusable chunks • 4,000+ contributed roles on Ansible Galaxy • To create: ansible-galaxy init [role-name]
  • 21. Demo Role folder structure: rolename/ defaults/ main.yml <-- Most variables go here, so you can override if needed. handlers/ main.yml meta/ main.yml tasks/ main.yml tests/ <-- See Testing Ansible Roles with Travis CI on GitHub vars/ main.yml <-- Special and static variables go here. Download playbook examples
  • 22. More Ansible • Ansible Tower, Jenkins integration, CI • Docker integration • AWS, DigitalOcean, Rackspace, Softlayer, Linode, etc. • Notications • Rolling updates • Ansible Vault • etc...
  • 23. More Ansible • Ansible Tower, Jenkins integration, CI • Docker integration • AWS, DigitalOcean, Rackspace, Softlayer, Linode, etc. • Notications • Rolling updates • Ansible Vault • etc...  ______________________________   <  Follow  @AnsiBull  on  Twitter!  >    -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐                        ^__^                        (oo)_______                          (__)              )/                                  ||-­‐-­‐-­‐-­‐w  |                                  ||          ||
  • 24. More Resources • Ansible documentation • Ansible Vagrant examples • Ansible for DevOps • 50% off: http://bit.ly/ansible-stl • Raspberry Pi Dramble • Example playbook from this presentation