DOJO Puppet

What is Puppet?

  • Configuration management solution
  • Puppet Labs (founded in 2005)
  • Open source
  • Agent-master architecture
  • Infrastructure as Code (IaC)
  • Code in Puppet & Ruby languages
  • Framework (modules)
  • Enterprise version available

Why Puppet?

  • Important community
  • Cross-platform (*nix, Windows, Mac)
  • Leading actor in DevOps research
  • Clean separation between code and data
  • Many documentation and learning resources
  • Lot of existing modules
  • Works with Jenkins, Azure, AWS

Alternatives

  • Ansible
  • Chef
  • Octopus Deploy

Key principles

  • KISS = Keep It Simple Stupid
  • DRY = Don't Repeat Yourself
  • Idem-potency
  • Treat your infra as your apps (TDD/CI/CD)
  • Automate 100% of system actions

Glossary

  • Bolt: task runner
  • Discovery: infrastructure lookup
  • Facter: system profiling library
  • Forge: module repository
  • Hiera : hierarchical configuration storage & lookup
  • PDK : Puppet Development Kit
  • r10k: Puppet environment and module deployment
  • Tasks: single actions

Puppet server filesystem

/etc/puppetlabs:
  - code:
    - environments:
      - development:
      - production:
        - data:
          - common.yaml
        - manifests:
          - site.pp
        - modules:
        - site:
        - environment.conf
        - hiera.yaml
        - Puppetfile
    - modules:
  - puppet:
    - ssl:
    - hiera.conf
    - puppet.conf
/opt/puppetlabs/server/data/puppetserver:
/var/log/puppetlabs/puppetserver:

Starting points

DOJO Puppet

By Bertrand Thomas