Puppet and Vagrant in development

Adam Culp
Adam CulpWeb Engineer/Consultant at Rogue Wave
Puppet and Vagrant in Development




   View details and rate at https://joind.in/6709
Puppet and Vagrant in Development

   Puppet is:
       Automation software to      help   system   admins
        manage infrastructure.
       Automates provisioning and configuration
       Automate repetitive tasks
       Ensure stability through consistency
       Open source and commercial versions
Puppet and Vagrant in Development

   Puppet Components:
       Puppet Master
       Puppet Agent
       Puppet Enterprise Console (not in open source)
       Puppet Module Tool
       Puppet Compliance
       Mcollective
       Facter
Puppet and Vagrant in Development

   Third-party Product Needs:
       Ruby
       Apache HTTP server
       Phusion Passenger
       ActiveMQ
       Ruby on Rails
Puppet and Vagrant in Development

   Supported Operating Systems:
       RHEL
       CentOS
       Ubuntu
       Debian
       Scientific Linux
       Oracle Linux
       SUSE
       Solaris
       Windows
Puppet and Vagrant in Development
   Pieces
       Modules for
        popular
        configurations
       Compose
        application stack
        needed
       Rollout to the
        node
Puppet and Vagrant in Development
   Workflow
       Node informs Puppet Master of status
       Puppet Master compiles a catalog
       Node complies with catalog
       Puppet Agent on client reports back to Puppet
        Master
       Puppet Master reports to Report Collector.
Puppet and Vagrant in Development
Puppet and Vagrant in Development
   Sample Usages
       Roll out another node in a cluster
                   Webserver
                   Email server
                   Database server
                   Etc.
       Add another workstation
       Create lifecycle machine
                   Development
                   Testing
                   Staging
                   Production
Puppet and Vagrant in Development
   Puppet Resources
       Puppet defines resources in a array'ish language
User { 'dave':
    Ensure => present,
    uid => '507',
    gid => 'admin',
    shell => '/bin/zsh',
    home => '/home/dave',
    managehome => true,
}

       We can see the parts of the structure
                   Type = User
                   Title = Dave
                   Attributes
                   Values
Puppet and Vagrant in Development
   Puppet Adding a Resources
       What does it look like:
$ puppet resource user dave ensure=present shell=”/bin/zsh”
home=”/home/dave” managehome=true
       Would output:
Notice: /User[dave]/ensure: created
User { 'dave':
    Ensure => present,
    uid => '507',
    gid => 'admin',
    shell => '/bin/zsh',
    home => '/home/dave',
    managehome => true,
}
Puppet and Vagrant in Development
   Puppet Manifests
       Can inform Puppet what to do in bulk using
        manifests.
$ puppet apply my_test_manifest.pp

       Manifest would look like:
# /path/to/my_test_manifest.pp
User { 'dave':
    Ensure => present,
    uid => '507',
    gid => 'admin',
    shell => '/bin/zsh',
    home => '/home/dave',
    managehome => true,
}
Puppet and Vagrant in Development
   Puppet Manifest Classes
       The Puppet manifests can become complex.
Class ntp {
    package { 'ntp':
        ensure => installed,
    }

    service { 'ntp':
        name => 'ntpd',
        ensure => running,
        enable => true,
        subscribe => File['ntp.conf'],
    }
}
Puppet and Vagrant in Development
   Puppet Training
       Materials available on PuppetLabs site for FREE
        download.
                  Learning Puppet Tutorial
                  Learn Puppet VM to train on (VMWare or
                    VirtualBox)
                  Module cheatsheet
                  Core types cheatsheet
                  Users Guide
                  Dashboard Manual
Puppet and Vagrant in Development
   Provisioned Your Way
       VirtualBox – through 3rd party
       VMWare – direct Puppet support
       Cloud – direct Puppet support
       Traditional hardware - standard
Puppet and Vagrant in Development
   Vagrant
       Virtualized development made easy
                  Lowers setup time
                  Eliminates “works on my machine” excuse
                  Uses Oracle VirtualBox
                  Can use Puppet or Chef
                  FREE and open source
Puppet and Vagrant in Development
   Vagrant setup items needed for this example
       Get VirtualBox from Oracle's download page
       Install Ruby
                   Required by Vagrant, Chef and/or Puppet.
       Install Vagrant
                   Talks to VirtualBox and builds virtual machine
                     based on a “base box”.
       Decide on whether to use Chef or Puppet.
                   Enables setup and configuration of advanced
                     services you may need in your environment.
Puppet and Vagrant in Development
   Vagrant Basic How To
       Create a directory and change to the new directory
        via command line.
       Execute three simple commands:
$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
$ vagrant init lucid32
$ vagrant up

       We now have a working Ubuntu (Lucid Lynx 32 bit)
        linux server running. However it is very “bare
        bones”.
       List installed Boxes
$ vagrant box list
Puppet and Vagrant in Development
   Benefits of Using Vagrant
       Solo Developers
                   Maintain consistency across multiple projects.
                   Run multiple environments on a single home
                     machine. (Dev., Test, Staging)
                   Easily tear down and rebuild
       Teams
                   Identical development environments. Consistent
                      and portable.
       Companies
                   Easier onboarding of new talent.
                   Build development environment      once   and
                     distribute to teams.
Puppet and Vagrant in Development
   Vagrant Configuration
       Vagrantfile
                  Simply Ruby code which typically contains a
                    Vagrant configuration block.
                  First thing loaded by Vagrant.
                  Basic file created when 'init' is called from within
                    a directory.
                  Add more options for more configuration.
Puppet and Vagrant in Development
   Vagrant Base Box
       Many base boxes available over the Internet, or you
        can create your own.
                Creation convention should be followed
       A base box must be added via local file or HTTP
$ vagrant box add {name} {location to pull from}

       Or you can remove current base boxes
$ vagrant box remove {name}

       Base box is defined in the Vagrantfile
Vagrant::Config.run do |config|
    config.vm.box = “lucid32”
end
Puppet and Vagrant in Development
   Testing/Running
       To launch the bootup/provision we simply tell
        Vagrant “up”.
$ vagrant up

       Or if you “suspended” to shut down last time you
        would use “resume”.
       To shut down we can either “suspend” to save the
        current state of the machine (does not return disk
        space, about 1GB), “destroy” everything (requires
        re-provision), or “halt” which is a graceful
        shutdown.
$ vagrant destroy
$ vagrant halt
Puppet and Vagrant in Development
   SSH
       Vagrant makes SSH easy to the virtual machine
        from within the project directory.
$ vagrant ssh

       Project files are available at '/vagrant' by default,
        but can be changed.
       The VM has both read and write access to the
        shared folder.
       To gain root (su) access the password is 'vagrant'
Puppet and Vagrant in Development
   Provisioning
       Using Chef or Puppet we can create a manifest to
        alter the VM.
                 Install apps
                 Edit config files


                 Many tasks needed to go from Base Box

                    to desired environment.
       Manifests (or recipe for Chef)
                  Manifests sub-directory within project.
                  Default.pp is the default file loaded.
Puppet and Vagrant in Development
   Port Forwarding
       By default your host machine should be able to
        access the virtual machine by IP address. However,
        we need to activate port forwarding for services.
       For HTTP:
Vagrant::Config.run do |config|
    # Forward guest port 80 to host port 4567
    config.vm.forward_port 80, 4567
end

       Then we simply reload Vagrant.
$ vagrant reload
Puppet and Vagrant in Development
   Packaging
       Start with a Base Box
                   Customize it as needed, unless relying solely on
                     provisioning with Chef or Puppet.
                   Run command to package
$ vagrant package –vagrantfile Vagrantfile.pkg
                   Creates 'package.box' in same directory.
                   Distribute via raw file or via HTTP, for others.
                   Other users can now use:
