Masterless puppet

50 %
50 %
Information about Masterless puppet
Technology

Published on March 18, 2014

Author: nunezjesus

Source: slideshare.net

Description

A general overview of how to implement Puppet in a masterless way.

Masterless Puppet (Decentralised architecture) Jesus Nunez nunezmontoya210@gmail.com Sydney puppet users group March 2014

who is Jesus Nunez? - Software Engineer - Enjoys continuous process improvement - 15+ year developing software - Have worked for Government, Telco and Finance industry - Puppet enthusiast - Currently helping to automate as much as I can… especially my Job !!!

What makes up Puppet? - Puppet DSL code - Ruby libraries - Execution services => knowledge => engine => trigger

Execution services in Master-node mode for each node { node wakes up every X time master receives node’s signal master compiles node’s catalog master sends instructions to node node applies changes and go to sleep }

Execution services in Masterless mode for each node { remote executor sends command to node node pulls Puppet code from git central repo node compiles catalog node applies changes }

Distributing the knowledge - The Puppet code will be held in each node rather than in a Puppet Master server. - Node local git repo will have the node’s puppet code.

librarian-puppet Ruby library to manage Puppet modules. The Puppetfile has the list of modules to pull from internal or external repos. mod "apt", :git => "git://github.com/puppetlabs/puppetlabs-apt.git" mod "my_web_server", :git => "ssh://repos.git.mycompany/infra/my_web_server.git" :ref => “v1.0”

SSH remote execution A remote executor server will trigger on one or more target nodes: 1. Code update via librarian puppet 2. Puppet apply command

How do we get there? - Puppet installed in the nodes (no need for certificate and daemon) - Install remote executor - Remote executor SSH key distribution - ENC file(s) - Puppetfile generator - Puppet modules with Hiera data

ENC file and Puppetfile generation git_repo: ssh://repos.mycompany.com/infra - web_server_node: &WEB_SERVER - apache: version: "v1.0" ... - mysql: version: "master" ... - auth_node: &AUTH - open_am... - open_idm... - open_dj.. - server1.mycompany.com: type: *WEB_SERVER - server2.mycompany.com: type: *WEB_SERVER - server3.mycompany.com: type: *AUTH Node types Nodes declaration

ENC file and Puppetfile generation # server1.mycompany.com and server2.mycompany.com mod "apache", :git => "ssh://repos.git.mycompany/infra/apache.git", :ref => “v1.0” mod "mysql", :git => "ssh://repos.git.mycompany/infra/mysql.git" # server3.mycompany.com mod "opean_am", :git => "ssh://repos.git.mycompany/infra/open_am.git" :ref => “v1.0” mod ….

Putting it all together Remote Executor Send remote command Git Repo Pull code > Puppetfile generation > Librarian-puppet install/update > Puppet apply command

Multiple Environments DEV Remote Executor Git repo Nodes TEST Remote Executor Git repo Nodes PROD Remote Executor Git repo Nodes

Pros - Distributed processing - Distributed knowledge - No single point of failure - Less moving parts Cons - Reimplement remote execution and/or job scheduling - Reimplement ENC

Remote Executors - Command line - Rundeck - Bamboo - Jenkins

questions?

thanks :)

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

How To Set Up a Masterless Puppet Environment on Ubuntu 14 ...

Typically, a user pushes their Puppet modules to a version control server, then pulls those modules down to a Puppet master. Puppet clients periodically ...
Read more

Puppet (Masterless) Provisioner - Packer by HashiCorp

Puppet (Masterless) Provisioner. Type: puppet-masterless. The masterless Puppet Packer provisioner configures Puppet to run on the machines by Packer from ...
Read more

puppet-examples/masterless at master · jordansissel/puppet ...

README.md Masterless Example. Here's how to run this: puppet apply --modulepath ./modules manifests/site.pp This is running puppet local (aka, masterless ...
Read more

Masterless Puppet and Supply Drop | Puppet

Presented at Puppet Camp Chicago 2012 ... Get our monthly newsletter and the occasional email we think you'll like.
Read more

GitHub - tazjin/puppet-masterless: A simple skeleton ...

README.md Masterless Puppet with systemd. This repository is intended as a sort of "template" for masterless Puppet setups on systemd-based distributions.
Read more

Masterless Puppet and Declarative provisioning | inside ...

This is a post by Gordon Clark, one of our Infrastructure Engineers, and Jono Ellis, our Social Media Manager. This post is the second post in our series ...
Read more

Masterless Puppet in AWS – Neatshell

The following steps describe how to setup Puppet without a master in Amazon Web Services (AWS). Puppet files are distributed over SSH using Git.
Read more

Masterless Chef/Puppet | Technology Radar | ThoughtWorks

Chef and Puppet servers are a central place to store recipes/manifests that propagate configuration changes to managed machines. They are also a central ...
Read more

Masterless (2015) - IMDb

Enhance your IMDb Page. Go to IMDbPro ... Search for "Masterless" on Amazon.com. Connect with IMDb. Share this Rating. Title: Masterless (2015)
Read more