SlideShare ist ein Scribd-Unternehmen logo
1 von 35
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

Weitere Àhnliche Inhalte

Andere mochten auch

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
 
Scrumç”šäž€ćŠçš„æ™‚é–“ćšć…©ć€çš„äș‹(æ›žæœŹç­†èš˜)
Scrumç”šäž€ćŠçš„æ™‚é–“ćšć…©ć€çš„äș‹(æ›žæœŹç­†èš˜)Scrumç”šäž€ćŠçš„æ™‚é–“ćšć…©ć€çš„äș‹(æ›žæœŹç­†èš˜)
Scrumç”šäž€ćŠçš„æ™‚é–“ćšć…©ć€çš„äș‹(æ›žæœŹç­†èš˜)National Taipei University of Technology
 
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
 

Andere mochten auch (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
 

Ähnlich wie Puppet

Puppet_training
Puppet_trainingPuppet_training
Puppet_trainingAfroz Hussain
 
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
 
Puppet quick start guide
Puppet quick start guidePuppet quick start guide
Puppet quick start guideSuhan Dharmasuriya
 
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
 
Deployment automation
Deployment automationDeployment automation
Deployment automationRiccardo Lemmi
 
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
 

Ähnlich wie 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
 

Mehr von John Coggeshall

Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for DevelopersJohn Coggeshall
 
Migrating to PHP 7
Migrating to PHP 7Migrating to PHP 7
Migrating to PHP 7John 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
 
Beyond the Browser
Beyond the BrowserBeyond the Browser
Beyond the BrowserJohn 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
 
PHP Security Basics
PHP Security BasicsPHP Security Basics
PHP Security BasicsJohn 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
 

Mehr von 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
 

KĂŒrzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

KĂŒrzlich hochgeladen (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

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