Skip to content

2019-10-23

Latest
Compare
Choose a tag to compare
@martbhell martbhell released this 23 Oct 06:16
· 15 commits to master since this release
c64d2f1
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.