Puppet
environment.conf¶
modulepath = ./modules:site:$basemodulepath
manifest = ./manifests
Puppetfile¶
mod 'project0-bareos',
:git => 'https://github.com/Project0/puppet-bareos.git'
mod 'puppet/unattended_upgrades'
mod 'norisnetwork/syslog_ng'
mod 'puppetlabs/stdlib'
mod 'puppetlabs/concat'
mod 'example42/network'
mod 'fraenki-galera'
mod 'puppetlabs/dsc'
mod 'puppetlabs/apt'
mod 'puppetlabs/ntp'
mod 'puppetlabs/git'
mod 'saz/timezone'
mod 'stm/debconf'
mod 'saz/locales'
mod 'saz/sudo'
mod 'saz/ssh'
hiera.yaml¶
---
version: 5
defaults:
datadir: "/etc/puppetlabs/code/environments/%{environment}/hiera"
data_hash: yaml_data
hierarchy:
- name: "Puppet Node Globs"
globs:
- "nodes/%{trusted.certname}/*.yaml"
- name: "Puppet Nodes"
paths:
- "nodes/%{trusted.certname}.yaml"
- name: "Puppet Hostgroup Globs"
globs:
- "roles/%{hostgroup}/*.yaml"
- name: "Puppet virtual globs"
globs:
- "hosttypes/%{::virtual}/%{::kernel}/*.yaml"
- name: "Puppet OS"
paths:
- "os/%{::operatingsystem}.yaml"
- "os/%{::operatingsystem}/%{::operatingsystemmajrelease}.yaml"
- "os/%{::osfamily}/%{::operatingsystemmajrelease}.yaml"
- "os/%{::osfamily}.yaml"
- name: "Puppet OS Glob"
globs:
- "os/%{::operatingsystem}/common/*.yaml"
- name: "Puppet Common Glob"
globs:
- "common/%{::kernel}/*.yaml"
- name: "Puppet Common"
paths:
- "common.yaml"
manifests/site.pp¶
lookup('classes',
'merge' => {
'strategy' => 'deep',
'knockout_prefix' => '=--=' }).include
lookup('resources',
'merge' => {
'strategy' => 'deep',
'knockout_prefix' => '=--=',
'merge_hash_arrays' => true },
'default_value' => {}
).each | String $key, Hash $resource | {
$resource.each | String $name, Hash $res | {
Resource[$key] { $name: * => $res }
}
}
Directory structure¶
├── environment.conf
├── hiera
│ ├── common
│ │ ├── crons.yaml
│ │ ├── htop.yaml
│ │ ├── locale.yaml
│ │ ├── logrotate.yaml
│ │ ├── packages.yaml
│ │ ├── shell.yaml
│ │ ├── ssh.yaml
│ │ ├── time.yaml
│ │ └── updates.yaml
│ ├── nodes
│ │ ├── sd01ve.backup.node.yaml
│ │ ├── sql01vp.backup.node
│ │ │ └── bareos_ssl.yaml
│ │ ├── sql01vp.backup.node.yaml
│ │ ├── sql02vp.backup.node
│ │ │ └── bareos_ssl.yaml
│ │ ├── sql02vp.backup.node.yaml
│ │ ├── sql03vp.backup.node
│ │ │ └── bareos_ssl.yaml
│ │ └── sql03vp.backup.node.yaml
│ ├── os
│ │ ├── Debian
│ │ │ ├── logging.yaml
│ │ │ └── unattendedupgrades.yaml
│ │ ├── Debian.yaml
│ │ ├── RedHat
│ │ │ ├── 6.yaml
│ │ │ └── 7.yaml
│ │ └── RedHat.yaml
│ ├── role
│ │ └
│ │ aptly
│ │ └── aptly.yaml
│ │ bareos
│ │ ├── director
│ │ │ ├── apache.yaml
│ │ │ ├── bareos.yaml
│ │ │ ├── clients.yaml
│ │ │ ├── director.yaml
│ │ │ ├── easyrsa.yaml
│ │ │ ├── filesets.yaml
│ │ │ ├── icinga.yaml
│ │ │ ├── jobs.yaml
│ │ │ ├── messages.yaml
│ │ │ ├── pools.yaml
│ │ │ ├── profiles.yaml
│ │ │ ├── schedules.yaml
│ │ │ ├── ssl.yaml
│ │ │ ├── storages.yaml
│ │ │ └── webui.yaml
│ │ └── storage
│ │ ├── bareos.yaml
│ │ ├── ceph.yaml
│ │ ├── icinga.yaml
│ │ ├── messages.yaml
│ │ ├── ssl.yaml
│ │ └── zfs.yaml
│ │ galera
│ │ ├── bareos
│ │ │ ├── bareos.yaml
│ │ │ └── galera.yaml
│ │ ├── common
│ │ │ └── galera.yaml
[...]
│ └── vmware
│ └── common.yaml
├── hiera.yaml
├── manifests
│ └── site.pp
├── Puppetfile
└── site
└── profile
├── files
│ ├── bareos_webui_fslist.patch
│ ├── bash_profile
├── manifests
│ ├── apt.pp
│ ├── galera.pp
│ ├── mysql.pp
│ └── user.pp
└── templates
├── authorized_keys.epp
├── bashrc.custom.erb
[...]
Last update:
April 13, 2020