From eee900890d3f9efb12262c5709290f44f5d00745 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Wed, 3 Jan 2018 14:50:16 -0800 Subject: [PATCH] Add Puppetlabs mirror for Ubuntu Xenial Change-Id: Ibf5bd302b121abd64b3c74a6ec0cf8fecc455e6b --- .../files/reprepro/puppetlabs-debs-pc1 | 7 +++ .../reprepro/puppetlabs-mirror-gpg-key.asc | 53 +++++++++++++++++++ modules/openstack_project/manifests/mirror.pp | 11 ++++ .../manifests/mirror_update.pp | 31 +++++++++++ .../reprepro/distributions.apt-puppetlabs.erb | 11 ++++ 5 files changed, 113 insertions(+) create mode 100644 modules/openstack_project/files/reprepro/puppetlabs-debs-pc1 create mode 100644 modules/openstack_project/files/reprepro/puppetlabs-mirror-gpg-key.asc create mode 100644 modules/openstack_project/templates/reprepro/distributions.apt-puppetlabs.erb diff --git a/modules/openstack_project/files/reprepro/puppetlabs-debs-pc1 b/modules/openstack_project/files/reprepro/puppetlabs-debs-pc1 new file mode 100644 index 0000000000..33f7a533de --- /dev/null +++ b/modules/openstack_project/files/reprepro/puppetlabs-debs-pc1 @@ -0,0 +1,7 @@ +Name: puppetlabs-debs-pc1 +Method: https://apt.puppetlabs.com/ +Components: PC1 +UDebComponents: +Architectures: amd64 +GetInRelease: no +VerifyRelease: EF8D349F diff --git a/modules/openstack_project/files/reprepro/puppetlabs-mirror-gpg-key.asc b/modules/openstack_project/files/reprepro/puppetlabs-mirror-gpg-key.asc new file mode 100644 index 0000000000..fe3709ca67 --- /dev/null +++ b/modules/openstack_project/files/reprepro/puppetlabs-mirror-gpg-key.asc @@ -0,0 +1,53 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.12 (GNU/Linux) + +mQINBFe2Iz4BEADqbv/nWmR26bsivTDOLqrfBEvRu9kSfDMzYh9Bmik1A8Z036Eg +h5+TZD8Rrd5TErLQ6eZFmQXk9yKFoa9/C4aBjmsL/u0yeMmVb7/66i+x3eAYGLzV +FyunArjtefZyxq0B2mdRHE8kwl5XGl8015T5RGHCTEhpX14O9yigI7gtliRoZcl3 +hfXtedcvweOf9VrV+t5LF4PrZejom8VcB5CE2pdQ+23KZD48+Cx/sHSLHDtahOTQ +5HgwOLK7rBll8djFgIqP/UvhOqnZGIsg4MzTvWd/vwanocfY8BPwwodpX6rPUrD2 +aXPsaPeM3Q0juDnJT03c4i0jwCoYPg865sqBBrpOQyefxWD6UzGKYkZbaKeobrTB +xUKUlaz5agSK12j4N+cqVuZUBAWcokXLRrcftt55B8jz/Mwhx8kl6Qtrnzco9tBG +T5JN5vXMkETDjN/TqfB0D0OsLTYOp3jj4hpMpG377Q+6D71YuwfAsikfnpUtEBxe +NixXuKAIqrgG8trfODV+yYYWzfdM2vuuYiZW9pGAdm8ao+JalDZss3HL7oVYXSJp +MIjjhi78beuNflkdL76ACy81t2TvpxoPoUIG098kW3xd720oqQkyWJTgM+wV96bD +ycmRgNQpvqHYKWtZIyZCTzKzTTIdqg/sbE/D8cHGmoy0eHUDshcE0EtxsQARAQAB +tEhQdXBwZXQsIEluYy4gUmVsZWFzZSBLZXkgKFB1cHBldCwgSW5jLiBSZWxlYXNl +IEtleSkgPHJlbGVhc2VAcHVwcGV0LmNvbT6JAj4EEwECACgFAle2Iz4CGwMFCQlm +AYAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEH9DgoDvjTSfIN0P/jcCRzK8 +WIdhcNz5dkj7xRZb8Oft2yDfenQmzb1SwGGa96IwJFcjF4Nq7ymcDUqunS2DEDb2 +gCucsqmW1ubkaggsYbc9voz/SQwhsQpBjfWbuyOX9DWmW6av/aB1F85wP79gyfqT +uidTGxQE6EhDbLe7tuvxOHfM1bKsUtI+0n9TALLLHfXUEdtaXCwMlJuO1IIn1PWa +H7HzyEjw6OW/cy73oM9nuErBIio1O60slPLOW2XNhdWZJCRWkcXyuumRjoepz7WN +1JgsLOTcB7rcQaBP3pDN0O/Om5dlDQ6oYitoJs/F0gfEgwK68Uy8k8sUR+FLLJqM +o0CwOg6CeWU4ShAEd1xZxVYW6VOOKlz9x9dvjIVDn2SlTBDmLS99ySlQS57rjGPf +GwlRUnuZP4OeSuoFNNJNb9PO6XFSP66eNHFbEpIoBU7phBzwWpTXNsW+kAcY8Rno +8GzKR/2FRsxe5Nhfh8xy88U7BA0tqxWdqpk/ym+wDcgHBfSRt0dPFnbaHAiMRlgX +J/NPHBQtkoEdQTKA+ICxcNTUMvsPDQgZcU1/ViLMN+6kZaGNDVcPeMgDvqxu0e/T +b3uYiId38HYbHmD6rDrOQL/2VPPXbdGbxDGQUgX1DfdOuFXw1hSTilwI1KdXxUXD +sCsZbchgliqGcI1l2En62+6pI2x5XQqqiJ7+uQINBFe2Iz4BEADzbs8WhdBxBa0t +JBl4Vz0brDgU3YDqNkqnra/T17kVPI7s27VEhoHERmZJ17pKqb2pElpr9mN/FzuN +0N9wvUaumd9gxzsOCam7DPTmuSIvwysk391mjCJkboo01bhuVXe2FBkgOPFzAJEH +YFPxmu7tWOmCxNYiuuYtxLywU7lC/Zp6CZuq57xJqUWK47I5wDK9/iigkwSb3nDs +6A2LpkDmCr+rcOwLh5bxDSei7vYW+3TNOkPlC/h6fO9dPeC9AfyW6qPdVFQq1mpZ +Zcj1ALz7zFiciIB4NrD3PTjDlRnaJCWKPafVSsMbyIWmQaJ01ifuE0Owianrau8c +I264VXmI5pA9C8k9f2aVBuJiLsXaLEb03CzFWz9JpBLttA9ccaam3feU2EmnC3sb +9xD+Ibkxq5mKFN3lEzUAAIqbI1QYGZXPgLxMY7JSvoUxAqeHwpf/dO2LIUqYUpx0 +bF/GWRV9Uql8omNQbhwP0p2X/0Gfxj9Abg2IJM8LeOu3Xk0HACwwyVXgxcgk5FO+ ++KZpTN3iynjmbIzB9qcd9TeSzjVh/RDPSdn5K6Ao5ynubGYmaPwCk+DdVBRDlgWo +7yNIF4N9rFuSMAEJxA1nS5TYFgIN9oDF3/GHngVGfFCv4EG3yS08Hk1tDV0biKdK +ypcx402TAwVRWP5Pzmxc6/ZXU4ZhZQARAQABiQIlBBgBAgAPBQJXtiM+AhsMBQkJ +ZgGAAAoJEH9DgoDvjTSfbWYQALwafIQK9avVNIuhMsyYPa/yHf6rUOLqrYO1GCmj +vyG4cYmryzdxyfcXEmuE5QAIbEKSISrcO6Nvjt9PwLCjR/dUvco0f0YFTPv+kamn ++Bwp2Zt6d3MenXC6mLXPHR4OqFjzCpUT8kFwycvGPsuqZQ/CO0qzLDmAGTY+4ly3 +9aQEsQyFhV3P+6SWnaC2TldWpfG/2pCSaSa8dbYbRe3SUNKXwT8kw3WoQYNofF6n +or8oFVA+UIVlvHc5h7L3tfFylRy5CwtR5rBQtoBicRVxEQc7ARNmB1XWuPntMQl/ +N1Fcfc+KSILFblAR6eVv+6BhMvRqzxqe81AEAP+oKVVwJ7H+wTQun2UKAgZATDWP +/LQsYinmLADpraDPqxT2WJe8kjszMDQZCK+jhsVrhZdkiw9EHAM0z7BKz6JERmLu +TIEcickkTfzbJWXZgv40Bvl99yPMswnR1lQHD7TKxyHYrI7dzJQri4mbORg4lOnZ +3Tyodv21Ocf4as2No1p6esZW+M46zjZeO8zzExmmENI2+P7/VUt+LWyQFiqRM0iW +zGioYMWgVePywFGaTV51/0uF9ymHHC7BDIcLgUWHdg/1B67jR5YQfzPJUqLhnylt +1sjDRQIlf+3U+ddvre2YxX/rYUI2gBT32QzQrv016KsiZO+N+Iya3B4D68s6xxQS +3xJn +=mMjt +-----END PGP PUBLIC KEY BLOCK----- diff --git a/modules/openstack_project/manifests/mirror.pp b/modules/openstack_project/manifests/mirror.pp index 31d8c903fc..fcd494c30c 100644 --- a/modules/openstack_project/manifests/mirror.pp +++ b/modules/openstack_project/manifests/mirror.pp @@ -212,6 +212,17 @@ class openstack_project::mirror ( ] } + # Create the symlink to Ubuntu Puppetlabs. + file { "${www_root}/apt-puppetlabs": + ensure => link, + target => "${mirror_root}/apt-puppetlabs", + owner => root, + group => root, + require => [ + File["${www_root}"], + ] + } + # TODO(pabelanger): We can remove this after puppet runs a few times. file { "${www_root}/mariadb": ensure => absent, diff --git a/modules/openstack_project/manifests/mirror_update.pp b/modules/openstack_project/manifests/mirror_update.pp index fb33e9ac3e..96a245cbd6 100644 --- a/modules/openstack_project/manifests/mirror_update.pp +++ b/modules/openstack_project/manifests/mirror_update.pp @@ -266,6 +266,37 @@ class openstack_project::mirror_update ( key_source => 'puppet:///modules/openstack_project/reprepro/docker-mirror-gpg-key.asc', } + ## Puppetlabs APT mirror + ::openstack_project::reprepro { 'apt-puppetlabs-reprepro-mirror': + confdir => '/etc/reprepro/apt-puppetlabs', + basedir => '/afs/.openstack.org/mirror/apt-puppetlabs', + distributions => 'openstack_project/reprepro/distributions.apt-puppetlabs.erb', + updates_file => 'puppet:///modules/openstack_project/reprepro/puppetlabs-debs-pc1', + releases => ['xenial'], + } + + cron { 'reprepro ubuntu puppetlabs': + user => $user, + hour => '*/2', + minute => '0', + command => 'flock -n /var/run/reprepro/apt-puppetlabs.lock reprepro-mirror-update /etc/reprepro/apt-puppetlabs mirror.apt-puppetlabs >>/var/log/reprepro/apt-puppetlabs-mirror.log 2>&1', + environment => 'PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin', + require => [ + File['/usr/local/bin/reprepro-mirror-update'], + File['/etc/afsadmin.keytab'], + File['/etc/reprepro.keytab'], + ::Openstack_project::Reprepro['apt-puppetlabs-reprepro-mirror'], + ] + } + + gnupg_key { 'Puppetlabs Archive': + ensure => present, + key_id => 'EF8D349F', + user => 'root', + key_type => 'public', + key_source => 'puppet:///modules/openstack_project/reprepro/puppetlabs-mirror-gpg-key.asc', + } + ### CentOS mirror ### file { '/etc/centos.keytab': owner => 'root', diff --git a/modules/openstack_project/templates/reprepro/distributions.apt-puppetlabs.erb b/modules/openstack_project/templates/reprepro/distributions.apt-puppetlabs.erb new file mode 100644 index 0000000000..9a0b794ace --- /dev/null +++ b/modules/openstack_project/templates/reprepro/distributions.apt-puppetlabs.erb @@ -0,0 +1,11 @@ +<% @releases.each do |release| -%> +Origin: Puppetlabs +Codename: <%= release %> +Description: Puppetlabs <%= release.capitalize %> mirror +Architectures: amd64 +Components: PC1 +Contents: .gz +Update: ubuntu-puppetlabs +Log: <%= @logdir %>/ubuntu-puppetlabs-<%= release %>.log + +<% end -%>