From afa38f2a458e4c399353c231fe986de75021f7f2 Mon Sep 17 00:00:00 2001 From: Jesse Pretorius Date: Tue, 19 Apr 2016 14:51:29 +0100 Subject: [PATCH] OpenStack-CI Apt mirror for MariaDB This patch adds a mirror for MariaDB packages. The releases mirrored is selective, only covering the currently supported Ubuntu and MariaDB versions for OpenStack-Ansible. Having this mirror available aids deployment projects which consume these packages by ensuring that all apt packages needed are available in mirror local to the nodepool cloud provider. Change-Id: Ic549bbbd4f5dafc6555174f3ef3bd713b9a727d4 --- .../files/reprepro/mariadb-mirror-gpg-key.asc | 44 +++++++++++++++++++ .../files/reprepro/ubuntu-mariadb-updates | 15 +++++++ modules/openstack_project/manifests/mirror.pp | 11 +++++ .../manifests/mirror_update.pp | 32 ++++++++++++++ .../reprepro/distributions.ubuntu-mariadb.erb | 12 +++++ 5 files changed, 114 insertions(+) create mode 100644 modules/openstack_project/files/reprepro/mariadb-mirror-gpg-key.asc create mode 100644 modules/openstack_project/files/reprepro/ubuntu-mariadb-updates create mode 100644 modules/openstack_project/templates/reprepro/distributions.ubuntu-mariadb.erb diff --git a/modules/openstack_project/files/reprepro/mariadb-mirror-gpg-key.asc b/modules/openstack_project/files/reprepro/mariadb-mirror-gpg-key.asc new file mode 100644 index 0000000000..3f3eaecd31 --- /dev/null +++ b/modules/openstack_project/files/reprepro/mariadb-mirror-gpg-key.asc @@ -0,0 +1,44 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mQGiBEtohJARBACxvZpWSIMTp/e7BUzSW+WDL7Pl0JDg6v7ZJFGJk9qo+5JXIiis +497Ul0FmVJ6EoyVzfpqe5FyUvqtLCkM6UP5adyvXTHi1KMiYacu2q5yRhDpMKbpM +LkAg23Yyz1yK/d0TsAkerLJ6K1Bh8NIm44Op+qFrDxeYZDIR5Q8WaCdK8wCg/jc8 +p/4XaKq74ghUHEX+35qk63UD/0YEsgHrsRQZ42wKNeO8ZUJKqCVHXYJrCq7DhRhn +U5aYnuK3op0JusPN5fdIGkKwJy24dWRoRfNIIg0WvM8qUNrC2NvhomnZNudsI0Jb +XapRemrIwbvrZToD6ei1awdVqa5fT6XIxV4MSQEwn47qmUNSz/0TkUmB3VZ2EL/j +zfHUA/91ZfAdWCmRemTLWRrzIYYJKyEInZ0qwZVrkyMY8+T7b2/6RGR0f2oV1dOx +cjbd0+N3vKrUkjuzkcVu/oB8wq9UBfuSHwsxYqub4gvIh0/LW+CsWa955sQ/Hj9H +48j3nUHaXqM9uJyMMgMlCdo3rLpnYCJH8w2kFfLHIDksMs1YtLQ9TWFyaWFEQiBQ +YWNrYWdlIFNpZ25pbmcgS2V5IDxwYWNrYWdlLXNpZ25pbmcta2V5QG1hcmlhZGIu +b3JnPohiBBMRAgAiBQJREUepAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK +CRDLywgqG7lD28y4AJ0aByfYvJWqBm5PZjusZiG0vo9SRwCeM0izj/oryMu0fJi3 +kRbTlojzCd20Q0RhbmllbCBCYXJ0aG9sb21ldyAoTW9udHkgUHJvZ3JhbSBzaWdu +aW5nIGtleSkgPGRiYXJ0QGFza21vbnR5Lm9yZz6IYAQTEQIAIAUCS2iEkAIbAwYL +CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEMvLCCobuUPboDgAoNQVrK4i5LXTgwnW +ke2MxsXCoHDnAJ93j733YuNkV64aHEUwWxNCkkwUkbkEDQRLaIS4EBAApZ0wvxpQ +VlZ6OEFa9SBQ5eclRIOjXjKqkYGkvIx+jUmqCYfOgfPixOGYS5Q2KwHNz4XEOIOA +1kyClAoAAgOEGUxj8CxnbBk10IVo/JBONjdqKYPZ2YNdeIIrKXEmai4i5hK5AfZH +oyqsV5aqxGkGeVUju/coyRJY6La8iL+RBuxiRuUPWymGjtISAR6fSiN8f/kRly/y +9LmMO8JcOpeieqLUFPK6KuzhI4F0nFkHJpZPDNOHHl+GmAZ+SqZxmIrpkGymd36h +TKxW4nlnN6kqc1gMwdn1L/u/D+C/jhMbTTssqiMZeyP9uFmnMB3ls1NV8OxvbxcT +BG0M7g4AlffUQKpUrNhIBoC3R7UbYQ3CTZX1Qp/TBzbfRAgGhdWBQDQEd3/Ll9G4 +QaCs9I+4W68rkAr7e7IylHyfEi9oYQkXFIEeaAhiENmJBpcLpas/yNJoLayqzPsQ ++lRNg3omFntPtZolkMi6orRNixrgXV64m/01YNjmBFTqsp5wOq2j0cmTkbOWqdnl +mGPg2El1ufebJc6YWS1nFm6YRpN/B3QbtAnar1Cb+IHlr0haTOYhQp+XFN+k1brq +s+Sufa8/rz6N5tsm+W5GjHKvHr24FTa02u3H4lIqNlNBkzZZKhzAhxEWiJzwc/f2 +upG5vdplrM/YCU+XTotYPb5ZEXQe2mD/rXMAAwUP/0f1DOJIfnMrh1o/3RKqDq8k +7tlv2GEEv0VEnh8ty4dMb8Dos2M1Oc4Kv9QLB3DXcS4/L4JW5vF0QgSAzq1r5oBT +1zaMcqDS6OUlHrWUi8aDNt5EPQuEGdP2/iTDeAq4r8eCYrHRC7egldyRZrmWNfcZ +N6/G9K+JSjhWfSWWSBRIqb+UxcQNCp6i6tvVSxCfLK1R4P4kA/Z4Co2vywIfVfPh +Hd5nIWNl1yl9O3r04GCNTjzwsv/dhUGDFIVsghgehZuL0Bb7hDuyvZ2ShALumZ5t +7mU/SJ2hOk3klO+2bIJB0gquUkWn/4g1h2Tp9XVWrI1x6GUBxRYkwC4tWajzWeVC +5hcDVAdqYN0H0HVj/CEgrEWlCVv1hJ0JYAsjX8Cj1QuZB1i34fjEkgybMjo3oCU5 +GCSiNmvtTeUpexyY/7iHAdyoZHFT+fQS84VMYKFT4tTYH+5jTa62yfPhn63TYPor +rRyTqG8aJQLnczm0NN5R5mriYJQjr4Pj8PSSwWck/Gt8R5vb+C69+uXINB6OKqhG +6xU0bqnCIxt3OhVS7v0SfHjn0+il/JOc/ev9wm6G5FxmEWOoYwibmaDzHfc9N1HM +RzjTENI7fyJPNFj9IDkpwk4E3ylrkuVl2KEmYDJ9T9ny4UMnQ7Sb6w59UhxMIFtR +TPNpQJWCWXfhWUAo4WfCiEkEGBECAAkFAktohLgCGwwACgkQy8sIKhu5Q9vThgCg +7R7ImT+21phcbxVYBQZjiJVY/2YAnRKPeNKPNIviaUUV7kxMXt949GQX +=zBws +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/modules/openstack_project/files/reprepro/ubuntu-mariadb-updates b/modules/openstack_project/files/reprepro/ubuntu-mariadb-updates new file mode 100644 index 0000000000..1300dd2272 --- /dev/null +++ b/modules/openstack_project/files/reprepro/ubuntu-mariadb-updates @@ -0,0 +1,15 @@ +Name: ubuntu-mariadb-10.0 +Method: http://ftp.osuosl.org/pub/mariadb/repo/10.0/ubuntu +Components: main +UDebComponents: main +Architectures: amd64 +GetInRelease: no +VerifyRelease: 1BB943DB + +Name: ubuntu-mariadb-10.1 +Method: http://ftp.osuosl.org/pub/mariadb/repo/10.1/ubuntu +Components: main +UDebComponents: main +Architectures: amd64 +GetInRelease: no +VerifyRelease: 1BB943DB diff --git a/modules/openstack_project/manifests/mirror.pp b/modules/openstack_project/manifests/mirror.pp index 86fd4f5448..3d609a6a56 100644 --- a/modules/openstack_project/manifests/mirror.pp +++ b/modules/openstack_project/manifests/mirror.pp @@ -151,6 +151,17 @@ class openstack_project::mirror ( ] } + # Create the symlink to MariaDB. + file { "${www_root}/mariadb": + ensure => link, + target => "${mirror_root}/mariadb", + 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 b8147360e2..9c8636c4bd 100644 --- a/modules/openstack_project/manifests/mirror_update.pp +++ b/modules/openstack_project/manifests/mirror_update.pp @@ -314,4 +314,36 @@ class openstack_project::mirror_update ( key_type => 'public', key_source => 'puppet:///modules/openstack_project/reprepro/ubuntu-cloud-archive-gpg-key.asc', } + + ### MariaDB mirror ### + ::openstack_project::reprepro { 'ubuntu-mariadb-reprepro-mirror': + confdir => '/etc/reprepro/ubuntu-mariadb', + basedir => '/afs/.openstack.org/mirror/ubuntu-mariadb', + distributions => 'openstack_project/reprepro/distributions.ubuntu-mariadb.erb', + updates_file => 'puppet:///modules/openstack_project/reprepro/ubuntu-mariadb-updates', + releases => [ 'trusty', 'xenial' ], + } + + cron { 'reprepro ubuntu mariadb': + user => $user, + hour => '*/2', + minute => '0', + command => 'flock -n /var/run/reprepro/ubuntu-mariadb.lock reprepro-mirror-update /etc/reprepro/ubuntu-mariadb mirror.ubuntu-mariadb >>/var/log/reprepro/ubuntu-mariadb-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-mariadb-reprepro-mirror'], + ] + } + + gnupg_key { 'MariaDB Package Signing Key': + ensure => present, + # 1993 69E5 404B D5FC 7D2F E43B CBCB 082A 1BB9 43DB + key_id => 'CBCB082A1BB943DB', + user => 'root', + key_type => 'public', + key_source => 'puppet:///modules/openstack_project/reprepro/mariadb-mirror-gpg-key.asc', + } } diff --git a/modules/openstack_project/templates/reprepro/distributions.ubuntu-mariadb.erb b/modules/openstack_project/templates/reprepro/distributions.ubuntu-mariadb.erb new file mode 100644 index 0000000000..e2d32f21f7 --- /dev/null +++ b/modules/openstack_project/templates/reprepro/distributions.ubuntu-mariadb.erb @@ -0,0 +1,12 @@ +<% @releases.each do |release| -%> +Origin: MariaDB +Codename: <%= release %> +Description: OpenStack MariaDB <%= release.capitalize %> mirror +Architectures: amd64 +Components: main +UDebComponents: main +Contents: .gz +Update: ubuntu-mariadb +Log: <%= @logdir %>/ubuntu-mariadb-<%= release %>.log + +<% end -%>