SlideShare a Scribd company logo
1 of 23
Download to read offline
Outline Goal A Problem to Solve Tools Practical Examples
Building a loosely coupled toolchain with
Rundeck and Puppet
Steven Meunier
21 June 2014
Outline Goal A Problem to Solve Tools Practical Examples
1 Goal
What are we trying to achieve?
Influences
Infrastructure
2 A Problem to Solve
3 Tools
What do we need
Something to trigger a change
Somewhere to store the data for the change
Something to perform the change
Helping the tools help us
4 Practical Examples
Generic Deployment Flow
Updating Hiera Data
Rundeck
Outline Goal A Problem to Solve Tools Practical Examples
Goal
To have a loosely coupled deployment toolchain that leverages
our desire to manage the servers based on state
Implies decisions have already been made regarding kind of
tooling and server management:
Tools that perform a particular function and do it well
Tools can be swapped out if needed
Concept of state can be extended to deployments if viewed
as a process of changing the server state
Outline Goal A Problem to Solve Tools Practical Examples
Influences
Deployment models from glu
Infrastructure as data from ansible
Puppet server state
http://dev2ops.org/2012/05/using-rundeck-and-chef-to-
build-devops-toolchains-at-chefcon/
Outline Goal A Problem to Solve Tools Practical Examples
Normal Puppet Infrastructure
Puppet Infrastructure
Outline Goal A Problem to Solve Tools Practical Examples
Deployment Infrastructure Built On Top Of Puppet
Deployment Infrastructure
Outline Goal A Problem to Solve Tools Practical Examples
Ready . . . Set . . .
By tableatny (BXP135671) [CC-BY-2.0], Source:
http://upload.wikimedia.org/wikipedia/commons/1/13/Athlete_at_starting_block.jpg
Outline Goal A Problem to Solve Tools Practical Examples
Go!
By David A. Brandenburg, U.S. Navy (http://www.navy.mil/; VIRIN: 100517-N-7643B-048) [Public domain], Source:
http://upload.wikimedia.org/wikipedia/commons/2/2a/Sack_race.jpg
Outline Goal A Problem to Solve Tools Practical Examples
Know your Problem Domain
Deadlines
Restrictions imposed by Security Team
Team requirements
Release management (easy interface, keep track of
versions, support all our applications and release process)
Development (APIs for jenkins, low (preferably no) adoption
barrier for development)
Operations (operations maintain control, integrate with
puppet, mcollective)
Outline Goal A Problem to Solve Tools Practical Examples
What do we need?
Something to trigger a change
Somewhere to store the information for the change
Something to perform the change
Outline Goal A Problem to Solve Tools Practical Examples
Something to trigger a change
Rundeck
Rundeck is an automation console
Makes use of existing puppet infrastructure
Can automate whatever we want, not just deployments
Fine grained access controls
Easily extensible through plugins — even if you don’t know
Java
Deployments triggered manually or via Jenkins
Outline Goal A Problem to Solve Tools Practical Examples
Somewhere to store the data for the change
Hiera data
“Infrastructure as code” → “Infrastructure as data”
Hiera data for configuration using Puppet 3’s data binding
Change configuration without editing puppet manifests or
templates
property_files::parent_prefix: /srv/tomcat6/foo/conf
property_files::property_files:
- foo.properties
- bar.properties
properties_foo.properties:
database.name: fooDB
timeout: 100
Outline Goal A Problem to Solve Tools Practical Examples
Something to perform the change
Puppet & MCollective
Puppet manages all aspects of the server — nothing is
manual
Mcollective is an orchestration tool using activemq to
trigger agents across servers
MCollective manage non-state managed aspects or
temporary state changes
starting/stopping queues
database deployments
Outline Goal A Problem to Solve Tools Practical Examples
No matter what you think you’ve got...
Spaceballs, c 1987 MGM Studios, Source:
http://s3.amazonaws.com/mgm-assets/assets/Image/1266267325/41135/SPACEBAL-still-003-x.jpg
Outline Goal A Problem to Solve Tools Practical Examples
Sometimes your princess is a hairy guy in a dress
Spaceballs, c 1987 MGM Studios, Source:
http://img.pandawhale.com/65424-Spaceballs-Celebrity-stunt-dou-DZzt.jpeg
Outline Goal A Problem to Solve Tools Practical Examples
Tools need help to make them fit
Git: steep learning curve
Rundeck: needs extra plugins to fit your workflow
Puppet: duplicate declarations; ordering; limitations of
hiera
MCollective: can be unreliable if used as a source of node
truth; time needed to build the agents
Ruby: it’s critical if you’re using puppet + mcollective
Outline Goal A Problem to Solve Tools Practical Examples
Generic Deployment Flow
Create deployment window with no puppet interference
Build rpms from deployable unit (if applicable)
Disable monitoring
Compare and update configuration (if applicable)
Update version parameter in hiera data
Kick off puppet run
Restart service
Re-enable monitoring
Outline Goal A Problem to Solve Tools Practical Examples
Deployment Configuration Committer
Ruby script with the goal of reducing manual actions
related to configuration
Works with java properties files and context xml files
Builds a hash of properties in the release and compares it
against the current properties
Uploads any changes to Gerrit for review
Outline Goal A Problem to Solve Tools Practical Examples
An example tomcat application in Hiera
tomcat_context:
ROOT:
version: xx.yy.zz
tomcat_instance:
foo: {}
tomcat_context:
ROOT:
artifact: foo
artifact_provider: file
artifact_target: ROOT.war
artifact_url: http//repo.example.com/war
instance: foo
rundeck_job:
foo: {}
Outline Goal A Problem to Solve Tools Practical Examples
Puppet Rundeck Job Type
@@rundeck_job { "${project}/${group}/${name}_${hostname}":
ensure => $ensure,
jobname => $name,
project => $project,
group => $group,
definition => template($template),
}
Outline Goal A Problem to Solve Tools Practical Examples
Rundeck Conditional Local Command
#!/bin/sh
COMMAND_TRUE=$1
COMMAND_FALSE=$2
CONDITION="[ $3 ]"
EXIT_CODE=0
if [ "x$COMMAND_FALSE" == "x" ]
then
if eval $CONDITION
then
$COMMAND_TRUE
EXIT_CODE=$?
fi
else
if eval $CONDITION
then
$COMMAND_TRUE
EXIT_CODE=$?
else
$COMMAND_FALSE
EXIT_CODE=$?
fi
fi
exit $EXIT_CODE
Outline Goal A Problem to Solve Tools Practical Examples
Rundeck Conditional Local Command
Outline Goal A Problem to Solve Tools Practical Examples
Thank You

More Related Content

What's hot

QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
Rodrigo Russo
 
2015 05-06-karsten gaebert-akademie-etrainings
2015 05-06-karsten gaebert-akademie-etrainings2015 05-06-karsten gaebert-akademie-etrainings
2015 05-06-karsten gaebert-akademie-etrainings
Haufe-Lexware GmbH & Co KG
 
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Weaveworks
 

What's hot (20)

Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)
 
