diff --git a/roles/puppet-install/tasks/puppet-install/trusty.yaml b/roles/puppet-install/tasks/puppet-install/trusty.yaml index cf6f1c1d7f..3dc9aadddd 100644 --- a/roles/puppet-install/tasks/puppet-install/trusty.yaml +++ b/roles/puppet-install/tasks/puppet-install/trusty.yaml @@ -24,9 +24,23 @@ when: puppet_install_version == 4 become: true block: + + # The puppetlabs-release-pc1 deb install below unfortunatley isn't + # idempotent. If you install the puppet repo with this deb and + # then upgrade, you pull in a new version of + # puppetlabs-release-pc1 ... now ansible gets upset because we're + # trying to downgrade the package. This could be fixed by puppet + # symlinking the version at the top-level to the latest .deb + # ... or we just skip installing it if we seem to have the repo + # already. + - name: "Check for puppet 4 repo" + stat: + path: /etc/apt/sources.list.d/puppetlabs-pc1.list + register: puppet4_repo - name: Install puppetlabs repo apt: deb: http://apt.puppetlabs.com/puppetlabs-release-pc1-trusty.deb + when: not puppet4_repo.stat.exists - name: Install puppet packages apt: diff --git a/roles/puppet-install/tasks/puppet-install/xenial.yaml b/roles/puppet-install/tasks/puppet-install/xenial.yaml index ea64ebd7aa..d9258699b9 100644 --- a/roles/puppet-install/tasks/puppet-install/xenial.yaml +++ b/roles/puppet-install/tasks/puppet-install/xenial.yaml @@ -19,9 +19,23 @@ when: puppet_install_version == 4 become: true block: + + # The puppetlabs-release-pc1 deb install below unfortunatley isn't + # idempotent. If you install the puppet repo with this deb and + # then upgrade, you pull in a new version of + # puppetlabs-release-pc1 ... now ansible gets upset because we're + # trying to downgrade the package. This could be fixed by puppet + # symlinking the version at the top-level to the latest .deb + # ... or we just skip installing it if we seem to have the repo + # already. + - name: "Check for puppet 4 repo" + stat: + path: /etc/apt/sources.list.d/puppetlabs-pc1.list + register: puppet4_repo - name: Install puppetlabs repo apt: deb: https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb + when: not puppet4_repo.stat.exists - name: Install puppet packages apt: