
In debugging why I631e3e3592a9be5c7da642cf34eec6d9758bf161 was not rolling out to the zuul executors, I eventually found /etc/facter/facts.d/ansible.json was present on a number of hosts and effectively pinning the project-config checkout to an old reference. Given the dates around file creation and the pinned change number, it seems very likely something happened during the openstack->opendev transition where some hosts had ansible run with a specific project_config_ref set as a fact. Although the fact is now unset, nothing will ever clear the old ansible.json which keeps applying. We could remove all stale files by hand; but a) it's not clear where it ran (although likely only hosts starting with z*) and b) we leave a chance for it to happen again. We could clear this after every puppet run; but it seems like this role should leave the system largely in the state it ran puppet in. Thus this clears out the file before the puppet run if no facts are given. This should fix our immediate issue on all hosts. Change-Id: I96adf4fb77f06b18fe73b6f10d1b07b7fe44385f
puppet
Run puppet consistently from ansible.
Requirements
puppet needs to be installed on the target node, and if puppet agent is being used, the cert exchange needs to have been performed.
Role Variables
Either puppetmaster or manifest should be supplied. If you are using puppet agent, you want to supply puppetmaster. If you are using puppet apply, you want to supply manifest.
Dependencies
None
Example Playbook using a puppetmaster
The only required argument is puppetmaster:
- hosts: servers
roles:
- { role: puppet, puppetmaster: puppetmaster.openstack.org }
Example Playbook without a puppetmaster
The only required argument is manifest:
- hosts: servers
roles:
- { role: puppet, manifest: /opt/system-config/production/manifests/site.pp }
License
Apache
Author Information
ansible-puppet is maintained by the OpenStack Infra team. The best way to contact them is on #openstack-infra on freenode.
Description
Languages
Python
84.6%
Jinja
11%
Shell
4.4%