SlideShare a Scribd company logo
1 of 18
Download to read offline
RunDeck
                     Introduction and use cases
                        Vincent Behar <vincent@behar.name>
                           Bruno Bonfils <asyd@asyd.net>

                                Follow us on twitter!
                                @vbehar, @bbonfils



jeudi 17 mars 2011
Rundeck?

jeudi 17 mars 2011
What?



    • Job            automation

    • Job            scheduling




            the most awesome distributed command dispatching job console
jeudi 17 mars 2011
How?


    • Connect           to nodes and execute a script/command

         • SSH       (private key)

    • WebUI           (Jetty + Grails)

    • CLI




jeudi 17 mars 2011
Installation


    • wget            ...

    • java           -jar rundeck-launcher-1.1.jar

    •a       rpm is also available (a deb is coming soon)




jeudi 17 mars 2011
The configuration

    • One             instance can handle multiple projects

    • Per            project:

         • one         XML file describe all available nodes

              • osArch, osFamily, tags

         • one         XML per job

         • Jobs         can be organized in groups

jeudi 17 mars 2011
A node resource sample
        <node name="asuka" type="Node"
         description="xen dom0" tags="xen"
         hostname="asuka.asyd.net"
         osArch="amd64" osFamily="unix" osName="Linux"
         osVersion="2.6.32-5-xen-amd64"
         username="asyd"/>




jeudi 17 mars 2011
A job sample
[..]
     <name>www.rtl.fr</name>
     <group>lab/webapps/deploy</group>
     <context>
      <project>rtlnet</project>
      <options>
        <option name='version' value='LATEST' enforcedvalues='true'
            required='true' valuesUrl='http://..../' />
      </options>
     </context>
     <sequence threadcount='1' keepgoing='false' strategy='node-first'>
      <command>
       <exec>cp /repository/${option.version} $CATALINA_HOME/webapps</exec>
      </command>
     </sequence>
                                                        node-first: execute toute les commandes sur un node
     <nodefilters>                                       avant de passer au node suivant
      <include> <tags>lab</tags> </include>             step-first: execute la premiere sur chaque node
     </nodefilters>                                      avant d’executer la commande suivante
     <dispatch>
      <threadcount>2</threadcount>
      <keepgoing>true</keepgoing>
     </dispatch>
 [..]

jeudi 17 mars 2011
Model providers

    • Rundeck           can use remote URL to get:

         • the       list of nodes (resource model provider) (XML)

              • already   available: Amazon EC2, Puppet, Chef

         • the list of availables values for an option for a job(option
             model provider) (JSON)

              • already   available: Jenkins, Nexus


jeudi 17 mars 2011
Access control


    • Users          are authenticated via JAAS (LDAP, flat file, etc.)

    • Access          control can be defined via policies

         • Rules      by project, group, job




jeudi 17 mars 2011
RunDeck positioning
Configuration management            ad hoc control tools

                                       mcollective
                                        Fabric
                                      capistrano




jeudi 17 mars 2011
ad hoc control tools

    • rundeck: java, cli   + webui, ssh (no agents), raw commands

    • controltier: java, cli     + webui, agents on each node

    • mcollective: ruby, cli, publish/subscribe     (jms) - agents on
        each node, DSL/plugins

    • capistrano: ruby, cli, ssh    (no agents), DSL

    • fabric: python, cli, ssh   (no agents), DSL

jeudi 17 mars 2011
Limitations of 1.1


    • Only            one private key (w/o passphrase) for all nodes

    • No             official remote API (REST in 1.2)

    • Basic           notifications by email (will be extended in 1.3)

    • About             3500 files descriptors are used by Rundeck at startup



jeudi 17 mars 2011
RunDeck 1.2                       Released
                                                                 20110315




    • REST API          (XML at the moment, JSON for the next release)

    • YAML           available for jobs, resources (nodes), and ACL

    • Multi-valued         options, useful for WebUI




jeudi 17 mars 2011
Real case
                       @RTL




jeudi 17 mars 2011
Background

    • Technologies: Java, Tomcat, Maven

    • CI       with Jenkins

    • Artifacts      managed by Nexus

    •A        test environnment

    •A        production environment


jeudi 17 mars 2011
0-click deploy




jeudi 17 mars 2011
Success story
    •0       click deployment in test

    •1       click deployment in production

    • Automated             and reproductible deployment

    • History           of deployments in production (who, when, what)

    • The            production deployment process is exactly the same as the
        test

    • More            small deployments in production (less risky)
