Puppet for GENI Experiments

Slides:



Advertisements
Similar presentations
Mod_perl High speed dynamic content. Definitions Apache – OpenSource httpd server Perl – OpenSource interpreted programming language mod_perl – OpenSource.
Advertisements

About Me CTO, Individual Digital, Inc. (Startup) Author of ext/tidy, PHP 5 Unleashed, Zend Ent. PHP Patterns
Classic Data Access Training Compliance Test Tool (OpcAnalyzer)
Sponsored by the National Science Foundation I&M Status and Topics GEC18 - October 27, 2013 Jeanne Ohren and Marshall Brinn GENI Project Office.
Unified Architecture Training Compliance Test Tool (UACTT)
What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
Java Server Pages Jeffrey Jongko. Introduction Java Server Pages (JSP) technology was created by Sun Microsystems and is built on top of Sun’s Java Servlet.
JSP1 Java Server Pages (JSP) Introducing JavaServer Pages TM (JSP TM ) JSP scripting elements.
Caching Dynamic Documents Vipul Goyal Department of Computer Science & Engg Institute of Technology, Banaras Hindu University Sugata Sanyal School of Technology.
Server-Side vs. Client-Side Scripting Languages
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
Peoplesoft Fundamentals David Lewis 10/18/02 (adapted from Psoft Training Materials)
JSP Java Server Pages Reference:
Apache : Installation, Configuration, Basic Security Presented by, Sandeep K Thopucherela, ECE Department.
Tomcat Configuration A Very, Very, Very Brief Overview.
INTRO TO MAKING A WEBSITE Mark Zhang.  HTML  CSS  Javascript  PHP  MySQL  …That’s a lot of stuff!
APACHE SERVER By Innovationframes.com »
Christopher M. Pascucci Basic Structural Concepts of.NET Browser – Server Interaction.
Linux Operations and Administration
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
DAT602 Database Application Development Lecture 15 Java Server Pages Part 1.
Web server and web browser It’s a take and give policy in between client and server through HTTP(Hyper Text Transport Protocol) Server takes a request.
ALBERT WAVERING BOBBY SENG. Week Whatever: PHP  Announcements/questions/complaints.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Infrastructure-as-a-Code Puppet is an open source configuration management utility It is written in Ruby and released as free software under the GPL Built.
Introduction to Java Appendix A. Appendix A: Introduction to Java2 Chapter Objectives To understand the essentials of object-oriented programming in Java.
/dev/urandom Barry Britt, Systems Support Group Department of Computer Science Iowa State University.
Introduction to PHP and Server Side Technology. Slide 2 PHP History Created in 1995 PHP 5.0 is the current version It’s been around since 2004.
Reading Data in Web Pages tMyn1 Reading Data in Web Pages A very common application of PHP is to have an HTML form gather information from a website's.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Working Out with KURL! Shayne Koestler Kinetic Data.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
AI project components: Facter and Hiera
CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES LECTURE 5_1 George Koutsogiannakis/ Summer
A Guide to Secure Web Services with GJXML Hey I downloade d an IEPD! Cool, how do you write a web service? I use.NET Moo! I use Java.
JSP Java Server Pages Softsmith Infotech.
Java Server Pages Lecture July Java Server Pages Java Server Pages (JSPs) provide a way to separate the generation of dynamic content (java)
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Jozef Goetz, Application Layer PART VI Jozef Goetz, Position of application layer The application layer enables the user, whether human.
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
JAVA SERVER PAGES CREATING DYNAMIC WEB PAGES USING JAVA James Faeldon CS 119 Enterprise Systems Programming.
CMPS 211 JavaScript Topic 1 JavaScript Syntax. 2Outline Goals and Objectives Goals and Objectives Chapter Headlines Chapter Headlines Introduction Introduction.
The Art and Zen of Managing Nagios with Puppet Michael Merideth - VictorOps
Oxford University Computing Services IT Support Tracking with Request Tracker (RT) Katherine Craddock Oxford University Computing Services.
Overview: 1. Discussion of the basic architecture of a web application. 2. Discussion of the relevance of using MySQL and PHP in a web application.
Java server pages. A JSP file basically contains HTML, but with embedded JSP tags with snippets of Java code inside them. A JSP file basically contains.
1 Overview of XSL. 2 Outline We will use Roger Costello’s tutorial The purpose of this presentation is  To give a quick overview of XSL  To describe.
1 Apache and... Virtual Hosts ---- aliases mod_rewrite ---- htaccess AFNOG X Cairo, Egypt May 2009 Hervey Allen.
1 PUPPET AND DSC. INTRODUCTION AND USAGE IN CONTINUOUS DELIVERY PROCESS. VIKTAR VEDMICH PAVEL PESETSKIY AUGUST 1, 2015.
Maite Barroso - 10/05/01 - n° 1 WP4 PM9 Deliverable Presentation: Interim Installation System Configuration Management Prototype
Chapter 3 JSP Overview. The Problem with Servlets processing the request and generating the response are both handled by a single servlet class Java programming.
STRUCTURE OF JSP PRESENTED BY: SIDDHARTHA SINGH ( ) SOMYA SHRIVASTAV ( ) SONAM JINDAL ( )
IS2803 Developing Multimedia Applications for Business (Part 2) Lecture 2: Introduction to IS2803 Rob Gleasure
Identifying classes, Packages and drawing class Diagrams, Object Diagrams and composite structure diagrams Week 07 1.
Java Server Pages. 2 Servlets The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
COSC 2328 – Web Programming.  PHP is a server scripting language  It’s widely-used and free  It’s an alternative to Microsoft’s ASP and Ruby  PHP.
Dr. Abdullah Almutairi Spring PHP is a server scripting language, and a powerful tool for making dynamic and interactive Web pages. PHP is a widely-used,
XAMPP.
Cofax Scalability Document Version Scaling Cofax in General The scalability of Cofax is directly related to the system software, hardware and network.
EGI-InSPIRE RI Pakiti Michal Prochazka, (Daniel Kouril)
Presented By P.SRIVIDYA 085D1A0552 Programming Language.
SharePoint 101 – An Overview of SharePoint 2010, 2013 and Office 365
z/Ware 2.0 Technical Overview
IT Atoumation / Conf. Mgmt...
Developing Web-Based Applications
CHAPTER 3 Architectures for Distributed Systems
Packages and Interfaces
Web Servers (IIS and Apache)
Presentation transcript:

Puppet for GENI Experiments Stéphane Blais GEC22, March 24, 2015

Puppet Overview Centralized configuration system: One puppet master and many clients (aka hosts or nodes) Exists since 2005 Ruby based Uses its own declarative language ~ruby Allow to deploy software and keep machines in an expected state.

Puppet Vocabulary Class Templates See http://docs.puppetlabs.com/references/glossary.html Class A collection of related resources, which, once defined, can be declared as a single unit. For example, a class could contain all of the elements (files, settings, modules, scripts, etc) needed to configure Apache on a host. Templates A partial document which is filled in with data from variables. Puppet can use Ruby ERB templates to generate configuration files tailored to an individual system.

Puppet Vocabulary (Cont’d) Variables A named placeholder in a manifest that represents a value. Variables in Puppet are similar to variables in other programming languages, and are indicated with a dollar sign (e.g. $operatingsystem) and assigned with the equals sign (e.g. $myvariable = "something"). Once assigned, variables cannot be reassigned within the same scope Scope The area of code where a variable has a given value. Class definitions and type definitions create local scopes. Variables declared in a local scope are available by their short name (e.g. $my_variable) inside the scope, but are hidden from other scopes unless you refer to them by their fully qualified name (e.g. $my_class::my_variable).

Puppet Vocabulary (Cont’d) Modules A collection of classes, resource types, files, and templates, organized around a particular purpose. For example, a module could be used to completely configure an Apache instance Facts A piece of information about a node, such as its operating system, hostname, or IP address. Facts are read from the system by Facter, and are made available to Puppet as global variables.

Puppet Vocabulary (Cont’d) Manifest A file containing code written in the Puppet language, and named with the .pp file extension.  Catalog A catalog is a compilation of all the resources that will be applied to a given system and the relationships between those resources. Catalogs are compiled from manifests by a puppet master server and served to agent nodes

Puppet Vocabulary (Cont’d) node (or node statement) A collection of classes, resources, and variables in a manifest, which will only be applied to a certain agent node. Node definitions begin with the node keyword, and can match a node by full name or by regular expression. When a managed node retrieves or compiles its catalog, it will receive the contents of a single matching node statement, as well as any classes or resources declared outside any node statement. The classes in every other node statement will be hidden from that node.

How it works Client: request catalog applies the parts that are needed Ends up in the defined state Server: Identifies the requesting client Compiles its specific catalog Receives report (success / failures, and what was changed)

Puppet Setup Setting up a puppet master Install puppet server, usually using packages for your distribution. Gather the modules you will need from the puppet forge The Puppet Forge is a repository of free modules you can install and use. Most of these modules are open source, and you can easily contribute updates and changes to improve or enhance these modules.  Declare nodes definitions for the machines you want to configure, for example: node 'agent1.localdomain' { include apache class {'ntp': servers => [ "ntp1.example.com dynamic", "ntp2.example.com dynamic", ], }

Puppet Setup (cont’d) Puppet comes with a web server: Puppet includes a basic puppet master web server based on Ruby’s WEBrick library.You cannot use this default server for real-life loads, as it can’t handle concurrent connections; it is only suitable for small tests with ten nodes or fewer. You must configure a production quality web server before you start managing your nodes with Puppet. Use Apache and Passenger if you plan to support more than 10 nodes. Passenger (AKA mod_rails or mod_rack) is an Apache 2.x module which lets you run Rails or Rack applications inside a general purpose web server https://docs.puppetlabs.com/guides/passenger.html First time the puppet master is started, certificates are created for the server.

Puppet Setup (cont’d) Set up of a managed node Install the base OS with the puppet client, usually using packages for you distribution Configure /etc/puppet/puppet.conf to point to your puppet master Clock need to be in sync with master (SSL) Run puppet client once certificate for your client is created a certificate signature request is sent to the puppet master On the puppet master: sign the client certificate Run puppet client again: the run will now succeed and puppet will configure the node according to the node definition.

Puppet Setup (cont’d) Version control the puppet files (modules, manifests, configurations) Not a requirement, just good practice

Puppet Characteristics Long and rich history. Well maintained Lots of documentation http://docs.puppetlabs.com/puppet/ Quite a bit of ramp up Pseudo ruby declarative language Ordering. Puppet applies its catalog in a random order (can be changed in latest version) When dealing with related resources, Puppet has ways to express those relationships with the before, require, notify, and subscribe metaparameters.

Puppet Characteristics (Cont’d) No separation of code and “data” Customization of modules (new classes, templates) all go in the existing modules area Your own module go in the modules folder Makes it hard and sometimes impossible to know where things came from, after a while. Makes it hard to upgrade to new versions of modules Makes it hard to upgrade to new versions of puppet Once you have it working, does a good job at doing its job, i.e. keeping your machines configured the way you want.

Puppet in GENI Probably does not make sense if you don’t have experience with it and if the slice you’re using is not going to last very long Makes sense to use if you have some puppet gurus on hands.