Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Modern Infrastructure from Scratch with Puppet

Modern Infrastructure From Scratch - Simon KP, Ecetera

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

Modern Infrastructure from Scratch with Puppet

  1. 1. Getting it right from the start with Puppet Modern Infrastructure From Scratch
  2. 2. Senior DevOps Engineer at Ecetera simon.kp@ecetera.com.au eskp almost everywhere else Who am I
  3. 3. Overview ● Define, model and provision new infrastructure ● Establish an efficient development workflow ● Get familiar with some of the Puppet concepts
  4. 4. Why automate infrastructure? ● Consistently Repeatable and Portable ● Efficient ● Captured Effort ● Executable/Live Self-Documentation
  5. 5. Define Modern Infrastructure ● Infrastructure Automation (VirtualBox+Vagrant) ● Version Control (Git+Gitlab) ● Configuration Management (Puppet) ● Test + Deployment Automation (Jenkins+r10k) ● Centralised Log Aggregation (ELK stack) ● Monitoring (Sensu)
  6. 6. Infrastructure Model
  7. 7. The code Two repositories: ● Vagrant repo https://github.com/Ecetera/puppet-vagrant ● Control repo https://github.com/Ecetera/puppet-control
  8. 8. Puppet Roles & Profiles Resources > Classes > Modules > Profiles > Role > Node Allow the business to manage how the infrastructure looks without defining what it is Data is abstracted by Hiera
  9. 9. Roles definition # site/role/manifests/init.pp class role::git { include profile::jenkins include profile::rabbit include profile::mco::client } ...
  10. 10. Profiles definition # site/profile/manifests/init.pp class profile::jenkins { class { '::jenkins': } jenkins::job { 'puppet-control': } create_resources(jenkins::credentials, hiera('jenkins_credentials')) } ...
  11. 11. Nodeless Classification # site.pp node default { hiera_include(‘role’) }
  12. 12. Hiera overview --- # /etc/puppet/hiera.yaml :yaml: :datadir: “/etc/puppet/environments/%{::environment}/data” :hierarchy: - “%{::hostname}”
  13. 13. Hiera overview --- # data/puppet.yaml role: - role::puppetserver apache::default_vhost: false ...
  14. 14. Don’t write modules unless you absolutely have to. Modules
  15. 15. Look for modules ● Puppet Labs approved and supported ● Lots of downloads ● No weird dependencies ● Documentation ● Source is on Github
  16. 16. Module Deployment r10k - manages modules defined in Puppetfile Deploys Puppet’s dynamic directory environments based on puppet-control repo’s git branches Does not resolve modules dependencies
  17. 17. Puppetfile mod ‘puppetlabs/ntp’, ‘3.2.1’ mod ‘rabbitmq’, :git => https://github.com/puppetlabs/puppetlabs-rabbitmq.git, :commit => '15e2421048a3495e60482837910441a1248bf6f0' ...
  18. 18. Demonstration http://puppet.eskp.net:5000 Puppetboard view of Puppet infrastructure http://control.eskp.net:9090 Jenkins http://log.eskp.net Kibana dashboard for centralised logs access http://mon.eskp.net:3000 Uchiwa dashboard overview of Sensu
  19. 19. Todo ● Write infrastructure tests ● Address scale ● Provision with puppetlabs-aws module ● Upgrade to Puppet 4
  20. 20. Questions? simon.kp@ecetera.com.au (eskp) “Modern Infrastructure From Scratch”

    Be the first to comment

    Login to see the comments

  • mtaarao

    May. 22, 2015
  • unixplayer

    May. 23, 2015
  • hexaddikt

    Jun. 6, 2015
  • ankrug

    Feb. 27, 2016
  • ShahulHammeed5

    Apr. 26, 2021

Modern Infrastructure From Scratch - Simon KP, Ecetera

Views

Total views

1,749

On Slideshare

0

From embeds

0

Number of embeds

40

Actions

Downloads

25

Shares

0

Comments

0

Likes

5

×