jeudi 17 mars 2011

More Related Content

What's hot

What's hot (20)

Observability in the world of microservices
Observability in the world of microservicesObservability in the world of microservices
Observability in the world of microservices
 
Docker and Kubernetes 101 workshop
Docker and Kubernetes 101 workshopDocker and Kubernetes 101 workshop
Docker and Kubernetes 101 workshop
 
OpenTelemetry: From front- to backend (2022)
OpenTelemetry: From front- to backend (2022)OpenTelemetry: From front- to backend (2022)
OpenTelemetry: From front- to backend (2022)
 
Introducing PagerDuty Process Automation
Introducing PagerDuty Process AutomationIntroducing PagerDuty Process Automation
Introducing PagerDuty Process Automation
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana Loki
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
 
Monitoring and observability
Monitoring and observabilityMonitoring and observability
Monitoring and observability
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...
 
Understanding Kubernetes
Understanding KubernetesUnderstanding Kubernetes
Understanding Kubernetes
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
 
쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료
 
Observability
ObservabilityObservability
Observability
 
PagerDuty + Rundeck = Shorter Incidents, Fewer Escalations
PagerDuty + Rundeck = Shorter Incidents, Fewer EscalationsPagerDuty + Rundeck = Shorter Incidents, Fewer Escalations
PagerDuty + Rundeck = Shorter Incidents, Fewer Escalations
 
Grafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for LogsGrafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for Logs
 
Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
 

Viewers also liked

Viewers also liked (20)

Rundeck's History and Future
Rundeck's History and FutureRundeck's History and Future
Rundeck's History and Future
 
Rundeck Open Source Workflow Automation
Rundeck Open Source Workflow AutomationRundeck Open Source Workflow Automation
Rundeck Open Source Workflow Automation
 
One Click Deploys using Rundeck
One Click Deploys using RundeckOne Click Deploys using Rundeck
One Click Deploys using Rundeck
 
How do I do DevOps when all I have is Ops?
How do I do DevOps when all I have is Ops?How do I do DevOps when all I have is Ops?
How do I do DevOps when all I have is Ops?
 
Techzone 2014 presentation rundeck
Techzone 2014 presentation rundeckTechzone 2014 presentation rundeck
Techzone 2014 presentation rundeck
 
Rundeck & Ansible
Rundeck & AnsibleRundeck & Ansible
Rundeck & Ansible
 
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)
 
Boulder dev ops-meetup-11-2012-rundeck
Boulder dev ops-meetup-11-2012-rundeckBoulder dev ops-meetup-11-2012-rundeck
Boulder dev ops-meetup-11-2012-rundeck
 
Successfully Navigate an EHR System Migration Webcast
Successfully Navigate an EHR System Migration WebcastSuccessfully Navigate an EHR System Migration Webcast
Successfully Navigate an EHR System Migration Webcast
 
Netcat
NetcatNetcat
Netcat
 
Building a loosely coupled toolchain with Rundeck and Puppet
Building a loosely coupled toolchain with Rundeck and PuppetBuilding a loosely coupled toolchain with Rundeck and Puppet
Building a loosely coupled toolchain with Rundeck and Puppet
 
TIAD - DYI: A simple orchestrator built step by step
TIAD - DYI: A simple orchestrator built step by stepTIAD - DYI: A simple orchestrator built step by step
TIAD - DYI: A simple orchestrator built step by step
 
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
 
Managing AWS infrastructure using CloudFormation
Managing AWS infrastructure using CloudFormationManaging AWS infrastructure using CloudFormation
Managing AWS infrastructure using CloudFormation
 
Dust.js
Dust.jsDust.js
Dust.js
 
Terraform: An Overview & Introduction
Terraform: An Overview & IntroductionTerraform: An Overview & Introduction
Terraform: An Overview & Introduction
 
Consul: Service-oriented at Scale
Consul: Service-oriented at ScaleConsul: Service-oriented at Scale
Consul: Service-oriented at Scale
 
Building a Service Delivery Platform - JCICPH 2014
Building a Service Delivery Platform - JCICPH 2014Building a Service Delivery Platform - JCICPH 2014
Building a Service Delivery Platform - JCICPH 2014
 
Building infrastructure with Terraform (Google)
Building infrastructure with Terraform (Google)Building infrastructure with Terraform (Google)
Building infrastructure with Terraform (Google)
 
Freelancing in America: 2015
Freelancing in America: 2015Freelancing in America: 2015
Freelancing in America: 2015
 