SkyBase - a Devops Platform for Hybrid Cloud
SkyBase - a Devops Platform for Hybrid CloudSkyBase - a Devops Platform for Hybrid Cloud
SkyBase - a Devops Platform for Hybrid Cloud
 
DevOps@Morpho for ParisDevOps - 2nd of December 2014
DevOps@Morpho for ParisDevOps - 2nd of December 2014DevOps@Morpho for ParisDevOps - 2nd of December 2014
DevOps@Morpho for ParisDevOps - 2nd of December 2014
 
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
 
CI/CD for everyone else
CI/CD for everyone elseCI/CD for everyone else
CI/CD for everyone else
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
 
Scaling Jenkins
Scaling Jenkins Scaling Jenkins
Scaling Jenkins
 
2015 05-06-karsten gaebert-akademie-etrainings
2015 05-06-karsten gaebert-akademie-etrainings2015 05-06-karsten gaebert-akademie-etrainings
2015 05-06-karsten gaebert-akademie-etrainings
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
 
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec JenkinsJournée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
 
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-CodeSD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
 
Enterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using JenkinsEnterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using Jenkins
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev ops
 
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
 
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
 
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
 
Safe deployments with Blue-Green and Spinnaker
Safe deployments with Blue-Green and SpinnakerSafe deployments with Blue-Green and Spinnaker
Safe deployments with Blue-Green and Spinnaker
 

