SlideShare a Scribd company logo
Xebia Workshop




                                             CloudInit


                          Xebia:             OpenCSI:
                          Bertrand Dechoux   Bruno Bonfils
                          Charles Blonde
                          Cyrille Le Clerc
                          Emmanuel Servent
                          Eric Briand




Saturday, August 13, 11
Introduction

     Goal: bootstrap a cloud instance

     How: give a file as parameter for the first
         instance start
           ▶ Retrievedfrom http://169.254.169.254/latest/user-data
           ▶ May be a multipart file



     Ubuntu project, exist for RPM based systems




                                                                     2
Saturday, August 13, 11
Some recipes examples

 Set the hostname
 Import SSH keys
 Declare apt mirror
 Install packages
 Execute commands
 Execute scripts
 Bootstrap Puppet / Chef




     Detailed sample : http://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/view/head:/doc/examples/cloud-config.txt


                                                                                                                               3
Saturday, August 13, 11
Advices


 CloudInit is not very well documented, use the
    source, good luck!

 Choose to use existing recipes or write your own




                                                     4
Saturday, August 13, 11
cloud-config: the key CloudInit script



                             #cloud-config

                             timezone: Europe/Paris

                             packages:
                             - puppet
                             - java-1.6.0-openjdk
                             - tomcat6
                             - tomcat6-webapps

                             runcmd:
                             - [service, tomcat6, start]
                             - [chkconfig, tomcat6, on]




                          Declarative YAML based configuration

                                                                 5