$ vagrant box add my_box /path/to/the/package.box
$ vagrant init my_box
$ vagrant up
Puppet and Vagrant in Development
   Advanced Capabilities of Vagrant
       Many   advanced      topics     available   under
        Documentation on the Vagrant site.
                  Modules within Manifests to encapsulate
                    Puppet files.
                  Create your own Base Boxes
                  Multi-VM Environment
                  Plugins
                  NFS Shared Folders
Puppet and Vagrant in Development
   Resources
       http://vagrantup.com
       http://puppetlabs.com
       http://opscode.com/chef/
       http://virtualbox.org



         View details and rate at https://joind.in/6709
Puppet and Vagrant in Development

   Thank you


                   Adam Culp
            http://www.geekyboy.com
           http://github.com/adamculp
                Twitter @adamculp
1 of 29

Recommended

Vagrant + Docker provider [+Puppet] by
Vagrant + Docker provider [+Puppet]Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Nicolas Poggi
17.1K views29 slides
Docker workshop by
Docker workshopDocker workshop
Docker workshopEvans Ye
2K views66 slides
Vagrant + Docker by
Vagrant + DockerVagrant + Docker
Vagrant + DockerDavid Giordano
7.7K views18 slides
Vagrant and docker by
Vagrant and dockerVagrant and docker
Vagrant and dockerDuckDuckGo
396 views25 slides
Installaling Puppet Master and Agent by
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and AgentRanjit Avasarala
1.2K views14 slides
Vagrant by
VagrantVagrant
VagrantMichael Peacock
2K views114 slides

More Related Content

What's hot

A Hands-on Introduction to Docker by
A Hands-on Introduction to DockerA Hands-on Introduction to Docker
A Hands-on Introduction to DockerCodeOps Technologies LLP
1.2K views151 slides
Docker - From Walking To Running by
Docker - From Walking To RunningDocker - From Walking To Running
Docker - From Walking To RunningGiacomo Vacca
720 views36 slides
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH by
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGHDeploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGHErica Windisch
53.4K views64 slides
How To Set a Vagrant Development System by
How To Set a Vagrant Development SystemHow To Set a Vagrant Development System
How To Set a Vagrant Development SystemPaul Bearne
17.8K views27 slides
The state of the swarm by
The state of the swarmThe state of the swarm
The state of the swarmMathieu Buffenoir
9.5K views25 slides
Tech Talk - Vagrant by
Tech Talk - VagrantTech Talk - Vagrant
Tech Talk - VagrantThomas Krille
826 views31 slides

What's hot(20)

Docker - From Walking To Running by Giacomo Vacca
Docker - From Walking To RunningDocker - From Walking To Running
Docker - From Walking To Running
Giacomo Vacca720 views
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH by Erica Windisch
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGHDeploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Erica Windisch53.4K views
How To Set a Vagrant Development System by Paul Bearne
How To Set a Vagrant Development SystemHow To Set a Vagrant Development System
How To Set a Vagrant Development System
Paul Bearne17.8K views
Learn docker in 90 minutes by Larry Cai
Learn docker in 90 minutesLearn docker in 90 minutes
Learn docker in 90 minutes
Larry Cai22.8K views
Docker 101 - from 0 to Docker in 30 minutes by Luciano Fiandesio
Docker 101 - from 0 to Docker in 30 minutesDocker 101 - from 0 to Docker in 30 minutes
Docker 101 - from 0 to Docker in 30 minutes
Luciano Fiandesio861 views
Docker by Chen Chun
DockerDocker
Docker
Chen Chun1.1K views
Using Docker with Puppet - PuppetConf 2014 by Puppet
Using Docker with Puppet - PuppetConf 2014Using Docker with Puppet - PuppetConf 2014
Using Docker with Puppet - PuppetConf 2014
Puppet45.3K views
Docker - The Linux Container by Balaji Rajan
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
Balaji Rajan13.5K views
Docker Introductory workshop by Runcy Oommen
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
Runcy Oommen536 views
Docker and Containers for Development and Deployment — SCALE12X by Jérôme Petazzoni
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12X
Jérôme Petazzoni25.5K views
From development environments to production deployments with Docker, Compose,... by Jérôme Petazzoni
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...
Jérôme Petazzoni33K views
Introduction to Docker and deployment and Azure by Jérôme Petazzoni
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and Azure
Jérôme Petazzoni2.1K views
Vagrant vs Docker by jchase50
Vagrant vs DockerVagrant vs Docker
Vagrant vs Docker
jchase508.8K views