Viewers also liked

Viewers also liked (10)

DTO #ChefConf2012
DTO #ChefConf2012DTO #ChefConf2012
DTO #ChefConf2012
 
Porting Puppet to OpenBSD
Porting Puppet to OpenBSD Porting Puppet to OpenBSD
Porting Puppet to OpenBSD
 
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
 
Rundeck + Nexus (from Nexus Live on June 5, 2014)
Rundeck + Nexus (from Nexus Live on June 5, 2014)Rundeck + Nexus (from Nexus Live on June 5, 2014)
Rundeck + Nexus (from Nexus Live on June 5, 2014)
 
Rundeck Open Source Workflow Automation
Rundeck Open Source Workflow AutomationRundeck Open Source Workflow Automation
Rundeck Open Source Workflow Automation
 
RunDeck
RunDeckRunDeck
RunDeck
 
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa ClaraAdobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
 
Support and Initiate a DevOps Transformation
Support and Initiate a DevOps TransformationSupport and Initiate a DevOps Transformation
Support and Initiate a DevOps Transformation
 
Workflow Engines for Hadoop
Workflow Engines for HadoopWorkflow Engines for Hadoop
Workflow Engines for Hadoop
 
Rundeck & Ansible
Rundeck & AnsibleRundeck & Ansible
Rundeck & Ansible
 

Similar to Building a loosely coupled toolchain with Rundeck and Puppet

UiPath Test Manager Connect Webinar UiPath Planview.pptx
UiPath Test Manager Connect Webinar UiPath Planview.pptxUiPath Test Manager Connect Webinar UiPath Planview.pptx
UiPath Test Manager Connect Webinar UiPath Planview.pptx
Rohit Radhakrishnan
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2
Pascal Rapicault
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
Fedir RYKHTIK
 
Alm Specialist Toolkit Team System 2008 Deep Dive
Alm Specialist Toolkit   Team System 2008 Deep DiveAlm Specialist Toolkit   Team System 2008 Deep Dive
Alm Specialist Toolkit Team System 2008 Deep Dive
Christian Thilmany
 

Similar to Building a loosely coupled toolchain with Rundeck and Puppet (20)

Five Ways Automation Has Increased Application Deployment and Changed Culture
Five Ways Automation Has Increased Application Deployment and Changed CultureFive Ways Automation Has Increased Application Deployment and Changed Culture
Five Ways Automation Has Increased Application Deployment and Changed Culture
 
DevOps Workflows in the Windows Ecosystem - April 21
 DevOps Workflows in the Windows Ecosystem - April 21 DevOps Workflows in the Windows Ecosystem - April 21
DevOps Workflows in the Windows Ecosystem - April 21
 
DevOps Workflows in the Windows Ecosystem - 21 April 2020
 DevOps Workflows in the Windows Ecosystem - 21 April 2020 DevOps Workflows in the Windows Ecosystem - 21 April 2020
DevOps Workflows in the Windows Ecosystem - 21 April 2020
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
UiPath Test Manager Connect Webinar UiPath Planview.pptx
UiPath Test Manager Connect Webinar UiPath Planview.pptxUiPath Test Manager Connect Webinar UiPath Planview.pptx
UiPath Test Manager Connect Webinar UiPath Planview.pptx
 
Continuous Database Delivery - 7/12/2018
Continuous Database Delivery - 7/12/2018Continuous Database Delivery - 7/12/2018
Continuous Database Delivery - 7/12/2018
 
Continous integration-leon-kehl-2010
Continous integration-leon-kehl-2010Continous integration-leon-kehl-2010
Continous integration-leon-kehl-2010
 
Automate Yourself Out of a Job: Safely Delegate the Management of your Azure...
Automate Yourself Out of a Job:  Safely Delegate the Management of your Azure...Automate Yourself Out of a Job:  Safely Delegate the Management of your Azure...
Automate Yourself Out of a Job: Safely Delegate the Management of your Azure...
 
Automated Deployment in Support of Continuous Integration to Transform SDLC
Automated Deployment in Support of Continuous Integration to Transform SDLCAutomated Deployment in Support of Continuous Integration to Transform SDLC
Automated Deployment in Support of Continuous Integration to Transform SDLC
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
Leveraging Open Source Automation: A Selenium WebDriver Example
Leveraging Open Source Automation: A Selenium WebDriver ExampleLeveraging Open Source Automation: A Selenium WebDriver Example
Leveraging Open Source Automation: A Selenium WebDriver Example
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2
 
Migrating to Cloud: Inhouse Hadoop to Databricks (3)
Migrating to Cloud: Inhouse Hadoop to Databricks (3)Migrating to Cloud: Inhouse Hadoop to Databricks (3)
Migrating to Cloud: Inhouse Hadoop to Databricks (3)
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
 
Alm Specialist Toolkit Team System 2008 Deep Dive
Alm Specialist Toolkit   Team System 2008 Deep DiveAlm Specialist Toolkit   Team System 2008 Deep Dive
Alm Specialist Toolkit Team System 2008 Deep Dive
 
Drools & jBPM Info Sheet
Drools & jBPM Info SheetDrools & jBPM Info Sheet
Drools & jBPM Info Sheet
 

Recently uploaded

VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
dharasingh5698
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 

