developing sysadmin - sysadmining developers



Similar documents
Secure Linux Administration Conference Bernd Strößenreuther

The Puppet Show Managing Servers with Puppet

Our Puppet Story Patterns and Learnings

How to extend Puppet using Ruby

Pro Puppet. Jeffrey McCune. James TurnbuII. Apress* m in

How to Deploy a Secure, Highly-Available Hadoop Platform

Deploying Foreman in Enterprise Environments 2.0. best practices and lessons learned. Nils Domrose Cologne, August,

Offline Data Transfer to VMWare vcloud Hybrid Service

Configuration Management Evolution at CERN. Gavin

CURRENT STATE OF ICINGA

VAULT MODERN SECRETS MANAGEMENT

CHEF IN THE CLOUD AND ON THE GROUND

The road to lazy monitoring with Icinga2 & Puppet. Tom De

Building Hosts with Puppet

AGENDA: INTRODUCTION: 1. How is our cloud monitoring setup? 2. Which are the tools used? 3. How do we access monitoring dashboard?

Icinga and Puppet Dominik Schulz Head of Datacenter and Operations Magic Internet / MyVideo

Git - Working with Remote Repositories

PostgreSQL administration using Puppet. Miguel Di Ciurcio Filho

Cloud.com CloudStack Community Edition 2.1 Beta Installation Guide

The CF Brooklyn Service Broker and Plugin

Developing IT Infrastructure: Automated and Centralized System Configuration Management with Puppet. Armen Igitian

Cloud-init. Marc Skinner - Principal Solutions Architect Michael Heldebrant - Solutions Architect Red Hat

Puppet Firewall Module and Landb Integration

Setting Up a CLucene and PostgreSQL Federation

Oracle Mobile Security Suite Workshop. Installation

KonyOne Server Installer - Linux Release Notes

Monitoring and Alerting

Tools and Integration

Install and Config For IBM BPM 8.5.5

Continuous security audit automation with Spacewalk, Puppet, Mcollective and SCAP

PZVM1 Administration Guide. V1.1 February 2014 Alain Ganuchaud. Page 1/27

PES. Creating Load-Balanced Services on top of Cloud Infrastructure and Puppet. Platform & Engineering Services. Vítor Gouveia, vitor.gouveia@cern.

Timofey Turenko. Kirill Krinkin St-Petersburg Electrotechnical University

Stripe. Chapters. Copyright. Authors. Stripe modules for oscommerce Online Merchant. oscommerce Online Merchant v2.3

IceWarp to IceWarp Server Migration

Syncplicity On-Premise Storage Connector

FileBench's Multi-Client feature

GL-550: Red Hat Linux Security Administration. Course Outline. Course Length: 5 days

Configuration Management in Drupal 8. Andrea Pescetti Nuvole

Web Application Platform for Sandia

TestOps: Continuous Integration when infrastructure is the product. Barry Jaspan Senior Architect, Acquia Inc.

Title: How to set up SSL between CA SiteMinder Web Access Manager - SiteMinder Policy Server and Active Directory (AD)

Architecting the Future of Big Data

Simple and powerful site deployment with capistrano

Configuration Management Change Management, and Culture Management

1. Introduction 2. Getting Started 3. Scenario 1 - Non-Replicated Cluster 4. Scenario 2 - Replicated Cluster 5. Conclusion

How do I control and manage SIPe Profiles

Managing User Accounts

SIG-NOC Meeting - Stuttgart 04/08/2015 Icinga - Open Source Monitoring

A Plan for the Continued Development of the DNS Statistics Collector

Create e-commerce website Opencart. Prepared by : Reth Chantharoth Facebook : rtharoth@yahoo.

Ansible. Configuration management tool and ad hoc solution. Marcel Nijenhof

Installing Dspace 1.8 on Ubuntu 12.04

TF-NOC Dublin. Alexandros Kosiaris GRNET NOC Use puppet and network inventory to populate nagios/icinga configuration

Installation, Configuration, and Usage

Everything you ever wanted to know about Drupal 8*

Multivendor Extension User Guide

DevOoops Increase awareness around DevOps infra security. Gianluca

A Puppet Approach To Application Deployment And Automation In Nokia. Oliver Hookins Principal Engineer Services & Developer Experience

Building a Kubernetes Cluster with Ansible. Patrick Galbraith, ATG Cloud Computing Expo, NYC, May 2016

Active Directory Installation on Windows Server 2012

Monitoring MySQL database with Verax NMS

Postgres Enterprise Manager Installation Guide

Open-Xchange Server High availability Daniel Halbe, Holger Achtziger

Package hive. January 10, 2011

Mesosphere. In this post. bootstrap_url

Managing a local Galaxy Instance. Anushka Brownley / Adam Kraut BioTeam Inc.

To increase scalability, the following features can be integrated:

Apache Sling A REST-based Web Application Framework Carsten Ziegeler cziegeler@apache.org ApacheCon NA 2014

Oracle WebLogic Server

INTRO TO THEMING IN MAGENTO

T14 RUMatricula Phase II. Section 1 Metaphor and requirements

HP SiteScope 11.x Essentials

McAfee Network Data Loss Prevention Administration Intel Security Education Services Administration Course

This installation guide will help you install your chosen IceTheme Template with the Cloner Installer package.

Apache Sentry. Prasad Mujumdar

Red Hat System Administration 1(RH124) is Designed for IT Professionals who are new to Linux.

JobScheduler. Architecture and Mode of Operation. Software for Open Source

Using vrealize Code Stream

Automate Your BI Administration to Save Millions with Command Manager and System Manager

Drupal 6 to Drupal 7 Migration Worksheet

InterWorx Clustering Guide. by InterWorx LLC

Deploying computers in 3 weeks? Are you nuts?!? Sean Kaiser Northmont City Schools

itanalyzer Data Protection Module

Upgrading a Single Node Cisco UCS Director Express, page 2. Supported Upgrade Paths to Cisco UCS Director Express for Big Data, Release 2.

Drupal CMS for marketing sites

Modelling with R and MySQL. - Manual - Gesine Bökenkamp, Frauke Wiese, Clemens Wingenbach

Dry Dock Documentation

VDCF - Virtual Datacenter Control Framework for the Solaris TM Operating System

Kickstart & Booking. Kristian Köhntopp, booking.com

Install and Configure an Open Source Identity Server Lab

Transcription:

developing sysadmin - sysadmining developers develop your platform and your application management GUUG Berlin 01.11.2012 Martin Alfke <martin.alfke@buero20.org>

Agenda puppet environments puppet modules puppet templates puppet and augeas puppet multi master puppet without master

Environments admin s and dev s cooperate!

Environments Split up modules into several repositories production is default and always there Naming is abritrary Master needs to know about environments Client needs to send environment information

Environments puppet.conf [master] [test] manifest = /etc/puppet/test/manifests/site.pp modulepath = /etc/puppet/test/modules [mailteam] manifest = /etc/puppet/mail/manifests/site.pp modulepath = /etc/puppet/mail/modules [agent] environment = test

Environments Each environment may have multiple modulepaths [master] [test] manifest = /etc/puppet/test/manifests/site.pp modulepath = /etc/puppet/test/modules:/data/puppet/team/test/modules [mailteam] manifest = /etc/puppet/mail/manifests/site.pp modulepath = /etc/puppet/mail/modules:/data/puppet/team/core/modules

Modules plug things together simple

Modules Difference between modules and classes Module: strict directory naming for autoloading each module has at least one class Class: available but not applied automatically

Modules directory structure /etc/puppet/test/modules/ <-- modulepath apache/ <-- modulename manifests/ <-- manifests path within module init.pp <-- initial class fetched from autoloader server.pp <-- additional class(es) files/ <-- directory for module file serving templates/ <-- directory for module templates lib/ <-- directory for facts or functions tests/ <-- directory for tests during develop

Modules class, file and template naming structure /etc/puppet/test/modules/ apache/ manifests/ init.pp <-- class apache {... } server.pp <-- class apache::server {... } files/ <-- puppet:///modules/apache/<filename> templates/ <-- template( apache/<filename> ) lib/ tests/

Modules class structure class apache { package { apache2 : ensure => present, } file { /etc/apache2/apache2.conf : content => template( apache/apache2.conf.erb ), } file { /etc/apache2/conf.d/charset : source => puppet:///modules/apache/charset, } service { apache2 : ensure => running, } }

Modules use classes node www01.domain.tld { class { apache : } } <-- old: include apache

Modules resources, classes, parameterized classes resource_type { title : attribute => value, } class <title> {... } class <title> ( $variable = value) {... } class { <title> : } class { <title> : variable => value, }

Modules using ruby in classes /etc/puppet/test/modules/apache/manifests/init.rb hostclass :apache do package :apache2, :ensure => present package :libapache2-php, :ensure => present service :apache2, :ensure => running end

Templates code your config

Templates Ruby ERB template engine Normally requires in-depth configuration review Be aware of variable scoping!

Templates use variables from puppet in templates $ntpserver = 10.2.3.4 file { /etc/ntp.conf : content => template( ntp/ntp.conf.erb ), } # ntp.conf.erb <% if @ntpserver %> <-- old: if has_variable( ntpserver ) server <%= @ntpserver %> <-- @ syntax is new. uses current scope <% else %> server pool.ntp.org <% end %>

Augeas clean your lenses

Augeas Make changes to single lines Do not manage the complete configuration file in puppet

Augeas augeas uses lenses to split up config files augtool print /files/etc/sysctl.conf augtool set net.ipv4.forward 1 augeas { set_ipv4_forward : context => /files/etc/sysctl.conf, changes => set net.ipv4.forward 1, }

Augeas Attention! Not all configuration files are supported! Augeas needs key-value pairs Within puppet ruby-augeas extension is required

Multi Master no one can serve two masters!

Multi Master Load-Balancing with SSL separation several Data Center do you really have more than 1000 nodes?

Multi Master separate puppet ca and puppet master puppet.conf on puppet ca (single instance) [master] ca = true puppet.conf on puppet master [master] ca = false puppet.conf on agent [agent] ca_server = <puppet ca> server = <puppet master>

Multi Master use multiple master (without ca) apache/nginx and loadbalancing ipvsadm

Multi Master use multiple master (without ca) pros: file serving handled better cons: more masters compile catalogs single ca only

Multi Master avoid multiple masters use templates! templates are generated on the master during catalog compilation files needs to get fetched by the nodes use mod_passenger

without Master you shall have no master

without Master Pre-compile catalogs Run puppet apply locally

without Master Very large environment (>15.000 nodes) Multiple locations world wide

without Master Compile catalogs for all nodes on master puppet master compile <fqdn> Copy catalogs to nodes to execute them puppet apply --catalog <catalog file name>

without Master Pros: no dedicated master, catalog compilation may take place everywhere Cons: no modules!! fileserving has to be done locally (e.g. NFS mount)

developing sysadmin - sysadmining developers Wait! There is more! Martin Alfke <martin.alfke@buero20.org>

ENC and Hiera data, data, data ENC and Hiera - Puppet DB - Dashboard

ENC and Hiera External Nodes Classifier can be anything executable with one parameter (fqdn) get info from filesystem: cat $1.yaml get info from inventory database ENC and Hiera - Puppet DB - Dashboard

ENC and Hiera ENC in puppet /etc/puppet/puppet.conf [master] node_terminus = exec external_nodes = /etc/puppet/bin/my_great_enc.exe ENC and Hiera - Puppet DB - Dashboard

ENC and Hiera /etc/puppet/bin/my_great_enc.exe www1.domain.tld --- parameters: location: de-ber2 classes: ntp: ntpserver: 10.2.2.2 apache: mysql: environment: production ENC and Hiera - Puppet DB - Dashboard

ENC and Hiera Hiera - hierarchial data structure built in into Puppet 3.x add-on in Puppet 2.7.x ENC and Hiera - Puppet DB - Dashboard

ENC and Hiera Hiera configuration /etc/puppet/hiera.yaml :hierarchy: - %{operatingsystem} - common - %{datacenter} - %{serverfunction} :backends: - yaml :yaml: :datadir: /etc/puppet/hieradata ENC and Hiera - Puppet DB - Dashboard

ENC and Hiera Hiera data /etc/puppet/hieradata/debian.yaml --- ssh_packages: - openssh-server - openssh-client - openssh-blacklist /etc/puppet/hieradata/centos.yaml --- ssh_packages: - openssh - openssh-clients - openssh-server ENC and Hiera - Puppet DB - Dashboard

ENC and Hiera Hiera usage /etc/puppet/modules/ssh/manifests/init.pp class ssh { $ssh_packages = hiera( ssh_packages ) package { ${ssh_packages} : ensure => present } } ENC and Hiera - Puppet DB - Dashboard

PuppetDB getting it all ENC and Hiera - Puppet DB - Dashboard

PuppetDB Used for storeconfigs and exported resources Schema for PostgreSQL Will get more features soon ENC and Hiera - Puppet DB - Dashboard

Dashboard management needs graphs ENC and Hiera - Puppet DB - Dashboard

Dashboard Open Source Dashboard is dead end PuppetLabs is working on two other tools ENC and Hiera - Puppet DB - Dashboard

developing sysadmin - sysadmining developers Questions? Martin Alfke <martin.alfke@buero20.org>