SlideShare a Scribd company logo
Advanced Application Deployment with Puppet John Coggeshall
About Me CTO, Individual Digital, Inc. (Startup) Author of ext/tidy, PHP 5 Unleashed, Zend Ent. PHP Patterns Twitter: @coogle
What’s Puppet? Puppet is … A deployment tool Client/Server Declarative Resource based Puppet is not.. But can leverage Ant Make
What makes Puppet cool? Centralized, Scalable configuration management for server farms Abstracted from underlying OS (to a point) Configurations can be stored in a VCS (i.e. Subversion) for historical tracking of changes Automated configuration of individual machines based on configuration Auditing of configuration of individual machines
It’s about knowing Puppet helps bridge the gap between system administration and development teams Developers: Virtual machines managed by local Puppet Need new extension? Update Puppet configurations System Admins: System changes are tracked through commits, can be reviewed easily Same Puppet system used as locally Result: Consistent platforms throughout with minimal pain
Puppet from 10,000 feet Communication over HTTPS with signed certificates Reporting from clients back to master / Dashboard ability
Including Development  Same Puppet can run as a stand-alone executable, running off of local checked-out manifests
From Zero to Puppet Setup Puppet Master (Kickstart, etc.) Write Puppet Modules (apache module, etc.) Deploy modules to server Setup puppet client with master Process Catalog
Installing Puppet (Debian) Installing Puppet is easy:  (note: ‘puppetmaster’ package also available stand-alone) For client/server configurations, you’ll also need to sign your client’s certificate Step 1: Attempt to connect to puppet master from client (rejected) Step 2: Use the puppetca tool to sign certificates on master:
About Certificates Certificates are very important to puppet, it’s basically the way authentication is performed Puppet does support the ability to auto-sign certificates of new clients Not Recommended – potentially this would allow anyone to sign-in to your puppet master and potentially acquire configuration files, etc. - a big security risk
Things you need to know Nodes – A machine being configured, identified generally by its hostname Modules – A collection of classes and files all related to each other Class – A collection of resources related to each other Resources – Things like software packages, files, users, etc. Defines – A function-like construct for resources
Resources: Implementation Abstraction Puppet is based on resources Think in terms of a “user”, not the /etc/passwd file Declare what you want done, let puppet worry about how that happens
Resource Types (some) Augeas Computer Cron Exec File Filebucket Group Host Mailalias Nagios Package Service SSH Key User VCS Repo Zone More At: http://docs.puppetlabs.com/references/stable/type.html
Getting Started Basic idea: The global master manifest is site.pp which typically defines the node types puppet can configure Step 1: Define a node by hostname Step 2: Include / declare any configuration to be done to that node Puppet supports includes and modules, making things a lot easier to organize
How I organize puppet You can organize puppet in many ways to suit your needs Can be a bit confusing when getting started How I organize my puppet manifests:
Puppet Modules Puppet Modules are designed to encapsulate a logical segment of the machine’s setup Example modules: MongoDb Users Apache Webserver
Puppet Modules Modules also have access to a simple file service, allowing you to store entire configuration files within the module then transfer those files to the machine
Puppet Module Structure manifests/  - declarations files/ - hosted files init.pp –processed when module is included
How I organize puppet modules Puppet modules have a simple “class” structure I typically create one or more of the following classes for each module: Module::install Module::config Module::service Then, include these modules in the proper order with the base module’s class Every “package” should be a module to avoid dependency problems
Example: Custom login message Task: Update the /etc/issue-standard file so it always displays the IP address of the machine when you connect to it Useful for VMs, inconsequential to deployed boxes While we’re at it, put a scary warning up at login What we need to do: Create a /etc/issue-standard we want to use Create a update-prelogin.sh script to determine IP address and update /etc/issue as necessary Install new standard, as well as pre-login script
Our update script
Creating modules/issue Now we need to create a modules/issue that performs the necessary tasks Step 1: Create issues/files/update-prelogin.sh Step 2: Create init.pp Step 3: Profit
modules/issue/init.pp
Using our module To use our new module for a specific node type, simply include it in the node declaration of site.pp: Inheritance works great too:
Dependencies, Notifications and Subscriptions Resources support the notion of dependencies, notifications, and subscriptions Dependencies – indicate things that have to happen first before the requested resource is processed Notifications – Trigger the activation of another resource after the requested resource is processed Subscriptions – Subscribe to another resource, and process itself when the target resource is processed
Requiring Resources
Notifications / Subscriptions
System Facts with Facter Puppet provides access to a number of variables defining things about the system being configured through Facter
Variables / Conditionals Puppet also supports simple variable/conditional abilities
Installing websites When specifically dealing with websites, you can use a little shell scripting to install your site, then leverage that
Installing Web Apps from VCS
From Source.. Like web sites, you can use similar techniques of copying/running shell scripts for compiling software Easier to get going, but best answer would be to create custom packages in both cases
Installing Node.js
Defines Defines can be thought of in some ways as functions for resources Allows you to factor out common tasks into a single location for maintainability, etc.
Summary and Thank you! This is by no means a complete dissertation, merely an introduction to an advanced deployment technique Further reading: http://docs.puppetlabs.com/guides/language_guide.html http://docs.puppetlabs.com/references/stable/type.html http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Patterns These slides will be available on SlideShare.net Feedback Welcome: http://joind.in/2908

More Related Content

Viewers also liked

Innovate Like A Startup
Innovate Like A StartupInnovate Like A Startup
Innovate Like A StartupDavender Gupta
 
Comment établir vos prix
Comment établir vos prixComment établir vos prix
Comment établir vos prixDavender Gupta
 
Votre marché cible - mythes et réalités
Votre marché cible - mythes et réalitésVotre marché cible - mythes et réalités
Votre marché cible - mythes et réalitésDavender Gupta
 
Comment identifier vos investisseurs
Comment identifier vos investisseursComment identifier vos investisseurs
Comment identifier vos investisseursDavender Gupta
 
Vendre, c'est une question de relation
Vendre, c'est une question de relationVendre, c'est une question de relation
Vendre, c'est une question de relationDavender Gupta
 
Comment financer son startup (Atelier BMO/Startup Canada)
Comment financer son startup (Atelier BMO/Startup Canada)Comment financer son startup (Atelier BMO/Startup Canada)
Comment financer son startup (Atelier BMO/Startup Canada)Davender Gupta
 
Strategy: An Entrepreneur Point Of View
Strategy: An Entrepreneur Point Of ViewStrategy: An Entrepreneur Point Of View
Strategy: An Entrepreneur Point Of ViewDavender Gupta
 
[20081118] How To Trace Code Like Source Insight Through Vim
[20081118] How To Trace Code Like Source Insight Through Vim[20081118] How To Trace Code Like Source Insight Through Vim
[20081118] How To Trace Code Like Source Insight Through VimPayton Chou
 
Identifying Your Customer
Identifying Your CustomerIdentifying Your Customer
Identifying Your CustomerDavender Gupta
 
La création d'entreprise du point de vue entrepreneurial (HEC Montréal)
La création d'entreprise du point de vue entrepreneurial (HEC Montréal)La création d'entreprise du point de vue entrepreneurial (HEC Montréal)
La création d'entreprise du point de vue entrepreneurial (HEC Montréal)Davender Gupta
 
Tutorial 1 - Browser Basics
Tutorial 1 - Browser BasicsTutorial 1 - Browser Basics
Tutorial 1 - Browser Basicsdpd
 
Exercice de validation (correspondance problème-solution)
Exercice de validation (correspondance problème-solution)Exercice de validation (correspondance problème-solution)
Exercice de validation (correspondance problème-solution)Davender Gupta
 
Change by design (設計思考改變世界)
Change by design (設計思考改變世界)Change by design (設計思考改變世界)
Change by design (設計思考改變世界)Justin Wu
 
Ten Questions You Need To Ask Yourself To Launch Successfully
Ten Questions You Need To Ask Yourself To Launch SuccessfullyTen Questions You Need To Ask Yourself To Launch Successfully
Ten Questions You Need To Ask Yourself To Launch SuccessfullyDavender Gupta
 
The Business Model Canvas (outline)
The Business Model Canvas (outline)The Business Model Canvas (outline)
The Business Model Canvas (outline)Davender Gupta
 
Le canevas de proposition de valeur
Le canevas de proposition de valeurLe canevas de proposition de valeur
Le canevas de proposition de valeurDavender Gupta
 
Talk with Steve Blank at true ventures
Talk with Steve Blank at true ventures Talk with Steve Blank at true ventures
Talk with Steve Blank at true ventures Alexander Osterwalder
 
Les affaires... à une vitesse humaine
Les affaires... à une vitesse humaineLes affaires... à une vitesse humaine
Les affaires... à une vitesse humaineDavender Gupta
 

Viewers also liked (20)

Innovate Like A Startup
Innovate Like A StartupInnovate Like A Startup
Innovate Like A Startup
 
Comment établir vos prix
Comment établir vos prixComment établir vos prix
Comment établir vos prix
 
Votre marché cible - mythes et réalités
Votre marché cible - mythes et réalitésVotre marché cible - mythes et réalités
Votre marché cible - mythes et réalités
 
Comment identifier vos investisseurs
Comment identifier vos investisseursComment identifier vos investisseurs
Comment identifier vos investisseurs
 
Vendre, c'est une question de relation
Vendre, c'est une question de relationVendre, c'est une question de relation
Vendre, c'est une question de relation
 
Comment financer son startup (Atelier BMO/Startup Canada)
Comment financer son startup (Atelier BMO/Startup Canada)Comment financer son startup (Atelier BMO/Startup Canada)
Comment financer son startup (Atelier BMO/Startup Canada)
 
Strategy: An Entrepreneur Point Of View
Strategy: An Entrepreneur Point Of ViewStrategy: An Entrepreneur Point Of View
Strategy: An Entrepreneur Point Of View
 
[20081118] How To Trace Code Like Source Insight Through Vim
[20081118] How To Trace Code Like Source Insight Through Vim[20081118] How To Trace Code Like Source Insight Through Vim
[20081118] How To Trace Code Like Source Insight Through Vim
 
Identifying Your Customer
Identifying Your CustomerIdentifying Your Customer
Identifying Your Customer
 
La création d'entreprise du point de vue entrepreneurial (HEC Montréal)
La création d'entreprise du point de vue entrepreneurial (HEC Montréal)La création d'entreprise du point de vue entrepreneurial (HEC Montréal)
La création d'entreprise du point de vue entrepreneurial (HEC Montréal)
 
Tutorial 1 - Browser Basics
Tutorial 1 - Browser BasicsTutorial 1 - Browser Basics
Tutorial 1 - Browser Basics
 
Exercice de validation (correspondance problème-solution)
Exercice de validation (correspondance problème-solution)Exercice de validation (correspondance problème-solution)
Exercice de validation (correspondance problème-solution)
 
Scrum用一半的時間做兩倍的事(書本筆記)
Scrum用一半的時間做兩倍的事(書本筆記)Scrum用一半的時間做兩倍的事(書本筆記)
Scrum用一半的時間做兩倍的事(書本筆記)
 
Change by design (設計思考改變世界)
Change by design (設計思考改變世界)Change by design (設計思考改變世界)
Change by design (設計思考改變世界)
 
Ten Questions You Need To Ask Yourself To Launch Successfully
Ten Questions You Need To Ask Yourself To Launch SuccessfullyTen Questions You Need To Ask Yourself To Launch Successfully
Ten Questions You Need To Ask Yourself To Launch Successfully
 
The Business Model Canvas (outline)
The Business Model Canvas (outline)The Business Model Canvas (outline)
The Business Model Canvas (outline)
 
Le canevas de proposition de valeur
Le canevas de proposition de valeurLe canevas de proposition de valeur
Le canevas de proposition de valeur
 
Talk with Steve Blank at true ventures
Talk with Steve Blank at true ventures Talk with Steve Blank at true ventures
Talk with Steve Blank at true ventures
 
Les affaires... à une vitesse humaine
Les affaires... à une vitesse humaineLes affaires... à une vitesse humaine
Les affaires... à une vitesse humaine
 
Canvas examples
Canvas examplesCanvas examples
Canvas examples
 

Similar to Puppet

Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2Pascal Rapicault
 
Puppet slides for intelligrape
Puppet slides for intelligrapePuppet slides for intelligrape
Puppet slides for intelligrapeSharad Aggarwal
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and AgentRanjit Avasarala
 
Puppet Keynote by Ralph Luchs
Puppet Keynote by Ralph LuchsPuppet Keynote by Ralph Luchs
Puppet Keynote by Ralph LuchsNETWAYS
 
final proposal-Lightweight Cloud instance contextualisation tool
final proposal-Lightweight Cloud instance contextualisation toolfinal proposal-Lightweight Cloud instance contextualisation tool
final proposal-Lightweight Cloud instance contextualisation toolParamkusham Shruthi
 
Maven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension toolMaven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension toolelliando dias
 
Puppet for Developers
Puppet for DevelopersPuppet for Developers
Puppet for Developerssagarhere4u
 
Scalable systems management with puppet
Scalable systems management with puppetScalable systems management with puppet
Scalable systems management with puppetPuppet
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 featuresAngel Ruiz
 
PHP North-East - Automated Deployment
PHP North-East - Automated DeploymentPHP North-East - Automated Deployment
PHP North-East - Automated DeploymentMichael Peacock
 
Automated Deployment
Automated DeploymentAutomated Deployment
Automated Deploymentphpne
 
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...Puppet
 
Inventory your network and clients with PowerShell
Inventory your network and clients with PowerShellInventory your network and clients with PowerShell
Inventory your network and clients with PowerShellConcentrated Technology
 
DevOps Automation with Puppet Bolt & Puppet Enterprise
DevOps Automation with Puppet Bolt & Puppet EnterpriseDevOps Automation with Puppet Bolt & Puppet Enterprise
DevOps Automation with Puppet Bolt & Puppet EnterpriseEficode
 

Similar to Puppet (20)

Puppet_training
Puppet_trainingPuppet_training
Puppet_training
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2
 
Puppet slides for intelligrape
Puppet slides for intelligrapePuppet slides for intelligrape
Puppet slides for intelligrape
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and Agent
 
Puppet Keynote by Ralph Luchs
Puppet Keynote by Ralph LuchsPuppet Keynote by Ralph Luchs
Puppet Keynote by Ralph Luchs
 
final proposal-Lightweight Cloud instance contextualisation tool
final proposal-Lightweight Cloud instance contextualisation toolfinal proposal-Lightweight Cloud instance contextualisation tool
final proposal-Lightweight Cloud instance contextualisation tool
 
Puppet quick start guide
Puppet quick start guidePuppet quick start guide
Puppet quick start guide
 
Maven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension toolMaven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension tool
 
Deployment automation
Deployment automationDeployment automation
Deployment automation
 
Puppet for Developers
Puppet for DevelopersPuppet for Developers
Puppet for Developers
 
Scalable systems management with puppet
Scalable systems management with puppetScalable systems management with puppet
Scalable systems management with puppet
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 features
 
PHP North-East - Automated Deployment
PHP North-East - Automated DeploymentPHP North-East - Automated Deployment
PHP North-East - Automated Deployment
 
