SlideShare a Scribd company logo
1 of 41
1 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
System Architects with DevOps / Security Group Meetup, Vienna
18th December 2014
Martin Etmajer, @metmajer, Technology Strategist @ Dynatrace
Introduction to
Automated Deployments with Ansible
2 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
• Automated Deployments in Continuous Delivery
• Agent-based vs. Agentless Solution Architectures
• Introduction to Ansible
Agenda
3 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Automated Deployments
in Continuous Delivery
4 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
feature cycle time time
Customer Users
Utmost Goal: Minimize Cycle Time
5 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
feature cycle time time
Customer Users
Utmost Goal: Minimize Cycle Time
minimize
6 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
feature cycle time time
Customer
Utmost Goal: Minimize Cycle Time
This is when you
create value!
minimize
7 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
feature cycle time time
Customer
Utmost Goal: Minimize Cycle Time
You
This is when you
create value!
minimize
8 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
The definition of a deployment pipeline,
which is at the heart of Continuous Delivery:
“A deployment pipeline is, in essence, an automated implementation
of your application’s build, deploy, test and release process.”
Jez Humble & Dave Farley in Continuous Delivery
“Use machines for what they’re good at, use people for what they’re good at.”
Dave Farley at PIPELINE Conference 2014 @vimeo.com/96173993
The Role of Automation in Continuous Delivery
9 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Manual deployments:
• are slow and prone to human errors
• are neither repeatable nor reliable
• are not consistent across environments
• are done by a few experts: hinders collaboration
• require extensive documentation: often outdated
The Problem with Manual Deployments
We are just not good at it!
10 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Agent-based vs. Agentless
Solution Architectures
11 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Agent-Based Solutions
12 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Agent-Based Deployments (Chef, Puppet)
13 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Agent-Based Deployments (Chef, Puppet)
14 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Agent-Based Deployments (Chef, Puppet)
15 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
» Can be used in client-server or client-only modes
» Client must be installed on each host to be provisioned
» Clients have dependencies
» Not laid out for server orchestration by design
(do something on server A, then on server B, etc.)
» Chef and Puppet are widely considered to have a large entrance
barrier and are complex to use
Agent-Based Deployments (Chef, Puppet)
16 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Agentless Solutions
17 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Agentless Deployments (Ansible)
18 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Agentless Deployments (Ansible)
19 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Agentless Deployments (Ansible)
20 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Agentless Deployments (Ansible)
21 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible
22 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
» Written and extensible in Python
» Human- and machine-readable configuration (YAML)
» No boot-strapping required on deployment hosts (SSH)
» Statements are executed in the order they were specified
» Simple, easy to ramp up with (think of new employees!)
» Clear and concise documentation
Ansible
23 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Concepts:
Ad-hoc Commands
24 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Concepts: Ad-hoc Commands
ansible [-i inventory] <host-pattern> [options]
Examples?
» ansible localhost -m copy –a ‘src=/usr/bin/a dest=/usr/bin/b’
» ansible webserver –a ‘/sbin/reboot’ –f 3
–u deploy ––sudo ––ask–sudo–pass
Module Arguments
25 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Concepts: Ad-hoc Commands
ansible [-i inventory] <host-pattern> [options]
Examples?
» ansible localhost -m copy –a ‘src=/usr/bin/a dest=/usr/bin/b’
» ansible webserver –a ‘/sbin/reboot’ –f 3
–u deploy ––sudo ––ask–sudo–pass
Processes
User Use sudo
Ask password
interactively
26 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Concepts:
Inventories
27 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Concepts: Inventories
» Ansible provisions groups of servers at once
» Groups and hosts are stored in inventory files
» An inventory file is expressed in the INI format
28 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Concepts: Inventories
# production.ini
[web]
web[0-1].example.com
[frontends]
frontend.example.com
[backends]
backend.example.com
Group
Host
29 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Concepts:
Playbooks
30 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Concepts: Playbooks
ansible-playbook [–i <inventory>] <playbook>
Playbooks
» describe policies your remote systems shall enforce
» consist of variables, tasks, handlers, files and roles
» are expressed in the YAML format
31 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
--- # webservers.yml
- hosts: web
vars_files:
- variables.yml
handlers:
- name: reload apache2
service: name=apache2 state=reloaded
tasks:
- name: Install Apache HTTP Server
apt: name=apache2 update_cache=yes
- name: Install Apache Modules
apache2_module: name={{ item }} state=present
with_items:
- proxy
- proxy_httpd
notify: reload apache2
Ansible Concepts: Playbooks
Play
Module
32 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
...
- name: Install Apache Configuration
template: >
src=apache-config.conf.j2
dest={{ apache_conf_home }}/myapp
mode=0644
notify: reload apache2
remote_user: deploy
sudo: yes
Ansible Concepts: Playbooks
33 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
--- # variables.yml
apache_conf_home: /etc/apache2/conf.d
Ansible Concepts: Playbooks
34 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
--- # playbook.yml
- include: appservers.yml
- include: dbservers.yml
- include: webservers.yml
Ansible Concepts: Playbooks
Includes multiple plays
into a single playbook
35 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Concepts: Playbooks
ansible-playbook –i production.ini webservers.yml
PLAY [web]
******************************************************
TASK: [Install Apache HTTP Server]
************************
changed: [web0.example.com]
changed: [web1.example.com]
...
PLAY RECAP
************************************************************************
web0.example.com : ok=3 changed=3 unreachable=0 failed=0
web1.example.com : ok=3 changed=3 unreachable=0 failed=0
Run!
36 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Modules Library
37 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Modules Library
» Cloud: AWS, Azure, DigitalOcean, Docker, Google, OpenStack,...
» Database: MySQL, Postgresql,...
» Packaging: apt, yum, easy_install, npm, homebrew, zypper,...
» Source Control: git, subversion, mercurial,...
» Web Infrastructure: apache2_module, jira,...
» System: mount, selinux, ufw, user,...
38 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Concepts: Roles (Outlook)
39 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Concepts: Playbooks » Roles
Roles
» Are the preferred means to organize and reuse related tasks
» Build on the idea of include files to form clean abstractions
» Can be shared and found on Ansible Galaxy
40 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Ansible Concepts: Playbooks » Roles
Reusing Roles in a Play
--- # webservers.yml
- hosts: web
roles:
- { role: common }
- { role: apache2 }
remote_user: deploy
sudo: yes
41 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace

More Related Content

What's hot

Introduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpecIntroduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpecNathen Harvey
 
Michelin Starred Cooking with Chef
Michelin Starred Cooking with ChefMichelin Starred Cooking with Chef
Michelin Starred Cooking with ChefJon Cowie
 
Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecNathen Harvey
 
Automated Infrastructure Testing
Automated Infrastructure TestingAutomated Infrastructure Testing
Automated Infrastructure TestingRanjib Dey
 
Bay Area Chef Meetup February
Bay Area Chef Meetup FebruaryBay Area Chef Meetup February
Bay Area Chef Meetup FebruaryJessica DeVita
 
Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecNathen Harvey
 
DevTernity - DevOps with smell
DevTernity - DevOps with smellDevTernity - DevOps with smell
DevTernity - DevOps with smellAntons Kranga
 
Hadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopHadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopWisely chen
 
InSpec at DevOps ATL Meetup January 22, 2020
InSpec at DevOps ATL Meetup January 22, 2020InSpec at DevOps ATL Meetup January 22, 2020
InSpec at DevOps ATL Meetup January 22, 2020Mandi Walls
 
Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Eugenio Minardi
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefNathen Harvey
 
Building and Deploying MediaSalsa, a drupal-based DAM as a Service
Building and Deploying MediaSalsa, a drupal-based DAM as a ServiceBuilding and Deploying MediaSalsa, a drupal-based DAM as a Service
Building and Deploying MediaSalsa, a drupal-based DAM as a ServiceJulien Pivotto
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsMandi Walls
 
Prescriptive System Security with InSpec
Prescriptive System Security with InSpecPrescriptive System Security with InSpec
Prescriptive System Security with InSpecAll Things Open
 
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your DevelopmentRise of the Machines - Automate your Development
Rise of the Machines - Automate your DevelopmentSven Peters
 
Puppet Release Workflows at Jive Software
Puppet Release Workflows at Jive SoftwarePuppet Release Workflows at Jive Software
Puppet Release Workflows at Jive SoftwarePuppet
 
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015Simon McCartney
 
Code Reviews vs. Pull Requests
Code Reviews vs. Pull RequestsCode Reviews vs. Pull Requests
Code Reviews vs. Pull RequestsAtlassian
 
Webinar slides: Replication Topology Changes for MySQL and MariaDB
Webinar slides: Replication Topology Changes for MySQL and MariaDBWebinar slides: Replication Topology Changes for MySQL and MariaDB
Webinar slides: Replication Topology Changes for MySQL and MariaDBSeveralnines
 

What's hot (20)

Introduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpecIntroduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpec
 
Michelin Starred Cooking with Chef
Michelin Starred Cooking with ChefMichelin Starred Cooking with Chef
Michelin Starred Cooking with Chef
 
Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpec
 
Automated Infrastructure Testing
Automated Infrastructure TestingAutomated Infrastructure Testing
Automated Infrastructure Testing
 
Bay Area Chef Meetup February
Bay Area Chef Meetup FebruaryBay Area Chef Meetup February
Bay Area Chef Meetup February
 
Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpec
 
DevTernity - DevOps with smell
DevTernity - DevOps with smellDevTernity - DevOps with smell
DevTernity - DevOps with smell
 
Hadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopHadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoop
 
InSpec at DevOps ATL Meetup January 22, 2020
InSpec at DevOps ATL Meetup January 22, 2020InSpec at DevOps ATL Meetup January 22, 2020
InSpec at DevOps ATL Meetup January 22, 2020
 
Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
 
Building and Deploying MediaSalsa, a drupal-based DAM as a Service
Building and Deploying MediaSalsa, a drupal-based DAM as a ServiceBuilding and Deploying MediaSalsa, a drupal-based DAM as a Service
Building and Deploying MediaSalsa, a drupal-based DAM as a Service
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in Operations
 
Prescriptive System Security with InSpec
Prescriptive System Security with InSpecPrescriptive System Security with InSpec
Prescriptive System Security with InSpec
 
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your DevelopmentRise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
 
DevOp with Me!
DevOp with Me!DevOp with Me!
DevOp with Me!
 
Puppet Release Workflows at Jive Software
Puppet Release Workflows at Jive SoftwarePuppet Release Workflows at Jive Software
Puppet Release Workflows at Jive Software
 
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015
 
Code Reviews vs. Pull Requests
Code Reviews vs. Pull RequestsCode Reviews vs. Pull Requests
Code Reviews vs. Pull Requests
 
Webinar slides: Replication Topology Changes for MySQL and MariaDB
Webinar slides: Replication Topology Changes for MySQL and MariaDBWebinar slides: Replication Topology Changes for MySQL and MariaDB
Webinar slides: Replication Topology Changes for MySQL and MariaDB
 

Viewers also liked

Automated Deployments with Ansible
Automated Deployments with AnsibleAutomated Deployments with Ansible
Automated Deployments with AnsibleMartin Etmajer
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecMartin Etmajer
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationJohn Lynch
 
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 AvivAmazon Web Services
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction Robert Reiz
 
Infrastructure as Data with Ansible for easier Continuous Delivery
Infrastructure as Data with Ansible for easier Continuous DeliveryInfrastructure as Data with Ansible for easier Continuous Delivery
Infrastructure as Data with Ansible for easier Continuous DeliveryCarlo Bonamico
 
Ansible is the simplest way to automate. SymfonyCafe, 2015
Ansible is the simplest way to automate. SymfonyCafe, 2015Ansible is the simplest way to automate. SymfonyCafe, 2015
Ansible is the simplest way to automate. SymfonyCafe, 2015Alex S
 
Talk about Ansible and Infrastructure as Code
Talk about Ansible and Infrastructure as CodeTalk about Ansible and Infrastructure as Code
Talk about Ansible and Infrastructure as CodeSATOSHI TAGOMORI
 
Automating aws infrastructure and code deployments using Ansible @WebEngage
Automating aws infrastructure and code deployments using Ansible @WebEngageAutomating aws infrastructure and code deployments using Ansible @WebEngage
Automating aws infrastructure and code deployments using Ansible @WebEngageVishal Uderani
 
Test-Driven Infrastructure with Puppet, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Puppet, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Puppet, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Puppet, Test Kitchen, Serverspec and RSpecMartin Etmajer
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationKumar Y
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationSuresh Kumar
 