Similar to Puppet and Vagrant in development

Harmonious Development: Standardizing The Deployment Process via Vagrant and ... by
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...Acquia
2.2K views54 slides
From Dev to DevOps by
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOpsAgile Spain
1.8K views96 slides
Cooking Perl with Chef: Hello World Tutorial by
Cooking Perl with Chef: Hello World TutorialCooking Perl with Chef: Hello World Tutorial
Cooking Perl with Chef: Hello World TutorialDavid Golden
6.8K views7 slides
From Dev to DevOps - FOSDEM 2012 by
From Dev to DevOps - FOSDEM 2012From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012Carlos Sanchez
6.8K views93 slides
Create Development and Production Environments with Vagrant by
Create Development and Production Environments with VagrantCreate Development and Production Environments with Vagrant
Create Development and Production Environments with VagrantBrian Hogan
3.5K views43 slides
From Dev to DevOps - Codemotion ES 2012 by
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012Carlos Sanchez
2.3K views75 slides

Similar to Puppet and Vagrant in development(20)

Harmonious Development: Standardizing The Deployment Process via Vagrant and ... by Acquia
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Acquia2.2K views
From Dev to DevOps by Agile Spain
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOps
Agile Spain1.8K views
Cooking Perl with Chef: Hello World Tutorial by David Golden
Cooking Perl with Chef: Hello World TutorialCooking Perl with Chef: Hello World Tutorial
Cooking Perl with Chef: Hello World Tutorial
David Golden6.8K views
From Dev to DevOps - FOSDEM 2012 by Carlos Sanchez
From Dev to DevOps - FOSDEM 2012From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012
Carlos Sanchez6.8K views
Create Development and Production Environments with Vagrant by Brian Hogan
Create Development and Production Environments with VagrantCreate Development and Production Environments with Vagrant
Create Development and Production Environments with Vagrant
Brian Hogan3.5K views
From Dev to DevOps - Codemotion ES 2012 by Carlos Sanchez
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012
Carlos Sanchez2.3K views
Harmonious Development: Via Vagrant and Puppet by Achieve Internet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
Achieve Internet4.7K views
Vagrant - Version control your dev environment by bocribbz
Vagrant - Version control your dev environmentVagrant - Version control your dev environment
Vagrant - Version control your dev environment
bocribbz3.7K views
From Dev to DevOps - ApacheCON NA 2011 by Carlos Sanchez
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011
Carlos Sanchez5.4K views
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013 by Carlos Sanchez
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Carlos Sanchez16.9K views
Create your very own Development Environment with Vagrant and Packer by frastel
Create your very own Development Environment with Vagrant and PackerCreate your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and Packer
frastel3.6K views
DevOps Hackathon - Session 1: Vagrant by Antons Kranga
DevOps Hackathon - Session 1: VagrantDevOps Hackathon - Session 1: Vagrant
DevOps Hackathon - Session 1: Vagrant
Antons Kranga3.2K views
Getting started with puppet and vagrant (1) by Puppet
Getting started with puppet and vagrant (1)Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)
Puppet1.4K views
Virtualize and automate your development environment for fun and profit by Andreas Heim
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
Andreas Heim2.3K views
Quick & Easy Dev Environments with Vagrant by Joe Ferguson
Quick & Easy Dev Environments with VagrantQuick & Easy Dev Environments with Vagrant
Quick & Easy Dev Environments with Vagrant
Joe Ferguson1.6K views

More from Adam Culp

Hypermedia by
HypermediaHypermedia
HypermediaAdam Culp
651 views42 slides
Putting legacy to REST with middleware by
Putting legacy to REST with middlewarePutting legacy to REST with middleware
Putting legacy to REST with middlewareAdam Culp
2.2K views49 slides
php-1701-a by
php-1701-aphp-1701-a
php-1701-aAdam Culp
217 views50 slides
Release your refactoring superpower by
Release your refactoring superpowerRelease your refactoring superpower
Release your refactoring superpowerAdam Culp
214 views82 slides
Managing Technical Debt by
Managing Technical DebtManaging Technical Debt
Managing Technical DebtAdam Culp
215 views34 slides
Developing PHP Applications Faster by
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications FasterAdam Culp
482 views56 slides

More from Adam Culp(20)

Hypermedia by Adam Culp
HypermediaHypermedia
Hypermedia
Adam Culp651 views
Putting legacy to REST with middleware by Adam Culp
Putting legacy to REST with middlewarePutting legacy to REST with middleware
Putting legacy to REST with middleware
Adam Culp2.2K views
php-1701-a by Adam Culp
php-1701-aphp-1701-a
php-1701-a
Adam Culp217 views
Release your refactoring superpower by Adam Culp
Release your refactoring superpowerRelease your refactoring superpower
Release your refactoring superpower
Adam Culp214 views
Managing Technical Debt by Adam Culp
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
Adam Culp215 views
Developing PHP Applications Faster by Adam Culp
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications Faster
Adam Culp482 views
Containing Quality by Adam Culp
Containing QualityContaining Quality
Containing Quality
Adam Culp224 views
Debugging elephpants by Adam Culp
Debugging elephpantsDebugging elephpants
Debugging elephpants
Adam Culp331 views
Zend expressive workshop by Adam Culp
Zend expressive workshopZend expressive workshop
Zend expressive workshop
Adam Culp1.7K views
Expressive Microservice Framework Blastoff by Adam Culp
Expressive Microservice Framework BlastoffExpressive Microservice Framework Blastoff
Expressive Microservice Framework Blastoff
Adam Culp1.6K views
Foundations of Zend Framework by Adam Culp
Foundations of Zend FrameworkFoundations of Zend Framework
Foundations of Zend Framework
Adam Culp975 views
Accidental professional by Adam Culp
Accidental professionalAccidental professional
Accidental professional
Adam Culp811 views
Build great products by Adam Culp
Build great productsBuild great products
Build great products
Adam Culp1K views
Does Your Code Measure Up? by Adam Culp
Does Your Code Measure Up?Does Your Code Measure Up?
Does Your Code Measure Up?
Adam Culp1.8K views
Practical PHP Deployment with Jenkins by Adam Culp
Practical PHP Deployment with JenkinsPractical PHP Deployment with Jenkins
Practical PHP Deployment with Jenkins
Adam Culp11.3K views
Virtualizing Development by Adam Culp
Virtualizing DevelopmentVirtualizing Development
Virtualizing Development
Adam Culp1.5K views
Refactoring Legacy Code by Adam Culp
Refactoring Legacy CodeRefactoring Legacy Code
Refactoring Legacy Code
Adam Culp4.3K views
Deprecated: Foundations of Zend Framework 2 by Adam Culp
Deprecated: Foundations of Zend Framework 2Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2
Adam Culp3.4K views
Clean application development tutorial by Adam Culp
Clean application development tutorialClean application development tutorial
Clean application development tutorial
Adam Culp8K views
Refactoring 101 by Adam Culp
Refactoring 101Refactoring 101
Refactoring 101
Adam Culp7.1K views

Recently uploaded

How to reduce cold starts for Java Serverless applications in AWS at JCON Wor... by
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...Vadym Kazulkin
70 views64 slides
Samsung: CMM-H Tiered Memory Solution with Built-in DRAM by
Samsung: CMM-H Tiered Memory Solution with Built-in DRAMSamsung: CMM-H Tiered Memory Solution with Built-in DRAM
Samsung: CMM-H Tiered Memory Solution with Built-in DRAMCXL Forum
105 views7 slides
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...NUS-ISS
28 views35 slides
MemVerge: Memory Viewer Software by
MemVerge: Memory Viewer SoftwareMemVerge: Memory Viewer Software
MemVerge: Memory Viewer SoftwareCXL Forum
118 views10 slides
Photowave Presentation Slides - 11.8.23.pptx by
Photowave Presentation Slides - 11.8.23.pptxPhotowave Presentation Slides - 11.8.23.pptx
Photowave Presentation Slides - 11.8.23.pptxCXL Forum
126 views16 slides
MemVerge: Gismo (Global IO-free Shared Memory Objects) by
MemVerge: Gismo (Global IO-free Shared Memory Objects)MemVerge: Gismo (Global IO-free Shared Memory Objects)
MemVerge: Gismo (Global IO-free Shared Memory Objects)CXL Forum
112 views16 slides

Recently uploaded(20)

How to reduce cold starts for Java Serverless applications in AWS at JCON Wor... by Vadym Kazulkin
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
Vadym Kazulkin70 views
Samsung: CMM-H Tiered Memory Solution with Built-in DRAM by CXL Forum
Samsung: CMM-H Tiered Memory Solution with Built-in DRAMSamsung: CMM-H Tiered Memory Solution with Built-in DRAM
Samsung: CMM-H Tiered Memory Solution with Built-in DRAM
CXL Forum105 views
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by NUS-ISS
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
NUS-ISS28 views
MemVerge: Memory Viewer Software by CXL Forum
MemVerge: Memory Viewer SoftwareMemVerge: Memory Viewer Software
MemVerge: Memory Viewer Software
CXL Forum118 views
Photowave Presentation Slides - 11.8.23.pptx by CXL Forum
Photowave Presentation Slides - 11.8.23.pptxPhotowave Presentation Slides - 11.8.23.pptx
Photowave Presentation Slides - 11.8.23.pptx
CXL Forum126 views
MemVerge: Gismo (Global IO-free Shared Memory Objects) by CXL Forum
MemVerge: Gismo (Global IO-free Shared Memory Objects)MemVerge: Gismo (Global IO-free Shared Memory Objects)
MemVerge: Gismo (Global IO-free Shared Memory Objects)
CXL Forum112 views
Understanding GenAI/LLM and What is Google Offering - Felix Goh by NUS-ISS
Understanding GenAI/LLM and What is Google Offering - Felix GohUnderstanding GenAI/LLM and What is Google Offering - Felix Goh
Understanding GenAI/LLM and What is Google Offering - Felix Goh
NUS-ISS39 views
TE Connectivity: Card Edge Interconnects by CXL Forum
TE Connectivity: Card Edge InterconnectsTE Connectivity: Card Edge Interconnects
TE Connectivity: Card Edge Interconnects
CXL Forum96 views
GigaIO: The March of Composability Onward to Memory with CXL by CXL Forum
GigaIO: The March of Composability Onward to Memory with CXLGigaIO: The March of Composability Onward to Memory with CXL
GigaIO: The March of Composability Onward to Memory with CXL
CXL Forum126 views
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu... by NUS-ISS
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
NUS-ISS32 views
Liqid: Composable CXL Preview by CXL Forum
Liqid: Composable CXL PreviewLiqid: Composable CXL Preview
Liqid: Composable CXL Preview
CXL Forum121 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst449 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi113 views
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ... by Fwdays
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ..."Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
Fwdays33 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman25 views
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure by CXL Forum
Astera Labs:  Intelligent Connectivity for Cloud and AI InfrastructureAstera Labs:  Intelligent Connectivity for Cloud and AI Infrastructure
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure
CXL Forum125 views
Spesifikasi Lengkap ASUS Vivobook Go 14 by Dot Semarang
Spesifikasi Lengkap ASUS Vivobook Go 14Spesifikasi Lengkap ASUS Vivobook Go 14
Spesifikasi Lengkap ASUS Vivobook Go 14
Dot Semarang35 views
Combining Orchestration and Choreography for a Clean Architecture by ThomasHeinrichs1
Combining Orchestration and Choreography for a Clean ArchitectureCombining Orchestration and Choreography for a Clean Architecture
Combining Orchestration and Choreography for a Clean Architecture
ThomasHeinrichs168 views

