node default { } node puppet-db { class { 'puppetdb': listen_addresses => '0.0.0.0', } }
node default { } node 'puppet-db.example.com' { class { 'puppetdb': listen_address => '0.0.0.0', manage_dbserver => false, } class { '::postgresql::globals': manage_package_repo => true, version => '9.4', } class { '::postgresql::server': datadir => '/media/data/postgresql/9.4/main', } postgresql::server::extension { 'pg_trgm': database => 'puppetdb', } }
aspetrenko@puppet-db:~$ sudo mkdir -p /media/data/postgresql/9.4
aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ git add manifests/nodes.pp aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ git commit manifests/nodes.pp -m "Add puppet-db config to nodes.pp" aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ git push -u origin production
aspetrenko@puppet-db:~$ sudo -i puppet agent --enable aspetrenko@puppet-db:~$ sudo -i puppet agent --test --waitforcert 60
aspetrenko@puppet-master01:/etc/puppetlabs/code/environments/production$ sudo -i puppet cert list "puppet-db.example.com" (SHA256) 9C:98:4C:D8:A9:B6:9D:27:5A:9D:A8:5F:15:E2:D8:99:6F:CF:0E:34:5B:B5:5C:BC:23:0D:6E:E0:84:BA:3F:05 aspetrenko@puppet-master01:/etc/puppetlabs/code/environments/production$ sudo -i puppet cert --sign puppet-db.example.com Signing Certificate Request for: "puppet-db.example.com" (SHA256) 9C:98:4C:D8:A9:B6:9D:27:5A:9D:A8:5F:15:E2:D8:99:6F:CF:0E:34:5B:B5:5C:BC:23:0D:6E:E0:84:BA:3F:05
node 'puppet-master01.example.com' { class { 'puppetdb::master::config': puppetdb_server => 'puppet-db.example.com', } } node 'puppet-master02.example.com' { class { 'puppetdb::master::config': puppetdb_server => 'puppet-db.example.com', } }
node 'puppet-master01.example.com' { class {'::ntp': servers => [ 'time.example.com', '0.pool.ntp.org' ], } class { 'puppetdb::master::config': puppetdb_server => 'puppet-db.example.com', } } node 'puppet-master02.example.com' { class {'::ntp': servers => [ 'time.example.com', '0.pool.ntp.org' ], } class { 'puppetdb::master::config': puppetdb_server => 'puppet-db.example.com', } }
aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ git commit manifests/nodes.pp -m "Setup puppet-db server for puppet-master01 and puppet-master02"
aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ git push -u origin production
sudo -i puppet agent --test
cat /etc/puppetlabs/puppet/puppetdb.conf [main] server_urls = https://puppet-db.example.com:8081/ soft_write_failure = false
cat /etc/ntp.conf | grep server # Set up servers for ntpd with next options: # server - IP address or DNS name of upstream NTP server # prefer - select preferrable server server time.example.com iburst server 0.pool.ntp.org iburst
sudo ln -s /etc/puppetlabs/puppet/hiera.yaml /etc/hiera.yaml
aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ cat manifests/site.pp hiera_include('classes')
:hierarchy: - "nodes/%{::trusted.certname}" - common
aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ cat hieradata/common.yaml --- classes: - ntp ntp::servers: - time.example.com # - 1.pool.ntp.org # - 2.pool.ntp.org # - 3.pool.ntp.org
aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ mkdir hieradata/nodes
aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ cat hieradata/nodes/puppet-master01.example.com.yaml --- classes: - puppetdb::master::config puppetdb::master::config::puppetdb_server: 'puppet-db.example.com'
aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ cat hieradata/nodes/puppet-db.example.com.yaml --- classes: - puppetdb puppetdb::listen_address: '0.0.0.0'
postgresql::server::extension { 'pg_trgm': database => 'puppetdb', }
mod 'tedivm-hieratic' # Hieratic allows Puppet Resources to be created directly in Hiera.
include hieratic
--- classes: - puppetdb - postgresql::globals - postgresql::server puppetdb::listen_address: '0.0.0.0' puppetdb::manage_dbserver: false postgresql::globals::manage_package_repo: true postgresql::globals::version: '9.4' postgresql::server::datadir: '/media/data/postgresql/9.4/main' postgresql_server_extension: pg_trgm: name: 'pg_trgm' database: 'puppetdb'
aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ git add --all aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ git commit -a -m "Hiera config" aspetrenko@aspetrenko-pc:~/sgl-git/puppet-environments$ git push -u origin production
aspetrenko@puppet-db:~$ sudo -i puppet agent --test
Source: https://habr.com/ru/post/316486/
All Articles