Created
November 4, 2014 22:24
-
-
Save dannykansas/4078e0193b270f393e0d to your computer and use it in GitHub Desktop.
nodeless site manifest
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# nodeless site.pp | |
# the role is based on hostname | |
case $::hostname { | |
/web/: { $role = 'web' } | |
/app/: { $role = 'app' } | |
/db/: { $role = 'db' } | |
/work/: { $role = 'worker' } | |
default: { $role = 'default' } | |
} | |
# env is based on hostname | |
case $::hostname { | |
/^q/: { $env = 'qa' } | |
/^s/: { $env = 'stage' } | |
/^p/: { $env = 'prod' } | |
} | |
hiera_include('classes') | |
# puppet provided types (always exist) | |
create_resources('user', hiera_hash('users')) | |
create_resources('group', hiera_hash('groups')) | |
create_resources('file', hiera_hash('files')) | |
create_resources('ssh_authorized_key', hiera_hash('ssh_authorized_keys')) | |
create_resources('package', hiera_hash('packages')) | |
create_resources('service', hiera_hash('services')) | |
# puppet provided types (sometimes exist) | |
$cron_default = hiera_hash('crons', {}) | |
create_resources('cron', $cron_default) | |
# third-party defined types | |
# these require a stubbed default lookup value to prevent | |
# catalog run errors on nodes that do not have data defined | |
# in their YAML backend lookup for one or more of these types | |
$consul_check_default = hiera_hash('consul::check', {}) | |
create_resources('consul::check', $consul_check_default) | |
$sudo_conf_default = hiera_hash('sudo::conf', {}) | |
create_resources('sudo::conf', $sudo_conf_default) | |
$beaver_input_file_default = hiera_hash('beaver::input::files', {}) | |
create_resources('beaver::input::file', $beaver_input_file_default) | |
$beaver_output_redis_default = hiera_hash('beaver::output::redis', {}) | |
create_resources('beaver::output::redis', $beaver_output_redis_default) | |
$logstash_configfile_default = hiera_hash('logstash::configfile', {}) | |
create_resources('logstash::configfile', $logstash_configfile_default) | |
$postgresql_server_tablespace_default = hiera_hash('postgresql::server::tablespaces', {}) | |
create_resources('postgresql::server::tablespace', $postgresql_server_tablespace_default) | |
# Enable this line for debugging, but you'll always get "updated" status in puppetdb API calls | |
# if you leave it on which is way annoying | |
# notify {"PUPPET ENV: $::environment, LOGICAL ENV: $env, ROLE DEFINITION: $role, HOSTNAME: $::hostname": } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment