Configuration Management with Puppet. Introduction

Similar documents
SCaLE Puppet Introduction. Puppet Assigns and Maintains a Machine s Desired Role

Being a puppet master

PUPPET. Use at General Mills

Puppet. Configuring your systems so you don't have to... Frank Sweetser Senior Network Engineer WPI Network Operations and Security

Cobbler and Puppet. Controlling your server builds. Eric Mandel and Jason Ford BlackMesh

A WEB-BASED SOLUTION TO VISUALIZE OPERATIONAL MONITORING LINUX CLUSTER FOR THE PROTODUNE DATA QUALITY MONITORING CLUSTER

Satellite 6 and Puppet. Michael Heldebrant Senior Cloud Infrastructure Solutions Architect Red Hat April 2015

Configuration Management with Puppet. LinuxFest Northwest. Garrett Honeycutt April 25th, 2010

PULLING STRINGS. Learn how to save time and streamline your system administration with the help of Puppet, a centralized

An Introduction to the Puppet Ecosystem

Integrating the Cloud with Puppet. Tuesday, February 26, 13

Puppet 2.7 Reference Manual. (Generated on July 01, 2013, from git revision 46784ac1656bd7b57fcfb51d0865ec7ff65533d9)

Razor. Michal Bryxí Software Engineer Puppet Slides based on work from: David Lutterkort Principal Engineer Puppet

Configuration Management - Using Puppet. lctseng / Liang-Chi Tseng

Less talk, more rock. Puppet

PUPPET MODULES: A HOLISTIC APPROACH

An Introduction to Puppet Enterprise

Components of a Puppet architecture

From Bare Metal to Cloud. Andy ICCLab, ZHAW Piotr Kasprzak, GWDG

IT Automation with Puppet

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017

From Bare Metal to Cloud

Satellite 6 User Guide. ID Client Delivery

Project #3: Implementing NIS

Can you upgrade to Puppet 4.x? PuppetCamp Düsseldorf Martin Alfke

Drupal Command Line Instructions Windows 7 List All Users >>>CLICK HERE<<<

Red Hat Satellite 6.4

deploying high capacity IP fabrics

IoTivity Programmer s Guide Resource Encapsulation

Refactoring Puppet 1

Testing an Open Source installation and server provisioning tool for the INFN CNAF Tier1 Storage system

Tutorial: SSH. Secure SHell: Connect remotely anything, anywhere. UL High Performance Computing (HPC) Team Sebastien Varrette

Fabric Management using Open Source Tools

Be smart. Think open source.

Overview of the Cisco NCS Command-Line Interface

SysadminSG RHCSA Study Guide

Testing your puppet code

Unix / Linux Overview

DEVOPS COURSE CONTENT

Red Hat Satellite 6.3

Installation Tools for Clusters. Rajesh K., Computer Division, BARC

Scientific Cluster Deployment and Recovery Using puppet to simplify cluster management

Active System Manager Release 8.2 SDK Reference Guide

puppet-diamond Documentation

AGENDA. 13:30-14:25 Gestion des patches, du provisionning et de la configuration de RHEL avec Satellite 6.1, par Michael Lessard, Red Hat

Hosting Applications Using Configuration Management Tools

SSH Deploy Key Documentation

Red Hat Satellite 6.2

Puppet on the AWS Cloud

Using cobbler in a not-so-small environment

Red Hat Satellite 6.3

Red Hat Satellite Server 6.2 Pattern

Kerberos-enabled applications. Core services for UNIX shell programs and applications. Kerberos environment. Centrify DirectControl Service Library

We are ready to serve Latest Testing Trends, Are you ready to learn?? New Batches Info

SUSE Manager and Salt

Red Hat Satellite 6.3

Critical Analysis and last hour guide for RHCSA/RHCE Enterprise 7

Chapter 5: User Management. Chapter 5 User Management

Everything about Linux User- and Filemanagement

Managing Infrastructure with Puppet

Services, logging, accounting Todd Kelley CST8177 Todd Kelley 1

DevOps Technologies. for Deployment

Red Hat Satellite 6.0

Spacewalk. Installation Guide RHEL 5.9

Check the FQDN of your server by executing following two commands in the terminal.

Lifecycle management with Foreman and Katello Basics and Spacewalk migration

FreeIPA - Control your identity

Table of Contents HOL-PRT-1469

Spacewalk. Installation Guide for CentOS 6.4

Advanced Puppet Topics. Ken Barber Professional Services Engineer

ovirt Node June 9, 2012 Mike Burns ovirt Node 1

Definition Center Installation for Linux

Linux Network Administration

SSSD. Client side identity management. LinuxDays 2012 Jakub Hrozek

NetXplorer. Installation Guide. Centralized NetEnforcer Management Software P/N D R3

Red Hat Satellite 6.4-Beta

"Charting the Course... RHCE Rapid Track Course. Course Summary

Installing and Configuring VMware Identity Manager Connector (Windows) OCT 2018 VMware Identity Manager VMware Identity Manager 3.

Preparing for the Prime Home Installation

Speeding Up Infrastructure Provisioning with CloudForms. Jason Dillaman Principal Architect, Red Hat Nick Lane Consultant, Red Hat

Xcalar Installation Guide

Managing Linux systems with Spacewalk Moon Landing

Orchestration via. Patrick Pierson, Systems Engineer -

CptS 360 (System Programming) Unit 2: Introduction to UNIX and Linux

Linux Systems Administration Getting Started with Linux

BoKS Puppet module. Building the BoKS module. Rijnstraat 23, 2223 EG, Katwijk

Continuous Integration using Docker & Jenkins

Red Hat Satellite 6.2

Centreon SSH Connector Documentation

Recursive inventory management

