About Me CTO, Individual Digital, Inc. (Startup) Author of ext/tidy, PHP 5 Unleashed, Zend Ent. PHP Patterns

Slides:



Advertisements
Similar presentations
WEB AND WIRELESS AUTOMATION connecting people and processes InduSoft Web Solution Welcome.
Advertisements

Faith Allington Program Manager Microsoft Corporation WSV322.
SAS 9.3 Enterprise BI Audit & Performance Package
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
METALOGIC s o f t w a r e © Metalogic Software Corporation DACS Developer Overview DACS – the Distributed Access Control System.
Puppet for GENI Experiments
Kyle Thurow, Kyle Neuschaefer, Alexander Matusiak, and Justin Carroll.
Web Application Server Apache Tomcat Downloading and Deployment Guide.
1 Configuring Internet- related services (April 22, 2015) © Abdou Illia, Spring 2015.
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
1 Configuring Web services (Week 15, Monday 4/17/2006) © Abdou Illia, Spring 2006.
14.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 1: Introduction to Windows Server 2003.
Apache : Installation, Configuration, Basic Security Presented by, Sandeep K Thopucherela, ECE Department.
Sample School Website Sydney Region ITSU School Support
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 1: Introduction to Windows Server 2003.
APACHE SERVER By Innovationframes.com »
Linux Operations and Administration
Presented by…. Group 2 1. Programming language 2Introduction.
Additional SugarCRM details for complete, functional, and portable deployment.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
14 Publishing a Web Site Section 14.1 Identify the technical needs of a Web server Evaluate Web hosts Compare and contrast internal and external Web hosting.
Puppetize It! An Introduction to Puppet Mike Seda CEO, Seda Systems, Inc.
What is PHP? PHP (recursive acronym for "PHP: Hypertext Preprocessor") is a widely-used Open Source general- purpose scripting language that is especially.
Portable SSH Brian Minton EKU, Dept. of Technology, CEN/CET)‏
ITIS 1210 Introduction to Web-Based Information Systems Chapter 23 How Web Host Servers Work.
Microsoft Application Virtualization 5.0: Introduction Mohnish Chaturvedi & Ian Bartlett Premier Field Engineer WCL312.
HOW WEB SERVER WORKS? By- PUSHPENDU MONDAL RAJAT CHAUHAN RAHUL YADAV RANJIT MEENA RAHUL TYAGI.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
| nectar.org.au NECTAR TRAINING Module 5 The Research Cloud Lifecycle.
Chapter 13 Users, Groups Profiles and Policies. Learning Objectives Understand Windows XP Professional user accounts Understand the different types of.
CERN IT Department CH-1211 Genève 23 Switzerland t Experiences running a production Puppet Ben Jones HEPiX Bologna Spring.
Computer Emergency Notification System (CENS)
Configuration Management with Cobbler and Puppet Kashif Mohammad University of Oxford.
QuikTrac 5.5, a validated Motorola Software Solution, allows you to take your Host ERP screens and extend them out to fixed or mobile devices including.
Application Layer Khondaker Abdullah-Al-Mamun Lecturer, CSE Instructor, CNAP AUST.
01/13/051 Cheap, Easy Virtual Hosts for Web-Based Services Richard L. Goerwitz III.
Sample School Website. What is wrong with the existing School Webspace Site? Can only host static pages – no dynamic content possible. Can not be edited.
INTRODUCTION TO WEB APPLICATION Chapter 1. In this chapter, you will learn about:  The evolution of the Internet  The beginning of the World Wide Web,
1 PUPPET AND DSC. INTRODUCTION AND USAGE IN CONTINUOUS DELIVERY PROCESS. VIKTAR VEDMICH PAVEL PESETSKIY AUGUST 1, 2015.
Microsoft Virtual Academy. STANDARDIZATION SELF SERVICEAUTOMATION Give Customers of IT services the ability to identify, access and request services.
 Load balancing is the process of distributing a workload evenly throughout a group or cluster of computers to maximize throughput.  This means that.
Microsoft Management Seminar Series SMS 2003 Change Management.
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
| nectar.org.au NECTAR TRAINING Module 5 The Research Cloud Lifecycle.
Java Web Server Presented by- Sapna Bansode-03 Nutan Mote-15 Poonam Mote-16.
Linux Operations and Administration
Welcome. Welcome to this TechNet Event URL for on-line feedback is in your reminder No Planned Fire Drills Please turn your Mobile Phones off To.
Web Security. Introduction Webserver hacking refers to attackers taking advantage of vulnerabilities inherent to the web server software itself These.
EGI-InSPIRE RI EGI Webinar EGI-InSPIRE RI Porting your application to the EGI Federated Cloud 17 Feb
Alfresco on AWS Provisioning and deploying Alfresco solutions on Amazon Web Services.
Copyright © New Signature Who we are: Focused on consistently delivering great customer experiences. What we do: We help you transform your business.
Aaron Corso COSC Spring What is LAMP?  A ‘solution stack’, or package of an OS and software consisting of:  Linux  Apache  MySQL  PHP.
Cloud Installation & Configuration Management. Outline  Definitions  Tools, “Comparison”  References.
Configuration Services at CERN HEPiX fall Ben Jones, HEPiX Fall 2014.
Chapter 7: Using Network Clients The Complete Guide To Linux System Administration.
 systemD  FirewallD  Network manager (NMCLI)  Target CLI (iscsi targets)  GRUB 2 (Booting process)  Network teamnig & bridging.
Linux Basics Part 2. VIM Editor vi improved Installed on most Linux machines Can be a bit confusing at first... o Cheat sheets FTW Other popular editors:
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
@ Bucharest DevOps Hacker Meetup
Instructor Materials Chapter 5 Providing Network Services
Apache web server Quick overview.
IT Atoumation / Conf. Mgmt...
Module 3 Building a web app.
INSTALLING AND SETTING UP APACHE2 IN A LINUX ENVIRONMENT
X in [Integration, Delivery, Deployment]
HC Hyper-V Module GUI Portal VPS Templates Web Console
Introduction to Ansible
Configuring Internet-related services
Presentation transcript:

About Me CTO, Individual Digital, Inc. (Startup) Author of ext/tidy, PHP 5 Unleashed, Zend Ent. PHP Patterns

Whats 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

Its 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, youll also need to sign your clients 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, its 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:

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 machines 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 modules 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 were 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: _Patterns _Patterns These slides will be available on SlideShare.net Feedback Welcome: