Remove puppet3 support - get puppet4 instead! (#8) Text summary of changes: This role no longer supports puppet3. Use the puppet3-eol tag for the last tested (in our production) commit that works with puppet3. So the role installs puppetlabs-release-pc1 by default and uses /etc/puppetlabs/ directories. It now generates now also types for the environment we deploy the puppetmaster with. hiera-eyaml is installed separately with "bin/puppetserver gem install". It sets up puppetdb. puppet.conf gets: <pre>reports = store,puppetdb </pre> and it deploys a puppetdb.conf ------- * Pin gems the same way as in master * set pc1 yum repo * Full path to puppetserver and use a proxy to install gems * Remove passenger stuff Puppet 4 puppetserver runs on Java and passenger is not needed. * Move hiera-eyaml to dedicated install for puppetserver * |failed > is failed * Add ansible_managed comments to templates So it's clear where these are configured from. * Generate types for the environment too This would prevent the autoload puppet/type error: <pre> puppet-agent[1302024]: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Virtual Query, Could not autoload puppet/type/nova_network: Could not autoload puppet/provider/nova_network/nova: no such file to load -- puppet/provider/openstack at /etc/puppetlabs/code/environments/CCCP_1278/modules/nova/manifests/deps.pp:55:6 on node </pre> * Document no puppet3. Only tested with puppet4 in real life * install hiera-eyaml before travis testing * Skip installing in check_mode * Order matters * puppetdb.conf, server_urls and storeconfigs = true Without storeconfigs we get: <pre> [puppetserver] Puppet You cannot collect exported resources without storeconfigs being set; the collection will be ignored at /etc/puppetlabs/code/environments/CCCP_1278/modules/haproxy/manifests/balancermember/collect_exported.pp:7:3 </pre> Without server_urls and the puppetdb.conf we get <pre> Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Failed to execute '/pdb/cmd/v1?checksum=AAAAAAAA&version=5&certname=myhost1.example.org&command=replace_facts&producer-timestamp=1571642778' on at least 1 of the following 'server_urls': https://puppetdb:8081 </pre> The reports change is because https://puppet.com/docs/puppetdb/5.2/connect_puppet_master.html said that is a good idea. * Without puppetdb-terminus installed we get error: <pre> Could not find terminus puppetdb for indirection facts Could not retrieve local facts: Could not find terminus puppetdb for indirection facts </pre> * Use inventory_hostname instead of fqdn * Run puppet agent on the puppetmaster itself too This should work at this point * Ordering for hiera-eyaml - Speed up - Always manage puppet.conf, if you are managing it with puppet then maybe you don't need this role? * Do a stat {{ puppet_etc_dir }} instead of command * Skip puppet agent runs on travis Where for this role we do ansible-playbook --connection=local * Use file module and variable to set code dir owner * Use yum module without a loop [DEPRECATION WARNING]: Invoking "yum" only once while using a loop via squash_actions is deprecated. Instead of using a loop to supply multiple items and specifying `name: "{{item}}"`, please use `name: '{{rpm_packages}}'` and remove the loop.