Building a loosely coupled toolchain with Rundeck and Puppet

  • 1. Outline Goal A Problem to Solve Tools Practical Examples Building a loosely coupled toolchain with Rundeck and Puppet Steven Meunier 21 June 2014
  • 2. Outline Goal A Problem to Solve Tools Practical Examples 1 Goal What are we trying to achieve? Influences Infrastructure 2 A Problem to Solve 3 Tools What do we need Something to trigger a change Somewhere to store the data for the change Something to perform the change Helping the tools help us 4 Practical Examples Generic Deployment Flow Updating Hiera Data Rundeck
  • 3. Outline Goal A Problem to Solve Tools Practical Examples Goal To have a loosely coupled deployment toolchain that leverages our desire to manage the servers based on state Implies decisions have already been made regarding kind of tooling and server management: Tools that perform a particular function and do it well Tools can be swapped out if needed Concept of state can be extended to deployments if viewed as a process of changing the server state
  • 4. Outline Goal A Problem to Solve Tools Practical Examples Influences Deployment models from glu Infrastructure as data from ansible Puppet server state http://dev2ops.org/2012/05/using-rundeck-and-chef-to- build-devops-toolchains-at-chefcon/
  • 5. Outline Goal A Problem to Solve Tools Practical Examples Normal Puppet Infrastructure Puppet Infrastructure
  • 6. Outline Goal A Problem to Solve Tools Practical Examples Deployment Infrastructure Built On Top Of Puppet Deployment Infrastructure
  • 7. Outline Goal A Problem to Solve Tools Practical Examples Ready . . . Set . . . By tableatny (BXP135671) [CC-BY-2.0], Source: http://upload.wikimedia.org/wikipedia/commons/1/13/Athlete_at_starting_block.jpg
  • 8. Outline Goal A Problem to Solve Tools Practical Examples Go! By David A. Brandenburg, U.S. Navy (http://www.navy.mil/; VIRIN: 100517-N-7643B-048) [Public domain], Source: http://upload.wikimedia.org/wikipedia/commons/2/2a/Sack_race.jpg
  • 9. Outline Goal A Problem to Solve Tools Practical Examples Know your Problem Domain Deadlines Restrictions imposed by Security Team Team requirements Release management (easy interface, keep track of versions, support all our applications and release process) Development (APIs for jenkins, low (preferably no) adoption barrier for development) Operations (operations maintain control, integrate with puppet, mcollective)
  • 10. Outline Goal A Problem to Solve Tools Practical Examples What do we need? Something to trigger a change Somewhere to store the information for the change Something to perform the change
  • 11. Outline Goal A Problem to Solve Tools Practical Examples Something to trigger a change Rundeck Rundeck is an automation console Makes use of existing puppet infrastructure Can automate whatever we want, not just deployments Fine grained access controls Easily extensible through plugins — even if you don’t know Java Deployments triggered manually or via Jenkins
  • 12. Outline Goal A Problem to Solve Tools Practical Examples Somewhere to store the data for the change Hiera data “Infrastructure as code” → “Infrastructure as data” Hiera data for configuration using Puppet 3’s data binding Change configuration without editing puppet manifests or templates property_files::parent_prefix: /srv/tomcat6/foo/conf property_files::property_files: - foo.properties - bar.properties properties_foo.properties: database.name: fooDB timeout: 100
  • 13. Outline Goal A Problem to Solve Tools Practical Examples Something to perform the change Puppet & MCollective Puppet manages all aspects of the server — nothing is manual Mcollective is an orchestration tool using activemq to trigger agents across servers MCollective manage non-state managed aspects or temporary state changes starting/stopping queues database deployments
  • 14. Outline Goal A Problem to Solve Tools Practical Examples No matter what you think you’ve got... Spaceballs, c 1987 MGM Studios, Source: http://s3.amazonaws.com/mgm-assets/assets/Image/1266267325/41135/SPACEBAL-still-003-x.jpg
  • 15. Outline Goal A Problem to Solve Tools Practical Examples Sometimes your princess is a hairy guy in a dress Spaceballs, c 1987 MGM Studios, Source: http://img.pandawhale.com/65424-Spaceballs-Celebrity-stunt-dou-DZzt.jpeg
  • 16. Outline Goal A Problem to Solve Tools Practical Examples Tools need help to make them fit Git: steep learning curve Rundeck: needs extra plugins to fit your workflow Puppet: duplicate declarations; ordering; limitations of hiera MCollective: can be unreliable if used as a source of node truth; time needed to build the agents Ruby: it’s critical if you’re using puppet + mcollective
  • 17. Outline Goal A Problem to Solve Tools Practical Examples Generic Deployment Flow Create deployment window with no puppet interference Build rpms from deployable unit (if applicable) Disable monitoring Compare and update configuration (if applicable) Update version parameter in hiera data Kick off puppet run Restart service Re-enable monitoring
  • 18. Outline Goal A Problem to Solve Tools Practical Examples Deployment Configuration Committer Ruby script with the goal of reducing manual actions related to configuration Works with java properties files and context xml files Builds a hash of properties in the release and compares it against the current properties Uploads any changes to Gerrit for review
  • 19. Outline Goal A Problem to Solve Tools Practical Examples An example tomcat application in Hiera tomcat_context: ROOT: version: xx.yy.zz tomcat_instance: foo: {} tomcat_context: ROOT: artifact: foo artifact_provider: file artifact_target: ROOT.war artifact_url: http//repo.example.com/war instance: foo rundeck_job: foo: {}
  • 20. Outline Goal A Problem to Solve Tools Practical Examples Puppet Rundeck Job Type @@rundeck_job { "${project}/${group}/${name}_${hostname}": ensure => $ensure, jobname => $name, project => $project, group => $group, definition => template($template), }
  • 21. Outline Goal A Problem to Solve Tools Practical Examples Rundeck Conditional Local Command #!/bin/sh COMMAND_TRUE=$1 COMMAND_FALSE=$2 CONDITION="[ $3 ]" EXIT_CODE=0 if [ "x$COMMAND_FALSE" == "x" ] then if eval $CONDITION then $COMMAND_TRUE EXIT_CODE=$? fi else if eval $CONDITION then $COMMAND_TRUE EXIT_CODE=$? else $COMMAND_FALSE EXIT_CODE=$? fi fi exit $EXIT_CODE
  • 22. Outline Goal A Problem to Solve Tools Practical Examples Rundeck Conditional Local Command
  • 23. Outline Goal A Problem to Solve Tools Practical Examples Thank You