Automated Deployment
Automated DeploymentAutomated Deployment
Automated Deployment
 
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Begi...
 
Puppet demo
Puppet demoPuppet demo
Puppet demo
 
Django Deployment
Django DeploymentDjango Deployment
Django Deployment
 
Inventory your network and clients with PowerShell
Inventory your network and clients with PowerShellInventory your network and clients with PowerShell
Inventory your network and clients with PowerShell
 
DevOps Automation with Puppet Bolt & Puppet Enterprise
DevOps Automation with Puppet Bolt & Puppet EnterpriseDevOps Automation with Puppet Bolt & Puppet Enterprise
DevOps Automation with Puppet Bolt & Puppet Enterprise
 

More from John Coggeshall

Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for DevelopersJohn Coggeshall
 
ZF2 Modules: Events, Services, and of course, modularity
ZF2 Modules: Events, Services, and of course, modularityZF2 Modules: Events, Services, and of course, modularity
ZF2 Modules: Events, Services, and of course, modularityJohn Coggeshall
 
PHP Development for Google Glass using Phass
PHP Development for Google Glass using PhassPHP Development for Google Glass using Phass
PHP Development for Google Glass using PhassJohn Coggeshall
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for DevelopersJohn Coggeshall
 
Development with Vagrant
Development with VagrantDevelopment with Vagrant
Development with VagrantJohn Coggeshall
 
Introduction to Zend Framework 2
Introduction to Zend Framework 2Introduction to Zend Framework 2
Introduction to Zend Framework 2John Coggeshall
 
10 things not to do at a Startup
10 things not to do at a Startup10 things not to do at a Startup
10 things not to do at a StartupJohn Coggeshall
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for DevelopersJohn Coggeshall
 
Building PHP Powered Android Applications
Building PHP Powered Android ApplicationsBuilding PHP Powered Android Applications
Building PHP Powered Android ApplicationsJohn Coggeshall
 
Ria Applications And PHP
Ria Applications And PHPRia Applications And PHP
Ria Applications And PHPJohn Coggeshall
 
Apache Con 2008 Top 10 Mistakes
Apache Con 2008 Top 10 MistakesApache Con 2008 Top 10 Mistakes
Apache Con 2008 Top 10 MistakesJohn Coggeshall
 
Ria Development With Flex And PHP
Ria Development With Flex And PHPRia Development With Flex And PHP
Ria Development With Flex And PHPJohn Coggeshall
 
Top 10 Scalability Mistakes
Top 10 Scalability MistakesTop 10 Scalability Mistakes
Top 10 Scalability MistakesJohn Coggeshall
 
Enterprise PHP: A Case Study
Enterprise PHP: A Case StudyEnterprise PHP: A Case Study
Enterprise PHP: A Case StudyJohn Coggeshall
 
Building Dynamic Web Applications on i5 with PHP
Building Dynamic Web Applications on i5 with PHPBuilding Dynamic Web Applications on i5 with PHP
Building Dynamic Web Applications on i5 with PHPJohn Coggeshall
 
Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5John Coggeshall
 

More from John Coggeshall (20)

Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
Migrating to PHP 7
Migrating to PHP 7Migrating to PHP 7
Migrating to PHP 7
 
Peek at PHP 7
Peek at PHP 7Peek at PHP 7
Peek at PHP 7
 
ZF2 Modules: Events, Services, and of course, modularity
ZF2 Modules: Events, Services, and of course, modularityZF2 Modules: Events, Services, and of course, modularity
ZF2 Modules: Events, Services, and of course, modularity
 
PHP Development for Google Glass using Phass
PHP Development for Google Glass using PhassPHP Development for Google Glass using Phass
PHP Development for Google Glass using Phass
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
Development with Vagrant
Development with VagrantDevelopment with Vagrant
Development with Vagrant
 
Introduction to Zend Framework 2
Introduction to Zend Framework 2Introduction to Zend Framework 2
Introduction to Zend Framework 2
 
10 things not to do at a Startup
10 things not to do at a Startup10 things not to do at a Startup
10 things not to do at a Startup
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
Building PHP Powered Android Applications
Building PHP Powered Android ApplicationsBuilding PHP Powered Android Applications
Building PHP Powered Android Applications
 
Ria Applications And PHP
Ria Applications And PHPRia Applications And PHP
Ria Applications And PHP
 
Beyond the Browser
Beyond the BrowserBeyond the Browser
Beyond the Browser
 
Apache Con 2008 Top 10 Mistakes
Apache Con 2008 Top 10 MistakesApache Con 2008 Top 10 Mistakes
Apache Con 2008 Top 10 Mistakes
 
Ria Development With Flex And PHP
Ria Development With Flex And PHPRia Development With Flex And PHP
Ria Development With Flex And PHP
 
Top 10 Scalability Mistakes
Top 10 Scalability MistakesTop 10 Scalability Mistakes
Top 10 Scalability Mistakes
 
Enterprise PHP: A Case Study
Enterprise PHP: A Case StudyEnterprise PHP: A Case Study
Enterprise PHP: A Case Study
 
Building Dynamic Web Applications on i5 with PHP
Building Dynamic Web Applications on i5 with PHPBuilding Dynamic Web Applications on i5 with PHP
Building Dynamic Web Applications on i5 with PHP
 
PHP Security Basics
PHP Security BasicsPHP Security Basics
PHP Security Basics
 
Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
 
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»QADay
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...Elena Simperl
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesThousandEyes
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
 
UiPath New York Community Day in-person event
UiPath New York Community Day in-person eventUiPath New York Community Day in-person event
UiPath New York Community Day in-person eventDianaGray10
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...Product School
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
UiPath New York Community Day in-person event
UiPath New York Community Day in-person eventUiPath New York Community Day in-person event
UiPath New York Community Day in-person event
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Ransomware Mallox [EN].pdf
Ransomware         Mallox       [EN].pdfRansomware         Mallox       [EN].pdf
Ransomware Mallox [EN].pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 

Puppet

  • 1. Advanced Application Deployment with Puppet John Coggeshall
  • 2. About Me CTO, Individual Digital, Inc. (Startup) Author of ext/tidy, PHP 5 Unleashed, Zend Ent. PHP Patterns Twitter: @coogle
  • 3. What’s Puppet? Puppet is … A deployment tool Client/Server Declarative Resource based Puppet is not.. But can leverage Ant Make
  • 4. What makes Puppet cool? Centralized, Scalable configuration management for server farms Abstracted from underlying OS (to a point) Configurations can be stored in a VCS (i.e. Subversion) for historical tracking of changes Automated configuration of individual machines based on configuration Auditing of configuration of individual machines
  • 5. It’s about knowing Puppet helps bridge the gap between system administration and development teams Developers: Virtual machines managed by local Puppet Need new extension? Update Puppet configurations System Admins: System changes are tracked through commits, can be reviewed easily Same Puppet system used as locally Result: Consistent platforms throughout with minimal pain
  • 6. Puppet from 10,000 feet Communication over HTTPS with signed certificates Reporting from clients back to master / Dashboard ability
  • 7. Including Development Same Puppet can run as a stand-alone executable, running off of local checked-out manifests
  • 8. From Zero to Puppet Setup Puppet Master (Kickstart, etc.) Write Puppet Modules (apache module, etc.) Deploy modules to server Setup puppet client with master Process Catalog
  • 9. Installing Puppet (Debian) Installing Puppet is easy: (note: ‘puppetmaster’ package also available stand-alone) For client/server configurations, you’ll also need to sign your client’s certificate Step 1: Attempt to connect to puppet master from client (rejected) Step 2: Use the puppetca tool to sign certificates on master:
  • 10. About Certificates Certificates are very important to puppet, it’s basically the way authentication is performed Puppet does support the ability to auto-sign certificates of new clients Not Recommended – potentially this would allow anyone to sign-in to your puppet master and potentially acquire configuration files, etc. - a big security risk
  • 11. Things you need to know Nodes – A machine being configured, identified generally by its hostname Modules – A collection of classes and files all related to each other Class – A collection of resources related to each other Resources – Things like software packages, files, users, etc. Defines – A function-like construct for resources
  • 12. Resources: Implementation Abstraction Puppet is based on resources Think in terms of a “user”, not the /etc/passwd file Declare what you want done, let puppet worry about how that happens
  • 13. Resource Types (some) Augeas Computer Cron Exec File Filebucket Group Host Mailalias Nagios Package Service SSH Key User VCS Repo Zone More At: http://docs.puppetlabs.com/references/stable/type.html
  • 14. Getting Started Basic idea: The global master manifest is site.pp which typically defines the node types puppet can configure Step 1: Define a node by hostname Step 2: Include / declare any configuration to be done to that node Puppet supports includes and modules, making things a lot easier to organize
  • 15. How I organize puppet You can organize puppet in many ways to suit your needs Can be a bit confusing when getting started How I organize my puppet manifests:
  • 16. Puppet Modules Puppet Modules are designed to encapsulate a logical segment of the machine’s setup Example modules: MongoDb Users Apache Webserver
  • 17. Puppet Modules Modules also have access to a simple file service, allowing you to store entire configuration files within the module then transfer those files to the machine
  • 18. Puppet Module Structure manifests/ - declarations files/ - hosted files init.pp –processed when module is included
  • 19. How I organize puppet modules Puppet modules have a simple “class” structure I typically create one or more of the following classes for each module: Module::install Module::config Module::service Then, include these modules in the proper order with the base module’s class Every “package” should be a module to avoid dependency problems
  • 20. Example: Custom login message Task: Update the /etc/issue-standard file so it always displays the IP address of the machine when you connect to it Useful for VMs, inconsequential to deployed boxes While we’re at it, put a scary warning up at login What we need to do: Create a /etc/issue-standard we want to use Create a update-prelogin.sh script to determine IP address and update /etc/issue as necessary Install new standard, as well as pre-login script
  • 22. Creating modules/issue Now we need to create a modules/issue that performs the necessary tasks Step 1: Create issues/files/update-prelogin.sh Step 2: Create init.pp Step 3: Profit
  • 24. Using our module To use our new module for a specific node type, simply include it in the node declaration of site.pp: Inheritance works great too:
  • 25. Dependencies, Notifications and Subscriptions Resources support the notion of dependencies, notifications, and subscriptions Dependencies – indicate things that have to happen first before the requested resource is processed Notifications – Trigger the activation of another resource after the requested resource is processed Subscriptions – Subscribe to another resource, and process itself when the target resource is processed
  • 28. System Facts with Facter Puppet provides access to a number of variables defining things about the system being configured through Facter
  • 29. Variables / Conditionals Puppet also supports simple variable/conditional abilities
  • 30. Installing websites When specifically dealing with websites, you can use a little shell scripting to install your site, then leverage that
  • 32. From Source.. Like web sites, you can use similar techniques of copying/running shell scripts for compiling software Easier to get going, but best answer would be to create custom packages in both cases
  • 34. Defines Defines can be thought of in some ways as functions for resources Allows you to factor out common tasks into a single location for maintainability, etc.
  • 35. Summary and Thank you! This is by no means a complete dissertation, merely an introduction to an advanced deployment technique Further reading: http://docs.puppetlabs.com/guides/language_guide.html http://docs.puppetlabs.com/references/stable/type.html http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Patterns These slides will be available on SlideShare.net Feedback Welcome: http://joind.in/2908