The powerful Bcfg2 provides a sophisticated environment for centralized configuration management. uses a powerful, abstract approach.

Sit with your new teammate

IBM z Systems Development and Test Environment Tools User's Guide IBM

Configura)on Management

Discover SUSE Manager

VMware Photon Controller Quick Start Guide

Course Wiki. Today s Topics. Web Resources. Amazon EC2. Linux. Apache PHP. Workflow and Tools. Extensible Networking Platform 1

Red Hat Gluster Storage 3.2 Console Installation Guide

Subtitle: Join Sun Solaris Systems to Active Directory with Likewise

Prometheus: LDAP Based Account Provisioning

Transcription:

Configuration Management with Puppet Introduction

What is Puppet is a configuration management system is a programming language offers a Client/Server architecture has a huge community widely used in the IT industry commercial support available if needed

What else is needed central software repositories yum apt Provisioning system kickstart preseed Version control GIT subversion

Puppet process - Step 1 Registration Example: foreman, satellite, spacewalk... Creates: Kickstart File and Puppet Node definition

Puppet process - Step 2 Provisioning Tool: Redhat anaconda, Fai, cobbler, preseed Input: anaconda configured by kickstart file preseed config file Result: Installing minimal linux and puppet, and start Puppet after reboot

Puppet process - Step 3 Configuration Tool: puppet Input: node definition Result: puppet defined system state

Contents Resources Manifests Ordering Variables, Conditionals, and Facts Classes Module

Resources All elements of a node will be described as resources Files User Services... (about 50)

Resources Abstraction layer to access the resources (RAL) Resources have attributes a File has a Path. The RAL gives you os independence BUT!! not all resources are available on every platform Resources well documented

Example Resource user { 'dave': ensure => present, uid => '507', gid => 'admin', shell => '/bin/zsh', home => '/home/dave', managehome => true,

Ressource shell You can interact with the RAL directly. puppet resource user root puppet resource user dave \ ensure=present shell="/bin/zsh" \ home="/home/dave" managehome=true

Resource Documentation $ puppet describe -s user user ==== Manage users. This type is mostly built to manage system users, so it is lacking some features useful for managing normal users. This resource type uses the prescribed native tools for creating groups and generally uses POSIX APIs for retrieving information about them. It does not directly modify `/etc/passwd` or anything. Parameters ---------- allowdupe, auth_membership, auths, comment, ensure, expiry, gid, groups, home, key_membership, keys, managehome, membership, name, password, password_max_age, password_min_age, profile_membership, profiles, project, role_membership, roles, shell, uid Providers --------- directoryservice, hpuxuseradd, ldap, pw, user_role_add, useradd

Resource basic file vs. augeas yumrepo stages package ensure latest? exec only if needed

Manifests manifests are puppet programs puppet programs declare resources define conditions group resources generate text link other manifests define ordering

Manifests Compile Managed-Node Puppet-Dev writes transform

Manifests Run actual status Puppet Action defined status no file /etc/service.conf /etc/init.d/service: not running write file start service /etc/service.conf /etc/init.d/service: running

Manifests example file {'/tmp/test1': ensure => present, content => "Hi.", file {'/tmp/test2': ensure => directory, mode => 0644, file {'/tmp/test3': ensure => link, target => '/tmp/test1', notify {"I'm notifying you.": notify {"So am I!":

Ordering example file { '/etc/ssh/sshd_config': ensure => file, mode => 600, source => '/root/learning-manifests/sshd_config', service { 'sshd': ensure => running, enable => true, subscribe => File['/etc/ssh/sshd_config'],

Facts example host {'self': ensure => present, name => $fqdn, host_aliases => ['puppet', $hostname], ip => $ipaddress, file {'motd': ensure => file, path => '/etc/motd', mode => 0644, content => "Welcome to ${hostname,\na ${operatingsystem island in the sea of ${domain.\n",

Conditionals example if $is_virtual == 'true' { service {'ntpd': ensure => stopped, enable => false, else { service { 'ntpd': name => 'ntpd', ensure => running, enable => true, hasrestart => true, require => Package['ntp'],

Code entities Classes Classes are named blocks of Puppet code that are stored in modules for later use and are not applied until they are invoked by name. Modules Modules are self-contained bundles of code and data. You can download pre-built modules from the Puppet Forge or you can write your own modules. They can be added to a node defnition. Node definition / ENC A node definition or node statement is a block of Puppet code that will only be included in matching nodes catalogs. An external node classifier is an arbitrary script or application which can tell Puppet which modules a node should have. This allows you to assign specific configurations to specific nodes.

Structure of a Module Module: foo manifests files templates test foo/manifests/init.pp foo/manifests/params.pp foo/manifests/config.pp foo/manifests/install.pp foo/manifests/service.pp

Structure of a Module Module: foo manifests files templates test foo/files/bar.conf

Structure of a Module Module: foo manifests files templates test foo/templates/baz.erb

Class example /ntp/manifests/init.pp class ntp inherits ntp::params{ include ntp::install include ntp::service

Class example /ntp/manifests/params.pp class ntp::params{ $service_name ='ntpd' $conf_file ='ntp.conf.el'

Class example /ntp/manifests/install.pp class ntp::install { package { 'ntp': ensure => installed,

Class example /ntp/manifests/service.pp class ntp::service { service { 'ntp': name => $service_name, ensure => running, enable => true, subscribe=> File['ntp.conf'],

Structure of Configuration Site Node dbsrv02.desy.de: Node websrv01.desy.de: Module: SSH ssh ssh::install ssh::config ssh::params ssh::service Module: apache apache apache::install apache::config apache::params apache::service

Organization of the modules node foo21.desy.de { include it_desktop modules / features ntp afs apache it_desktop x x xfel_webserver x x

It's the end my friend!