Similar to RunDeck

Blackhat Workshop
Blackhat WorkshopBlackhat Workshop
Blackhat Workshop
wremes
 
Odnoklassniki.ru Architecture
Odnoklassniki.ru ArchitectureOdnoklassniki.ru Architecture
Odnoklassniki.ru Architecture
Dmitry Buzdin
 
HTML5: Building the Next Generation of Web Applications
HTML5: Building the Next Generation of Web ApplicationsHTML5: Building the Next Generation of Web Applications
HTML5: Building the Next Generation of Web Applications
Chrome Developer Relations
 
Deployment presentation
Deployment presentationDeployment presentation
Deployment presentation
Corey Purcell
 
Conquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JSConquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JS
Caridy Patino
 
From Tomcat to Java EE, making the transition with TomEE
From Tomcat to Java EE, making the transition with TomEEFrom Tomcat to Java EE, making the transition with TomEE
From Tomcat to Java EE, making the transition with TomEE
jaxconf
 

Similar to RunDeck (20)

Blackhat Workshop
Blackhat WorkshopBlackhat Workshop
Blackhat Workshop
 
Odnoklassniki.ru Architecture
Odnoklassniki.ru ArchitectureOdnoklassniki.ru Architecture
Odnoklassniki.ru Architecture
 
Repeating History...On Purpose...with Elixir
Repeating History...On Purpose...with ElixirRepeating History...On Purpose...with Elixir
Repeating History...On Purpose...with Elixir
 
HTML5: Building the Next Generation of Web Applications
HTML5: Building the Next Generation of Web ApplicationsHTML5: Building the Next Generation of Web Applications
HTML5: Building the Next Generation of Web Applications
 
Spotify: Horizontal Scalability for Great Success
Spotify: Horizontal Scalability for Great SuccessSpotify: Horizontal Scalability for Great Success
Spotify: Horizontal Scalability for Great Success
 
Introduction to libre « fulltext » technology
Introduction to libre « fulltext » technologyIntroduction to libre « fulltext » technology
Introduction to libre « fulltext » technology
 
Nodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredevNodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredev
 
Apcug 2011 07-17-intro_to_drupal_jeff_schuler
Apcug 2011 07-17-intro_to_drupal_jeff_schulerApcug 2011 07-17-intro_to_drupal_jeff_schuler
Apcug 2011 07-17-intro_to_drupal_jeff_schuler
 
node.js for front-end developers
node.js for front-end developersnode.js for front-end developers
node.js for front-end developers
 
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan GallimoreJava EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
 
Railsconf 2010
Railsconf 2010Railsconf 2010
Railsconf 2010
 
Deployment presentation
Deployment presentationDeployment presentation
Deployment presentation
 
Spring Roo Add-On Development & Distribution
Spring Roo Add-On Development & DistributionSpring Roo Add-On Development & Distribution
Spring Roo Add-On Development & Distribution
 
Gentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingGentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile Everything
 
Node.js
Node.jsNode.js
Node.js
 
Intro to HTML5 Game Programming
Intro to HTML5 Game ProgrammingIntro to HTML5 Game Programming
Intro to HTML5 Game Programming
 
Caridy patino - node-js
Caridy patino - node-jsCaridy patino - node-js
Caridy patino - node-js
 
Conquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JSConquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JS
 
Introduction to node.js by Ran Mizrahi @ Reversim Summit
Introduction to node.js by Ran Mizrahi @ Reversim SummitIntroduction to node.js by Ran Mizrahi @ Reversim Summit
Introduction to node.js by Ran Mizrahi @ Reversim Summit
 
From Tomcat to Java EE, making the transition with TomEE
From Tomcat to Java EE, making the transition with TomEEFrom Tomcat to Java EE, making the transition with TomEE
From Tomcat to Java EE, making the transition with TomEE
 

More from Bruno Bonfils (12)

Drupal sso
Drupal ssoDrupal sso
Drupal sso
 
Vue d'ensemble du SSO
Vue d'ensemble du SSOVue d'ensemble du SSO
Vue d'ensemble du SSO
 
Splunk
SplunkSplunk
Splunk
 
iTop
iTopiTop
iTop
 
Présentation de l'association GUSES
Présentation de l'association GUSESPrésentation de l'association GUSES
Présentation de l'association GUSES
 
Métrologie des IOs
Métrologie des IOsMétrologie des IOs
Métrologie des IOs
 
Introduction à OpenSolaris
Introduction à OpenSolarisIntroduction à OpenSolaris
Introduction à OpenSolaris
 
