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
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
- puppet.com/docs
 - learn.puppet.com
 - Writting module
 - Puppet code logic
 - Role/Profile pattern
 