Présentation des nouveautés de Zabbix 3.2 - Zabbix Toulouse #1 - ZUG
Présentation des nouveautés de Zabbix 3.2 - Zabbix Toulouse #1 - ZUGPrésentation des nouveautés de Zabbix 3.2 - Zabbix Toulouse #1 - ZUG
Présentation des nouveautés de Zabbix 3.2 - Zabbix Toulouse #1 - ZUGZabbix User Group
 
Ansible Overview - System Administration and Maintenance
Ansible Overview - System Administration and MaintenanceAnsible Overview - System Administration and Maintenance
Ansible Overview - System Administration and MaintenanceJishnu P
 
Ansible Oxford - Cows & Containers
Ansible Oxford - Cows & ContainersAnsible Oxford - Cows & Containers
Ansible Oxford - Cows & Containersjonatanblue
 
Qcon SF 2013 - Machine Learning & Recommender Systems @ Netflix Scale
Qcon SF 2013 - Machine Learning & Recommender Systems @ Netflix ScaleQcon SF 2013 - Machine Learning & Recommender Systems @ Netflix Scale
Qcon SF 2013 - Machine Learning & Recommender Systems @ Netflix ScaleXavier Amatriain
 
Monitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With ZabbixMonitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With ZabbixZabbix
 

Viewers also liked (20)

Automated Deployments with Ansible
Automated Deployments with AnsibleAutomated Deployments with Ansible
Automated Deployments with Ansible
 
Ansible - Introduction
Ansible - IntroductionAnsible - Introduction
Ansible - Introduction
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
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
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 
Infrastructure as Data with Ansible for easier Continuous Delivery
Infrastructure as Data with Ansible for easier Continuous DeliveryInfrastructure as Data with Ansible for easier Continuous Delivery
Infrastructure as Data with Ansible for easier Continuous Delivery
 
Monitoring @haptik
Monitoring @haptikMonitoring @haptik
Monitoring @haptik
 
Ansible is the simplest way to automate. SymfonyCafe, 2015
Ansible is the simplest way to automate. SymfonyCafe, 2015Ansible is the simplest way to automate. SymfonyCafe, 2015
Ansible is the simplest way to automate. SymfonyCafe, 2015
 
Talk about Ansible and Infrastructure as Code
Talk about Ansible and Infrastructure as CodeTalk about Ansible and Infrastructure as Code
Talk about Ansible and Infrastructure as Code
 
Automating aws infrastructure and code deployments using Ansible @WebEngage
Automating aws infrastructure and code deployments using Ansible @WebEngageAutomating aws infrastructure and code deployments using Ansible @WebEngage
Automating aws infrastructure and code deployments using Ansible @WebEngage
 
Test-Driven Infrastructure with Puppet, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Puppet, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Puppet, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Puppet, Test Kitchen, Serverspec and RSpec
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Présentation des nouveautés de Zabbix 3.2 - Zabbix Toulouse #1 - ZUG
Présentation des nouveautés de Zabbix 3.2 - Zabbix Toulouse #1 - ZUGPrésentation des nouveautés de Zabbix 3.2 - Zabbix Toulouse #1 - ZUG
Présentation des nouveautés de Zabbix 3.2 - Zabbix Toulouse #1 - ZUG
 
Ansible Overview - System Administration and Maintenance
Ansible Overview - System Administration and MaintenanceAnsible Overview - System Administration and Maintenance
Ansible Overview - System Administration and Maintenance
 
Ansible과 CloudFormation을 이용한 배포 자동화
Ansible과 CloudFormation을 이용한 배포 자동화Ansible과 CloudFormation을 이용한 배포 자동화
Ansible과 CloudFormation을 이용한 배포 자동화
 
Ansible Oxford - Cows & Containers
Ansible Oxford - Cows & ContainersAnsible Oxford - Cows & Containers
Ansible Oxford - Cows & Containers
 
Qcon SF 2013 - Machine Learning & Recommender Systems @ Netflix Scale
Qcon SF 2013 - Machine Learning & Recommender Systems @ Netflix ScaleQcon SF 2013 - Machine Learning & Recommender Systems @ Netflix Scale
Qcon SF 2013 - Machine Learning & Recommender Systems @ Netflix Scale
 
Monitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With ZabbixMonitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With Zabbix
 

Similar to Introduction to Automated Deployments with Ansible

Nginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceNginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceHarald Zeitlhofer
 
Infrastructure Automation How to Use Chef For DevOps Success
Infrastructure Automation How to Use Chef For DevOps SuccessInfrastructure Automation How to Use Chef For DevOps Success
Infrastructure Automation How to Use Chef For DevOps SuccessDynatrace
 
High availability in IT: AAAARGH
High availability in IT: AAAARGHHigh availability in IT: AAAARGH
High availability in IT: AAAARGHMattias Geniar
 
Deploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise EnvironmentsDeploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise Environmentsinovex GmbH
 
Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011Brian Ritchie
 
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanieOstatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie3camp
 
Tips and Tricks for Automating Windows with Chef
Tips and Tricks for Automating Windows with ChefTips and Tricks for Automating Windows with Chef
Tips and Tricks for Automating Windows with ChefChef Software, Inc.
 
Continuous Deployment To The Cloud
Continuous Deployment To The CloudContinuous Deployment To The Cloud
Continuous Deployment To The CloudMarcin Grzejszczak
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftYaniv cohen
 
Automate IBM Connections Installations and more
Automate IBM Connections Installations and moreAutomate IBM Connections Installations and more
Automate IBM Connections Installations and morepanagenda
 
Automate IBM Connections Installations and more
Automate IBM Connections Installations and moreAutomate IBM Connections Installations and more
Automate IBM Connections Installations and moreLetsConnect
 
Perl: Setting Up An Internal Darkpan
Perl: Setting Up An Internal DarkpanPerl: Setting Up An Internal Darkpan
Perl: Setting Up An Internal Darkpandaoswald
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodeKris Buytaert
 
Cloud native development without the toil
Cloud native development without the toilCloud native development without the toil
Cloud native development without the toilAmbassador Labs
 
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...Daniel Bryant
 
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...Daniel Bryant
 
Ansible Tutorial.pdf
Ansible Tutorial.pdfAnsible Tutorial.pdf
Ansible Tutorial.pdfNigussMehari4
 
Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in DjangoKevin Harvey
 
The Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
The Kitchen Cloud How To: Automating Joyent SmartMachines with ChefThe Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
The Kitchen Cloud How To: Automating Joyent SmartMachines with ChefChef Software, Inc.
 

Similar to Introduction to Automated Deployments with Ansible (20)

Nginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceNginx performance monitoring with Dynatrace
Nginx performance monitoring with Dynatrace
 
Infrastructure Automation How to Use Chef For DevOps Success
Infrastructure Automation How to Use Chef For DevOps SuccessInfrastructure Automation How to Use Chef For DevOps Success
Infrastructure Automation How to Use Chef For DevOps Success
 
High availability in IT: AAAARGH
High availability in IT: AAAARGHHigh availability in IT: AAAARGH
High availability in IT: AAAARGH
 
Deploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise EnvironmentsDeploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise Environments
 
Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011
 
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanieOstatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
 
Tips and Tricks for Automating Windows with Chef
Tips and Tricks for Automating Windows with ChefTips and Tricks for Automating Windows with Chef
Tips and Tricks for Automating Windows with Chef
 
Ansible.pdf
Ansible.pdfAnsible.pdf
Ansible.pdf
 
Continuous Deployment To The Cloud
Continuous Deployment To The CloudContinuous Deployment To The Cloud
Continuous Deployment To The Cloud
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 
Automate IBM Connections Installations and more
Automate IBM Connections Installations and moreAutomate IBM Connections Installations and more
Automate IBM Connections Installations and more
 
Automate IBM Connections Installations and more
Automate IBM Connections Installations and moreAutomate IBM Connections Installations and more
Automate IBM Connections Installations and more
 
Perl: Setting Up An Internal Darkpan
Perl: Setting Up An Internal DarkpanPerl: Setting Up An Internal Darkpan
Perl: Setting Up An Internal Darkpan
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as Code
 
Cloud native development without the toil
Cloud native development without the toilCloud native development without the toil
Cloud native development without the toil
 
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
 
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
 
Ansible Tutorial.pdf
Ansible Tutorial.pdfAnsible Tutorial.pdf
Ansible Tutorial.pdf
 
Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in Django
 
The Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
The Kitchen Cloud How To: Automating Joyent SmartMachines with ChefThe Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
The Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
 

Recently uploaded

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Recently uploaded (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

Introduction to Automated Deployments with Ansible

  • 1. 1 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace System Architects with DevOps / Security Group Meetup, Vienna 18th December 2014 Martin Etmajer, @metmajer, Technology Strategist @ Dynatrace Introduction to Automated Deployments with Ansible
  • 2. 2 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace • Automated Deployments in Continuous Delivery • Agent-based vs. Agentless Solution Architectures • Introduction to Ansible Agenda
  • 3. 3 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Automated Deployments in Continuous Delivery
  • 4. 4 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace feature cycle time time Customer Users Utmost Goal: Minimize Cycle Time
  • 5. 5 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace feature cycle time time Customer Users Utmost Goal: Minimize Cycle Time minimize
  • 6. 6 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace feature cycle time time Customer Utmost Goal: Minimize Cycle Time This is when you create value! minimize
  • 7. 7 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace feature cycle time time Customer Utmost Goal: Minimize Cycle Time You This is when you create value! minimize
  • 8. 8 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace The definition of a deployment pipeline, which is at the heart of Continuous Delivery: “A deployment pipeline is, in essence, an automated implementation of your application’s build, deploy, test and release process.” Jez Humble & Dave Farley in Continuous Delivery “Use machines for what they’re good at, use people for what they’re good at.” Dave Farley at PIPELINE Conference 2014 @vimeo.com/96173993 The Role of Automation in Continuous Delivery
  • 9. 9 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Manual deployments: • are slow and prone to human errors • are neither repeatable nor reliable • are not consistent across environments • are done by a few experts: hinders collaboration • require extensive documentation: often outdated The Problem with Manual Deployments We are just not good at it!
  • 10. 10 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Agent-based vs. Agentless Solution Architectures
  • 11. 11 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Agent-Based Solutions
  • 12. 12 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Agent-Based Deployments (Chef, Puppet)
  • 13. 13 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Agent-Based Deployments (Chef, Puppet)
  • 14. 14 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Agent-Based Deployments (Chef, Puppet)
  • 15. 15 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace » Can be used in client-server or client-only modes » Client must be installed on each host to be provisioned » Clients have dependencies » Not laid out for server orchestration by design (do something on server A, then on server B, etc.) » Chef and Puppet are widely considered to have a large entrance barrier and are complex to use Agent-Based Deployments (Chef, Puppet)
  • 16. 16 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Agentless Solutions
  • 17. 17 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Agentless Deployments (Ansible)
  • 18. 18 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Agentless Deployments (Ansible)
  • 19. 19 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Agentless Deployments (Ansible)
  • 20. 20 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Agentless Deployments (Ansible)
  • 21. 21 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible
  • 22. 22 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace » Written and extensible in Python » Human- and machine-readable configuration (YAML) » No boot-strapping required on deployment hosts (SSH) » Statements are executed in the order they were specified » Simple, easy to ramp up with (think of new employees!) » Clear and concise documentation Ansible
  • 23. 23 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Concepts: Ad-hoc Commands
  • 24. 24 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Concepts: Ad-hoc Commands ansible [-i inventory] <host-pattern> [options] Examples? » ansible localhost -m copy –a ‘src=/usr/bin/a dest=/usr/bin/b’ » ansible webserver –a ‘/sbin/reboot’ –f 3 –u deploy ––sudo ––ask–sudo–pass Module Arguments
  • 25. 25 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Concepts: Ad-hoc Commands ansible [-i inventory] <host-pattern> [options] Examples? » ansible localhost -m copy –a ‘src=/usr/bin/a dest=/usr/bin/b’ » ansible webserver –a ‘/sbin/reboot’ –f 3 –u deploy ––sudo ––ask–sudo–pass Processes User Use sudo Ask password interactively
  • 26. 26 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Concepts: Inventories
  • 27. 27 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Concepts: Inventories » Ansible provisions groups of servers at once » Groups and hosts are stored in inventory files » An inventory file is expressed in the INI format
  • 28. 28 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Concepts: Inventories # production.ini [web] web[0-1].example.com [frontends] frontend.example.com [backends] backend.example.com Group Host
  • 29. 29 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Concepts: Playbooks
  • 30. 30 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Concepts: Playbooks ansible-playbook [–i <inventory>] <playbook> Playbooks » describe policies your remote systems shall enforce » consist of variables, tasks, handlers, files and roles » are expressed in the YAML format
  • 31. 31 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace --- # webservers.yml - hosts: web vars_files: - variables.yml handlers: - name: reload apache2 service: name=apache2 state=reloaded tasks: - name: Install Apache HTTP Server apt: name=apache2 update_cache=yes - name: Install Apache Modules apache2_module: name={{ item }} state=present with_items: - proxy - proxy_httpd notify: reload apache2 Ansible Concepts: Playbooks Play Module
  • 32. 32 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace ... - name: Install Apache Configuration template: > src=apache-config.conf.j2 dest={{ apache_conf_home }}/myapp mode=0644 notify: reload apache2 remote_user: deploy sudo: yes Ansible Concepts: Playbooks
  • 33. 33 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace --- # variables.yml apache_conf_home: /etc/apache2/conf.d Ansible Concepts: Playbooks
  • 34. 34 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace --- # playbook.yml - include: appservers.yml - include: dbservers.yml - include: webservers.yml Ansible Concepts: Playbooks Includes multiple plays into a single playbook
  • 35. 35 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Concepts: Playbooks ansible-playbook –i production.ini webservers.yml PLAY [web] ****************************************************** TASK: [Install Apache HTTP Server] ************************ changed: [web0.example.com] changed: [web1.example.com] ... PLAY RECAP ************************************************************************ web0.example.com : ok=3 changed=3 unreachable=0 failed=0 web1.example.com : ok=3 changed=3 unreachable=0 failed=0 Run!
  • 36. 36 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Modules Library
  • 37. 37 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Modules Library » Cloud: AWS, Azure, DigitalOcean, Docker, Google, OpenStack,... » Database: MySQL, Postgresql,... » Packaging: apt, yum, easy_install, npm, homebrew, zypper,... » Source Control: git, subversion, mercurial,... » Web Infrastructure: apache2_module, jira,... » System: mount, selinux, ufw, user,...
  • 38. 38 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Concepts: Roles (Outlook)
  • 39. 39 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Concepts: Playbooks » Roles Roles » Are the preferred means to organize and reuse related tasks » Build on the idea of include files to form clean abstractions » Can be shared and found on Ansible Galaxy
  • 40. 40 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace Ansible Concepts: Playbooks » Roles Reusing Roles in a Play --- # webservers.yml - hosts: web roles: - { role: common } - { role: apache2 } remote_user: deploy sudo: yes
  • 41. 41 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace

Editor's Notes

  1. Cycle time is the most relevant metric in the software delivery process. “How long would it take your organization to deploy a change that involves just one single line of code?” Mary Poppendieck
  2. Cycle time is the most relevant metric in the software delivery process. “How long would it take your organization to deploy a change that involves just one single line of code?” Mary Poppendieck
  3. Cycle time is the most relevant metric in the software delivery process. “How long would it take your organization to deploy a change that involves just one single line of code?” Mary Poppendieck
  4. Cycle time is the most relevant metric in the software delivery process. “How long would it take your organization to deploy a change that involves just one single line of code?” Mary Poppendieck
  5. Doubtlessly, automation if of high relevance in Continuous Delivery...
  6. Speaking of deployments...
  7. Note: terms “agent” and “client” are used interchangeably
  8. Note: terms “agent” and “client” are used interchangeably
  9. Note: terms “agent” and “client” are used interchangeably
  10. Ad-hoc commands are a great way to test commands on the command line, however, for real server orchestration, there’s a much more powerful concept: Ansible Playbooks.
  11. Ad-hoc commands are a great way to test commands on the command line, however, for real server orchestration, there’s a much more powerful concept: Ansible Playbooks.
  12. ad “-i inventory”: if not specified, will assume an inventory file in /etc/ansible/hosts
  13. Everything you see here is executed in order. ad “play”: A play maps a group of hosts to a set of tasks. By composing a playbook of multiple plays, it is possible to orchestrate multi-server deployments: run certain tasks on the group of webservers, then some tasks on the group of dbservers, then some more commands back on the webservers group, etc.