Ldap
LdapLdap
Ldap
 
Zsh Rmll
Zsh RmllZsh Rmll
Zsh Rmll
 
Shell
ShellShell
Shell
 
La signature numérique
La signature numériqueLa signature numérique
La signature numérique
 
(Open)Solaris : Introduction aux zones et à ZFS
(Open)Solaris : Introduction aux zones et à ZFS(Open)Solaris : Introduction aux zones et à ZFS
(Open)Solaris : Introduction aux zones et à ZFS
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

RunDeck

  • 1. RunDeck Introduction and use cases Vincent Behar <vincent@behar.name> Bruno Bonfils <asyd@asyd.net> Follow us on twitter! @vbehar, @bbonfils jeudi 17 mars 2011
  • 3. What? • Job automation • Job scheduling the most awesome distributed command dispatching job console jeudi 17 mars 2011
  • 4. How? • Connect to nodes and execute a script/command • SSH (private key) • WebUI (Jetty + Grails) • CLI jeudi 17 mars 2011
  • 5. Installation • wget ... • java -jar rundeck-launcher-1.1.jar •a rpm is also available (a deb is coming soon) jeudi 17 mars 2011
  • 6. The configuration • One instance can handle multiple projects • Per project: • one XML file describe all available nodes • osArch, osFamily, tags • one XML per job • Jobs can be organized in groups jeudi 17 mars 2011
  • 7. A node resource sample <node name="asuka" type="Node" description="xen dom0" tags="xen" hostname="asuka.asyd.net" osArch="amd64" osFamily="unix" osName="Linux" osVersion="2.6.32-5-xen-amd64" username="asyd"/> jeudi 17 mars 2011
  • 8. A job sample [..] <name>www.rtl.fr</name> <group>lab/webapps/deploy</group> <context> <project>rtlnet</project> <options> <option name='version' value='LATEST' enforcedvalues='true' required='true' valuesUrl='http://..../' /> </options> </context> <sequence threadcount='1' keepgoing='false' strategy='node-first'> <command> <exec>cp /repository/${option.version} $CATALINA_HOME/webapps</exec> </command> </sequence> node-first: execute toute les commandes sur un node <nodefilters> avant de passer au node suivant <include> <tags>lab</tags> </include> step-first: execute la premiere sur chaque node </nodefilters> avant d’executer la commande suivante <dispatch> <threadcount>2</threadcount> <keepgoing>true</keepgoing> </dispatch> [..] jeudi 17 mars 2011
  • 9. Model providers • Rundeck can use remote URL to get: • the list of nodes (resource model provider) (XML) • already available: Amazon EC2, Puppet, Chef • the list of availables values for an option for a job(option model provider) (JSON) • already available: Jenkins, Nexus jeudi 17 mars 2011
  • 10. Access control • Users are authenticated via JAAS (LDAP, flat file, etc.) • Access control can be defined via policies • Rules by project, group, job jeudi 17 mars 2011
  • 11. RunDeck positioning Configuration management ad hoc control tools mcollective Fabric capistrano jeudi 17 mars 2011
  • 12. ad hoc control tools • rundeck: java, cli + webui, ssh (no agents), raw commands • controltier: java, cli + webui, agents on each node • mcollective: ruby, cli, publish/subscribe (jms) - agents on each node, DSL/plugins • capistrano: ruby, cli, ssh (no agents), DSL • fabric: python, cli, ssh (no agents), DSL jeudi 17 mars 2011
  • 13. Limitations of 1.1 • Only one private key (w/o passphrase) for all nodes • No official remote API (REST in 1.2) • Basic notifications by email (will be extended in 1.3) • About 3500 files descriptors are used by Rundeck at startup jeudi 17 mars 2011
  • 14. RunDeck 1.2 Released 20110315 • REST API (XML at the moment, JSON for the next release) • YAML available for jobs, resources (nodes), and ACL • Multi-valued options, useful for WebUI jeudi 17 mars 2011
  • 15. Real case @RTL jeudi 17 mars 2011
  • 16. Background • Technologies: Java, Tomcat, Maven • CI with Jenkins • Artifacts managed by Nexus •A test environnment •A production environment jeudi 17 mars 2011
  • 18. Success story •0 click deployment in test •1 click deployment in production • Automated and reproductible deployment • History of deployments in production (who, when, what) • The production deployment process is exactly the same as the test • More small deployments in production (less risky) jeudi 17 mars 2011