Puppet and Vagrant in development

  • 1. Puppet and Vagrant in Development View details and rate at https://joind.in/6709
  • 2. Puppet and Vagrant in Development  Puppet is:  Automation software to help system admins manage infrastructure.  Automates provisioning and configuration  Automate repetitive tasks  Ensure stability through consistency  Open source and commercial versions
  • 3. Puppet and Vagrant in Development  Puppet Components:  Puppet Master  Puppet Agent  Puppet Enterprise Console (not in open source)  Puppet Module Tool  Puppet Compliance  Mcollective  Facter
  • 4. Puppet and Vagrant in Development  Third-party Product Needs:  Ruby  Apache HTTP server  Phusion Passenger  ActiveMQ  Ruby on Rails
  • 5. Puppet and Vagrant in Development  Supported Operating Systems:  RHEL  CentOS  Ubuntu  Debian  Scientific Linux  Oracle Linux  SUSE  Solaris  Windows
  • 6. Puppet and Vagrant in Development  Pieces  Modules for popular configurations  Compose application stack needed  Rollout to the node
  • 7. Puppet and Vagrant in Development  Workflow  Node informs Puppet Master of status  Puppet Master compiles a catalog  Node complies with catalog  Puppet Agent on client reports back to Puppet Master  Puppet Master reports to Report Collector.
  • 8. Puppet and Vagrant in Development
  • 9. Puppet and Vagrant in Development  Sample Usages  Roll out another node in a cluster  Webserver  Email server  Database server  Etc.  Add another workstation  Create lifecycle machine  Development  Testing  Staging  Production
  • 10. Puppet and Vagrant in Development  Puppet Resources  Puppet defines resources in a array'ish language User { 'dave': Ensure => present, uid => '507', gid => 'admin', shell => '/bin/zsh', home => '/home/dave', managehome => true, }  We can see the parts of the structure  Type = User  Title = Dave  Attributes  Values
  • 11. Puppet and Vagrant in Development  Puppet Adding a Resources  What does it look like: $ puppet resource user dave ensure=present shell=”/bin/zsh” home=”/home/dave” managehome=true  Would output: Notice: /User[dave]/ensure: created User { 'dave': Ensure => present, uid => '507', gid => 'admin', shell => '/bin/zsh', home => '/home/dave', managehome => true, }
  • 12. Puppet and Vagrant in Development  Puppet Manifests  Can inform Puppet what to do in bulk using manifests. $ puppet apply my_test_manifest.pp  Manifest would look like: # /path/to/my_test_manifest.pp User { 'dave': Ensure => present, uid => '507', gid => 'admin', shell => '/bin/zsh', home => '/home/dave', managehome => true, }
  • 13. Puppet and Vagrant in Development  Puppet Manifest Classes  The Puppet manifests can become complex. Class ntp { package { 'ntp': ensure => installed, } service { 'ntp': name => 'ntpd', ensure => running, enable => true, subscribe => File['ntp.conf'], } }
  • 14. Puppet and Vagrant in Development  Puppet Training  Materials available on PuppetLabs site for FREE download.  Learning Puppet Tutorial  Learn Puppet VM to train on (VMWare or VirtualBox)  Module cheatsheet  Core types cheatsheet  Users Guide  Dashboard Manual
  • 15. Puppet and Vagrant in Development  Provisioned Your Way  VirtualBox – through 3rd party  VMWare – direct Puppet support  Cloud – direct Puppet support  Traditional hardware - standard
  • 16. Puppet and Vagrant in Development  Vagrant  Virtualized development made easy  Lowers setup time  Eliminates “works on my machine” excuse  Uses Oracle VirtualBox  Can use Puppet or Chef  FREE and open source
  • 17. Puppet and Vagrant in Development  Vagrant setup items needed for this example  Get VirtualBox from Oracle's download page  Install Ruby  Required by Vagrant, Chef and/or Puppet.  Install Vagrant  Talks to VirtualBox and builds virtual machine based on a “base box”.  Decide on whether to use Chef or Puppet.  Enables setup and configuration of advanced services you may need in your environment.
  • 18. Puppet and Vagrant in Development  Vagrant Basic How To  Create a directory and change to the new directory via command line.  Execute three simple commands: $ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box $ vagrant init lucid32 $ vagrant up  We now have a working Ubuntu (Lucid Lynx 32 bit) linux server running. However it is very “bare bones”.  List installed Boxes $ vagrant box list
  • 19. Puppet and Vagrant in Development  Benefits of Using Vagrant  Solo Developers  Maintain consistency across multiple projects.  Run multiple environments on a single home machine. (Dev., Test, Staging)  Easily tear down and rebuild  Teams  Identical development environments. Consistent and portable.  Companies  Easier onboarding of new talent.  Build development environment once and distribute to teams.
  • 20. Puppet and Vagrant in Development  Vagrant Configuration  Vagrantfile  Simply Ruby code which typically contains a Vagrant configuration block.  First thing loaded by Vagrant.  Basic file created when 'init' is called from within a directory.  Add more options for more configuration.
  • 21. Puppet and Vagrant in Development  Vagrant Base Box  Many base boxes available over the Internet, or you can create your own. Creation convention should be followed  A base box must be added via local file or HTTP $ vagrant box add {name} {location to pull from}  Or you can remove current base boxes $ vagrant box remove {name}  Base box is defined in the Vagrantfile Vagrant::Config.run do |config| config.vm.box = “lucid32” end
  • 22. Puppet and Vagrant in Development  Testing/Running  To launch the bootup/provision we simply tell Vagrant “up”. $ vagrant up  Or if you “suspended” to shut down last time you would use “resume”.  To shut down we can either “suspend” to save the current state of the machine (does not return disk space, about 1GB), “destroy” everything (requires re-provision), or “halt” which is a graceful shutdown. $ vagrant destroy $ vagrant halt
  • 23. Puppet and Vagrant in Development  SSH  Vagrant makes SSH easy to the virtual machine from within the project directory. $ vagrant ssh  Project files are available at '/vagrant' by default, but can be changed.  The VM has both read and write access to the shared folder.  To gain root (su) access the password is 'vagrant'
  • 24. Puppet and Vagrant in Development  Provisioning  Using Chef or Puppet we can create a manifest to alter the VM.  Install apps  Edit config files  Many tasks needed to go from Base Box to desired environment.  Manifests (or recipe for Chef)  Manifests sub-directory within project.  Default.pp is the default file loaded.
  • 25. Puppet and Vagrant in Development  Port Forwarding  By default your host machine should be able to access the virtual machine by IP address. However, we need to activate port forwarding for services.  For HTTP: Vagrant::Config.run do |config| # Forward guest port 80 to host port 4567 config.vm.forward_port 80, 4567 end  Then we simply reload Vagrant. $ vagrant reload
  • 26. Puppet and Vagrant in Development  Packaging  Start with a Base Box  Customize it as needed, unless relying solely on provisioning with Chef or Puppet.  Run command to package $ vagrant package –vagrantfile Vagrantfile.pkg  Creates 'package.box' in same directory.  Distribute via raw file or via HTTP, for others.  Other users can now use: $ vagrant box add my_box /path/to/the/package.box $ vagrant init my_box $ vagrant up
  • 27. Puppet and Vagrant in Development  Advanced Capabilities of Vagrant  Many advanced topics available under Documentation on the Vagrant site.  Modules within Manifests to encapsulate Puppet files.  Create your own Base Boxes  Multi-VM Environment  Plugins  NFS Shared Folders
  • 28. Puppet and Vagrant in Development  Resources  http://vagrantup.com  http://puppetlabs.com  http://opscode.com/chef/  http://virtualbox.org View details and rate at https://joind.in/6709
  • 29. Puppet and Vagrant in Development  Thank you Adam Culp http://www.geekyboy.com http://github.com/adamculp Twitter @adamculp