Skip to content

Instantly share code, notes, and snippets.

@dannykansas
Created November 4, 2014 22:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dannykansas/4078e0193b270f393e0d to your computer and use it in GitHub Desktop.
Save dannykansas/4078e0193b270f393e0d to your computer and use it in GitHub Desktop.
nodeless site manifest
# 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