diff --git a/modules/openstack_project/files/reprepro/ubuntu-cloud-archive-gpg-key.asc b/modules/openstack_project/files/reprepro/ubuntu-cloud-archive-gpg-key.asc new file mode 100644 index 0000000000..952a8cc328 --- /dev/null +++ b/modules/openstack_project/files/reprepro/ubuntu-cloud-archive-gpg-key.asc @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +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 +Oa4g9309p/+af/HU1smBrOfIeRoxb8jQoHu3 +=xg4S +-----END PGP PUBLIC KEY BLOCK----- diff --git a/modules/openstack_project/files/reprepro/ubuntu-cloud-archive-updates b/modules/openstack_project/files/reprepro/ubuntu-cloud-archive-updates new file mode 100644 index 0000000000..d657000859 --- /dev/null +++ b/modules/openstack_project/files/reprepro/ubuntu-cloud-archive-updates @@ -0,0 +1,7 @@ +Name: ubuntu-cloud-archive +Method: http://ubuntu-cloud.archive.canonical.com/ubuntu +Components: main +UDebComponents: main +Architectures: amd64 +GetInRelease: no +VerifyRelease: EC4926EA diff --git a/modules/openstack_project/manifests/mirror.pp b/modules/openstack_project/manifests/mirror.pp index 2faad6204b..334dc72c8f 100644 --- a/modules/openstack_project/manifests/mirror.pp +++ b/modules/openstack_project/manifests/mirror.pp @@ -106,6 +106,17 @@ class openstack_project::mirror ( ] } + # Create the symlink to Ubuntu Cloud Archive. + file { "${www_root}/ubuntu-cloud-archive": + ensure => link, + target => "${mirror_root}/ubuntu-cloud-archive", + owner => root, + group => root, + require => [ + File["${www_root}"], + ] + } + file { "${www_root}/robots.txt": ensure => present, owner => 'root', diff --git a/modules/openstack_project/manifests/mirror_update.pp b/modules/openstack_project/manifests/mirror_update.pp index 568e44037a..733532394b 100644 --- a/modules/openstack_project/manifests/mirror_update.pp +++ b/modules/openstack_project/manifests/mirror_update.pp @@ -253,4 +253,36 @@ class openstack_project::mirror_update ( File['/etc/epel.keytab'], ] } + + ### Ubuntu Cloud Archive Mirror ### + ::openstack_project::reprepro { 'ubuntu-cloud-archive-reprepro-mirror': + confdir => '/etc/reprepro/ubuntu-cloud-archive', + basedir => '/afs/.openstack.org/mirror/ubuntu-cloud-archive', + distributions => 'openstack_project/reprepro/distributions.ubuntu-cloud-archive.erb', + updates_file => 'puppet:///modules/openstack_project/reprepro/ubuntu-cloud-archive-updates', + releases => { 'trusty'=>['liberty', 'mitaka'], 'xenial'=>['newton'] }, + } + + cron { 'reprepro ubuntu-cloud-archive': + user => $user, + hour => '*/2', + minute => '0', + command => 'flock -n /var/run/reprepro/ubuntu-cloud-archive.lock reprepro-mirror-update /etc/reprepro/ubuntu-cloud-archive mirror.ubuntu-cloud >>/var/log/reprepro/ubuntu-cloud-archive-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['ubuntu-cloud-archive-reprepro-mirror'], + ] + } + + gnupg_key { 'Canonical Cloud Archive Signing Key': + ensure => present, + # 391A 9AA2 1471 9283 9E9D B031 5EDB 1B62 EC49 26EA + key_id => '5EDB1B62EC4926EA', + user => 'root', + key_type => 'public', + key_source => 'puppet:///modules/openstack_project/reprepro/ubuntu-cloud-archive-gpg-key.asc', + } } diff --git a/modules/openstack_project/templates/reprepro/distributions.ubuntu-cloud-archive.erb b/modules/openstack_project/templates/reprepro/distributions.ubuntu-cloud-archive.erb new file mode 100644 index 0000000000..a945a8b181 --- /dev/null +++ b/modules/openstack_project/templates/reprepro/distributions.ubuntu-cloud-archive.erb @@ -0,0 +1,14 @@ +<% releases.each do |distro_codename, openstack_codenames| -%> + <% openstack_codenames.each do |openstack_codename| -%> +Origin: Canonical +Codename: <%= distro_codename %>-updates/<%= openstack_codename %> +Description: OpenStack <%= openstack_codename.capitalize %> Archive for Ubuntu <%= distro_codename.capitalize %> +Architectures: amd64 +Components: main +UDebComponents: main +Contents: .gz +Update: <%= distro_codename %>-updates +Log: <%= @logdir %>/ubuntu-cloud-archive-<%= distro_codename %>.log + + <% end -%> +<% end -%>