Saturday, August 13, 11
My own shell script

      #!/usr/bin/env bash

     instanceId=$(curl http://169.254.169.254/latest/meta-data/instance-id)
     fqdn="$instanceId.aws.labs.opencsi.com"

     sed -i.bak "s/HOSTNAME=.*/HOSTNAME=${fqdn}/" /etc/sysconfig/network
     hostname ${fqdn}

     echo "127.0.0.1        $id $fqdn" >> /etc/hosts

     # Now bootstrap puppet
     puppetd --no-daemonize --onetime -v --server=puppetmaster.aws.labs.opencsi.com




                                                                                      6
Saturday, August 13, 11
My own shell script
     #!/usr/bin/env python
   ...
   # INJECT DATABASE URL IN CATALINA.PROPERTIES

   f = open(catalinaBase + '/conf/catalina.properties', 'ab')
   f.write('nn# BEGIN OF ADDED BY CLOUD-INIT #n')

   f.write('jdbc.url=jdbc:mysql://my-db-host:3306/petclinicn')
   f.write('jdbc.username=petclinicn')
   f.write('jdbc.password=petclinicn')

   f.write('nn# END OF ADDED BY CLOUD-INIT #n')
   f.close()

   # DOWNLOAD AND DEPLOY WAR

   url = 'http://my-nexus/fr/xebia/.../1.0.2/petclinic-1.0.2.war'
   URLopener().retrieve(url, catalinaBase + '/webapps/petclinic.war')
   print('Downloaded ' + url + ' to ' + filename)


                          Inject database config in Tomcat
                                     Deploy war

                                                                        7
Saturday, August 13, 11
CloudInit resources


 https://help.ubuntu.com/community/CloudInit


 https://code.launchpad.net/~cloud-init-dev/
    cloud-init/trunk




                                                8
Saturday, August 13, 11
The Workshop
“Discover Java Infra as Code with Amazon AWS”


               http://code.google.com/p/xebia-france/wiki/
            JavaInfrastructureAsCodeWithAmazonAwsWorkshop




                                                             9
Saturday, August 13, 11

More Related Content

What's hot (20)

PDF
Sécurité des systèmes d’information industriels
PRONETIS
 
PPTX
Haute Disponibilité et Tolérance de Panne
Elior Boukhobza
 
PPTX
Introduction to helm
Jeeva Chelladhurai
 
PDF
Rootless Containers & Unresolved issues
Akihiro Suda
 
PDF
Comparing IaaS :VMware vs OpenStack vs Google’s Ganeti
GARL
 
PPTX
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
Simplilearn
 
PPSX
FD.IO Vector Packet Processing
Kernel TLV
 
PPTX
Introduction au Software Defined Networking (SDN)
Edouard DEBERDT
 
PDF
Kubernetes Interview Questions And Answers | Kubernetes Tutorial | Kubernetes...
Edureka!
 
PPTX
Ansible presentation
Suresh Kumar
 
PPTX
Opendaylight SDN Controller
Sumit Arora
 
PDF
Ansible 101
Gena Mykhailiuta
 
PDF
[Golang] 以 Mobile App 工程師視角,帶你進入 Golang 的世界 (Introduction of GoLang)
Johnny Sung
 
PDF
Ansible Introduction
Robert Reiz
 
PDF
Rootless Containers
Akihiro Suda
 
PDF
Ultra fast DDoS Detection with FastNetMon at Coloclue (AS 8283)
Pavel Odintsov
 
PDF
configuration vpn-ipsec-routeur
JULIOR MIKALA
 
PDF
Tutoriel GIT
Francois ANDRE
 
PDF
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Daniel Oh
 
Sécurité des systèmes d’information industriels
PRONETIS
 
Haute Disponibilité et Tolérance de Panne
Elior Boukhobza
 
Introduction to helm
Jeeva Chelladhurai
 
Rootless Containers & Unresolved issues
Akihiro Suda
 
Comparing IaaS :VMware vs OpenStack vs Google’s Ganeti
GARL
 
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
Simplilearn
 
FD.IO Vector Packet Processing
Kernel TLV
 
Introduction au Software Defined Networking (SDN)
Edouard DEBERDT
 
Kubernetes Interview Questions And Answers | Kubernetes Tutorial | Kubernetes...
Edureka!
 
Ansible presentation
Suresh Kumar
 
Opendaylight SDN Controller
Sumit Arora
 
Ansible 101
Gena Mykhailiuta
 
[Golang] 以 Mobile App 工程師視角,帶你進入 Golang 的世界 (Introduction of GoLang)
Johnny Sung
 
Ansible Introduction
Robert Reiz
 
Rootless Containers
Akihiro Suda
 
Ultra fast DDoS Detection with FastNetMon at Coloclue (AS 8283)
Pavel Odintsov
 
configuration vpn-ipsec-routeur
JULIOR MIKALA
 
Tutoriel GIT
Francois ANDRE
 
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Daniel Oh
 

Viewers also liked (20)

PPTX
Cloud init and cloud provisioning [openstack summit vancouver]
Joshua Harlow
 
PDF
Cloudinit
sriram_rajan
 
PDF
CloudOps CloudStack Days, Austin April 2015
CloudOps2005
 
PPTX
Architecting Ceph Solutions
Red_Hat_Storage
 
PPTX
GoDaddy's OpenStack Journey
Joshua Harlow
 
PPT
Chevaliez du hépatites 2015
odeckmyn
 
PPTX
HC250-CFD.PPTX
ajaya gummadi
 
PDF
High availability and fault tolerance of openstack
Deepak Mane
 
PPTX
User Experience Fission Team Training
Fission Strategy
 
PDF
Ceph Object Storage at Spreadshirt (July 2015, Ceph Berlin Meetup)
Jens Hadlich
 
PPT
C cloud organizational_impacts_big_data_on-prem_vs_off-premise_john_sing
John Sing
 
PPTX
Grid syste Layout (960)
Mohammad Abuzaid
 
PDF
Ceph Object Store
Daniel Schneller
 
PPTX
Don’t Redesign Your Website in the Dark: Master the redesign process with cus...
Optimizely
 
PPTX
Ceph at Work in Bloomberg: Object Store, RBD and OpenStack
Red_Hat_Storage
 
PPTX
OpenStack HA
Kenneth Hui
 
PPTX
Optimizing VM images for OpenStack with KVM/QEMU
OpenStack Foundation
 
PPTX
What you need to know about ceph
Emma Haruka Iwao
 
PDF
High Availability for OpenStack
Kamesh Pemmaraju
 
PDF
Storage tiering and erasure coding in Ceph (SCaLE13x)
Sage Weil
 
Cloud init and cloud provisioning [openstack summit vancouver]
Joshua Harlow
 
Cloudinit
sriram_rajan
 
CloudOps CloudStack Days, Austin April 2015
CloudOps2005
 
Architecting Ceph Solutions
Red_Hat_Storage
 
GoDaddy's OpenStack Journey
Joshua Harlow
 
Chevaliez du hépatites 2015
odeckmyn
 
HC250-CFD.PPTX
ajaya gummadi
 
High availability and fault tolerance of openstack
Deepak Mane
 
User Experience Fission Team Training
Fission Strategy
 
Ceph Object Storage at Spreadshirt (July 2015, Ceph Berlin Meetup)
Jens Hadlich
 
C cloud organizational_impacts_big_data_on-prem_vs_off-premise_john_sing
John Sing
 
Grid syste Layout (960)
Mohammad Abuzaid
 
Ceph Object Store
Daniel Schneller
 
Don’t Redesign Your Website in the Dark: Master the redesign process with cus...
Optimizely
 
Ceph at Work in Bloomberg: Object Store, RBD and OpenStack
Red_Hat_Storage
 
OpenStack HA
Kenneth Hui
 
Optimizing VM images for OpenStack with KVM/QEMU
OpenStack Foundation
 
What you need to know about ceph
Emma Haruka Iwao
 
High Availability for OpenStack
Kamesh Pemmaraju
 
Storage tiering and erasure coding in Ceph (SCaLE13x)
Sage Weil
 
Ad

Similar to CloudInit Introduction (20)

KEY
From Dev to DevOps - ApacheCON NA 2011
Carlos Sanchez
 
PDF
From Dev to DevOps
Agile Spain
 
PDF
Deploying Hadoop-Based Bigdata Environments
Puppet
 
PDF
Deploying Hadoop-based Bigdata Environments
buildacloud
 
PDF
Priming Your Teams For Microservice Deployment to the Cloud
Matt Callanan
 
PDF
OpenStack & Ubuntu (india openstack day)
openstackindia
 
PDF
From Dev to DevOps - Codemotion ES 2012
Carlos Sanchez
 
PDF
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Carlos Sanchez
 
KEY
Puppet for Java developers - JavaZone NO 2012
Carlos Sanchez
 
PDF
Introduction to OpenStack Heat
openstackindia
 
PDF
Heat - keep the clouds up
Kiran Murari
 
PDF
Chef For OpenStack Overview
OpenStack Foundation
 
PDF
2013 05-openstack-israel-heat
Alex Heneveld
 
PDF
SCALE 2011 Deploying OpenStack with Chef
Matt Ray
 
PPTX
vBACD - Crash Course in Open Source Cloud Computing - 2/28
CloudStack - Open Source Cloud Computing Project
 
PDF
Build your own clouds with Chef and MCollective
Jonathan Weiss
 
PDF
TXLF: Automated Deployment of OpenStack with Chef
Matt Ray
 
PDF
Delivering Infrastructure-as-a-Service with Open Source Software
Mark Hinkle
 
PDF
Infrastructure as Code with Chef / Puppet
Edmund Siegfried Haselwanter
 
PPTX
Overview: Building Open Source Cloud Computing Environments
Mark Hinkle
 
From Dev to DevOps - ApacheCON NA 2011
Carlos Sanchez
 
From Dev to DevOps
Agile Spain
 
Deploying Hadoop-Based Bigdata Environments
Puppet
 
Deploying Hadoop-based Bigdata Environments
buildacloud
 
Priming Your Teams For Microservice Deployment to the Cloud
Matt Callanan
 
OpenStack & Ubuntu (india openstack day)
openstackindia
 
From Dev to DevOps - Codemotion ES 2012
Carlos Sanchez
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Carlos Sanchez
 
Puppet for Java developers - JavaZone NO 2012
Carlos Sanchez
 
Introduction to OpenStack Heat
openstackindia
 
Heat - keep the clouds up
Kiran Murari
 
Chef For OpenStack Overview
OpenStack Foundation
 
2013 05-openstack-israel-heat
Alex Heneveld
 
SCALE 2011 Deploying OpenStack with Chef
Matt Ray
 
vBACD - Crash Course in Open Source Cloud Computing - 2/28
CloudStack - Open Source Cloud Computing Project
 
Build your own clouds with Chef and MCollective
Jonathan Weiss
 
TXLF: Automated Deployment of OpenStack with Chef
Matt Ray
 
Delivering Infrastructure-as-a-Service with Open Source Software
Mark Hinkle
 
Infrastructure as Code with Chef / Puppet
Edmund Siegfried Haselwanter
 
Overview: Building Open Source Cloud Computing Environments
Mark Hinkle
 
Ad

More from Publicis Sapient Engineering (20)

PDF
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
Publicis Sapient Engineering
 
PDF
Xebicon'18 - IoT: From Edge to Cloud
Publicis Sapient Engineering
 
PDF
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Modern Infrastructure
Publicis Sapient Engineering
 
PDF
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Le développeur dans la Pop Culture
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Architecturer son application mobile pour la durabilité
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Sécuriser son API avec OpenID Connect
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Spark NLP, un an après
Publicis Sapient Engineering
 
PDF
XebiCon'18 - La sécurité, douce illusion même en 2018
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
Publicis Sapient Engineering
 
PDF
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
Publicis Sapient Engineering
 
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
Publicis Sapient Engineering
 
Xebicon'18 - IoT: From Edge to Cloud
Publicis Sapient Engineering
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Publicis Sapient Engineering
 
XebiCon'18 - Modern Infrastructure
Publicis Sapient Engineering
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
Publicis Sapient Engineering
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
Publicis Sapient Engineering
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
Publicis Sapient Engineering
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
Publicis Sapient Engineering
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
Publicis Sapient Engineering
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
Publicis Sapient Engineering
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
Publicis Sapient Engineering
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
Publicis Sapient Engineering
 
XebiCon'18 - Le développeur dans la Pop Culture
Publicis Sapient Engineering
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
Publicis Sapient Engineering
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
Publicis Sapient Engineering
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
Publicis Sapient Engineering
 
XebiCon'18 - Spark NLP, un an après
Publicis Sapient Engineering
 
XebiCon'18 - La sécurité, douce illusion même en 2018
Publicis Sapient Engineering
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
Publicis Sapient Engineering
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
Publicis Sapient Engineering
 

Recently uploaded (20)

PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Python basic programing language for automation
DanialHabibi2
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 

CloudInit Introduction

  • 1. Xebia Workshop CloudInit Xebia: OpenCSI: Bertrand Dechoux Bruno Bonfils Charles Blonde Cyrille Le Clerc Emmanuel Servent Eric Briand Saturday, August 13, 11
  • 2. Introduction  Goal: bootstrap a cloud instance  How: give a file as parameter for the first instance start ▶ Retrievedfrom http://169.254.169.254/latest/user-data ▶ May be a multipart file  Ubuntu project, exist for RPM based systems 2 Saturday, August 13, 11
  • 3. Some recipes examples  Set the hostname  Import SSH keys  Declare apt mirror  Install packages  Execute commands  Execute scripts  Bootstrap Puppet / Chef Detailed sample : http://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/view/head:/doc/examples/cloud-config.txt 3 Saturday, August 13, 11
  • 4. Advices  CloudInit is not very well documented, use the source, good luck!  Choose to use existing recipes or write your own 4 Saturday, August 13, 11
  • 5. cloud-config: the key CloudInit script #cloud-config timezone: Europe/Paris packages: - puppet - java-1.6.0-openjdk - tomcat6 - tomcat6-webapps runcmd: - [service, tomcat6, start] - [chkconfig, tomcat6, on] Declarative YAML based configuration 5 Saturday, August 13, 11
  • 6. My own shell script #!/usr/bin/env bash instanceId=$(curl http://169.254.169.254/latest/meta-data/instance-id) fqdn="$instanceId.aws.labs.opencsi.com" sed -i.bak "s/HOSTNAME=.*/HOSTNAME=${fqdn}/" /etc/sysconfig/network hostname ${fqdn} echo "127.0.0.1 $id $fqdn" >> /etc/hosts # Now bootstrap puppet puppetd --no-daemonize --onetime -v --server=puppetmaster.aws.labs.opencsi.com 6 Saturday, August 13, 11
  • 7. My own shell script #!/usr/bin/env python ... # INJECT DATABASE URL IN CATALINA.PROPERTIES f = open(catalinaBase + '/conf/catalina.properties', 'ab') f.write('nn# BEGIN OF ADDED BY CLOUD-INIT #n') f.write('jdbc.url=jdbc:mysql://my-db-host:3306/petclinicn') f.write('jdbc.username=petclinicn') f.write('jdbc.password=petclinicn') f.write('nn# END OF ADDED BY CLOUD-INIT #n') f.close() # DOWNLOAD AND DEPLOY WAR url = 'http://my-nexus/fr/xebia/.../1.0.2/petclinic-1.0.2.war' URLopener().retrieve(url, catalinaBase + '/webapps/petclinic.war') print('Downloaded ' + url + ' to ' + filename) Inject database config in Tomcat Deploy war 7 Saturday, August 13, 11
  • 8. CloudInit resources  https://help.ubuntu.com/community/CloudInit  https://code.launchpad.net/~cloud-init-dev/ cloud-init/trunk 8 Saturday, August 13, 11
  • 9. The Workshop “Discover Java Infra as Code with Amazon AWS”  http://code.google.com/p/xebia-france/wiki/ JavaInfrastructureAsCodeWithAmazonAwsWorkshop 9 Saturday, August 13, 11