From 3eceba57499ce9c271718c0880fb2cbe3115561c Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Tue, 13 Oct 2020 12:15:10 +1100 Subject: [PATCH] reprepro: convert to Ansible This converts the reprepro configuration from our existing puppet to Ansible. This takes a more direct approach; the templating done by the puppet version started simple but over the years grew several different options to handle various use-cases. This means you not only had to understand the rather obscure reprepro configuration, but then *also* figure out how to translate that from our puppet template layers. Here the configuration files are kept directly (they were copied from the existing mirror-update.openstack.org) and deployed with some light wrapper tasks in reprepro/tasks/utils which avoids most duplication. Note the initial cron jobs are left disabled so we can run some manual testing before letting it go automatically. Change-Id: I96a9ff1efbf51c4164621028b7a3a1e2e1077d5c --- playbooks/roles/import-gpg-key/README.rst | 14 ++ .../roles/import-gpg-key/tasks/main.yaml | 30 +++ playbooks/roles/logrotate/tasks/main.yaml | 2 +- playbooks/roles/mirror-update/tasks/main.yaml | 5 +- playbooks/roles/reprepro/README.rst | 5 + .../files/apt-puppetlabs/config/distributions | 36 ++++ .../files/apt-puppetlabs/config/options | 6 + .../files/apt-puppetlabs/config/updates | 7 + .../debian-ceph-nautilus/config/distributions | 18 ++ .../files/debian-ceph-nautilus/config/options | 6 + .../files/debian-ceph-nautilus/config/updates | 7 + .../debian-ceph-octopus/config/distributions | 9 + .../files/debian-ceph-octopus/config/options | 6 + .../files/debian-ceph-octopus/config/updates | 7 + .../debian-docker-bionic/config/distributions | 10 + .../files/debian-docker-bionic/config/options | 6 + .../files/debian-docker-bionic/config/updates | 7 + .../debian-docker-focal/config/distributions | 10 + .../files/debian-docker-focal/config/options | 6 + .../files/debian-docker-focal/config/updates | 7 + .../debian-docker-xenial/config/distributions | 10 + .../files/debian-docker-xenial/config/options | 6 + .../files/debian-docker-xenial/config/updates | 7 + .../debian-security/config/distributions | 24 +++ .../files/debian-security/config/options | 6 + .../files/debian-security/config/updates | 6 + .../files/debian/config/distributions | 66 +++++++ .../reprepro/files/debian/config/options | 6 + .../reprepro/files/debian/config/updates | 7 + .../files/keys/debian-buster-security.asc | 174 ++++++++++++++++++ .../reprepro/files/keys/debian-buster.asc | 174 ++++++++++++++++++ .../roles/reprepro/files/keys/debian-ceph.asc | 29 +++ .../reprepro/files/keys/debian-docker.asc | 63 +++++++ .../reprepro/files/keys/debian-jessie.asc | 112 +++++++++++ .../files/keys/debian-stretch-security.asc | 160 ++++++++++++++++ .../reprepro/files/keys/debian-stretch.asc | 160 ++++++++++++++++ .../roles/reprepro/files/keys/puppetlabs.asc | 53 ++++++ .../files/keys/ubuntu-cloud-archive.asc | 52 ++++++ .../reprepro/files/reprepro-mirror-update.sh | 62 +++++++ .../ubuntu-cloud-archive/config/distributions | 81 ++++++++ .../files/ubuntu-cloud-archive/config/options | 6 + .../files/ubuntu-cloud-archive/config/updates | 7 + .../files/ubuntu-ports/config/distributions | 126 +++++++++++++ .../files/ubuntu-ports/config/options | 6 + .../files/ubuntu-ports/config/updates | 31 ++++ .../files/ubuntu/config/distributions | 126 +++++++++++++ .../reprepro/files/ubuntu/config/options | 6 + .../reprepro/files/ubuntu/config/updates | 31 ++++ .../roles/reprepro/tasks/debian-ceph.yaml | 29 +++ .../roles/reprepro/tasks/debian-security.yaml | 17 ++ playbooks/roles/reprepro/tasks/debian.yaml | 18 ++ playbooks/roles/reprepro/tasks/docker.yaml | 33 ++++ playbooks/roles/reprepro/tasks/main.yaml | 77 ++++++++ .../roles/reprepro/tasks/puppetlabs.yaml | 18 ++ .../reprepro/tasks/ubuntu-cloud-archive.yaml | 16 ++ .../roles/reprepro/tasks/ubuntu-ports.yaml | 13 ++ playbooks/roles/reprepro/tasks/ubuntu.yaml | 13 ++ .../reprepro/tasks/utils/copy-config.yaml | 19 ++ .../roles/reprepro/tasks/utils/cron.yaml | 9 + .../roles/reprepro/tasks/utils/keys.yaml | 16 ++ testinfra/test_mirror-update.py | 39 ++++ zuul.d/system-config-run.yaml | 1 + 62 files changed, 2117 insertions(+), 2 deletions(-) create mode 100644 playbooks/roles/import-gpg-key/README.rst create mode 100644 playbooks/roles/import-gpg-key/tasks/main.yaml create mode 100644 playbooks/roles/reprepro/README.rst create mode 100755 playbooks/roles/reprepro/files/apt-puppetlabs/config/distributions create mode 100755 playbooks/roles/reprepro/files/apt-puppetlabs/config/options create mode 100755 playbooks/roles/reprepro/files/apt-puppetlabs/config/updates create mode 100755 playbooks/roles/reprepro/files/debian-ceph-nautilus/config/distributions create mode 100755 playbooks/roles/reprepro/files/debian-ceph-nautilus/config/options create mode 100755 playbooks/roles/reprepro/files/debian-ceph-nautilus/config/updates create mode 100755 playbooks/roles/reprepro/files/debian-ceph-octopus/config/distributions create mode 100755 playbooks/roles/reprepro/files/debian-ceph-octopus/config/options create mode 100755 playbooks/roles/reprepro/files/debian-ceph-octopus/config/updates create mode 100755 playbooks/roles/reprepro/files/debian-docker-bionic/config/distributions create mode 100755 playbooks/roles/reprepro/files/debian-docker-bionic/config/options create mode 100755 playbooks/roles/reprepro/files/debian-docker-bionic/config/updates create mode 100755 playbooks/roles/reprepro/files/debian-docker-focal/config/distributions create mode 100755 playbooks/roles/reprepro/files/debian-docker-focal/config/options create mode 100755 playbooks/roles/reprepro/files/debian-docker-focal/config/updates create mode 100755 playbooks/roles/reprepro/files/debian-docker-xenial/config/distributions create mode 100755 playbooks/roles/reprepro/files/debian-docker-xenial/config/options create mode 100755 playbooks/roles/reprepro/files/debian-docker-xenial/config/updates create mode 100755 playbooks/roles/reprepro/files/debian-security/config/distributions create mode 100755 playbooks/roles/reprepro/files/debian-security/config/options create mode 100755 playbooks/roles/reprepro/files/debian-security/config/updates create mode 100755 playbooks/roles/reprepro/files/debian/config/distributions create mode 100755 playbooks/roles/reprepro/files/debian/config/options create mode 100755 playbooks/roles/reprepro/files/debian/config/updates create mode 100644 playbooks/roles/reprepro/files/keys/debian-buster-security.asc create mode 100644 playbooks/roles/reprepro/files/keys/debian-buster.asc create mode 100644 playbooks/roles/reprepro/files/keys/debian-ceph.asc create mode 100644 playbooks/roles/reprepro/files/keys/debian-docker.asc create mode 100644 playbooks/roles/reprepro/files/keys/debian-jessie.asc create mode 100644 playbooks/roles/reprepro/files/keys/debian-stretch-security.asc create mode 100644 playbooks/roles/reprepro/files/keys/debian-stretch.asc create mode 100644 playbooks/roles/reprepro/files/keys/puppetlabs.asc create mode 100644 playbooks/roles/reprepro/files/keys/ubuntu-cloud-archive.asc create mode 100644 playbooks/roles/reprepro/files/reprepro-mirror-update.sh create mode 100755 playbooks/roles/reprepro/files/ubuntu-cloud-archive/config/distributions create mode 100755 playbooks/roles/reprepro/files/ubuntu-cloud-archive/config/options create mode 100755 playbooks/roles/reprepro/files/ubuntu-cloud-archive/config/updates create mode 100755 playbooks/roles/reprepro/files/ubuntu-ports/config/distributions create mode 100755 playbooks/roles/reprepro/files/ubuntu-ports/config/options create mode 100755 playbooks/roles/reprepro/files/ubuntu-ports/config/updates create mode 100755 playbooks/roles/reprepro/files/ubuntu/config/distributions create mode 100755 playbooks/roles/reprepro/files/ubuntu/config/options create mode 100755 playbooks/roles/reprepro/files/ubuntu/config/updates create mode 100644 playbooks/roles/reprepro/tasks/debian-ceph.yaml create mode 100644 playbooks/roles/reprepro/tasks/debian-security.yaml create mode 100644 playbooks/roles/reprepro/tasks/debian.yaml create mode 100644 playbooks/roles/reprepro/tasks/docker.yaml create mode 100644 playbooks/roles/reprepro/tasks/main.yaml create mode 100644 playbooks/roles/reprepro/tasks/puppetlabs.yaml create mode 100644 playbooks/roles/reprepro/tasks/ubuntu-cloud-archive.yaml create mode 100644 playbooks/roles/reprepro/tasks/ubuntu-ports.yaml create mode 100644 playbooks/roles/reprepro/tasks/ubuntu.yaml create mode 100644 playbooks/roles/reprepro/tasks/utils/copy-config.yaml create mode 100644 playbooks/roles/reprepro/tasks/utils/cron.yaml create mode 100644 playbooks/roles/reprepro/tasks/utils/keys.yaml diff --git a/playbooks/roles/import-gpg-key/README.rst b/playbooks/roles/import-gpg-key/README.rst new file mode 100644 index 0000000000..a78dc2968b --- /dev/null +++ b/playbooks/roles/import-gpg-key/README.rst @@ -0,0 +1,14 @@ +import-gpg-key + +Import a gpg ASCII armored public key to the local keystore. + +**Role Variables** + +.. zuul:rolevar:: gpg_key_id + + The ID of the key to import. If it already exists, the file is not + imported. + +.. zuul:rolevar:: gpg_key_asc + + The path of the ASCII armored GPG key to import diff --git a/playbooks/roles/import-gpg-key/tasks/main.yaml b/playbooks/roles/import-gpg-key/tasks/main.yaml new file mode 100644 index 0000000000..d9d19ec551 --- /dev/null +++ b/playbooks/roles/import-gpg-key/tasks/main.yaml @@ -0,0 +1,30 @@ +- name: Check for input args + assert: + that: gpg_key_id is defined + +- name: Check for existing key + command: | + gpg --list-keys {{ gpg_key_id }} + ignore_errors: true + register: _key_exists + +- name: Install key + when: _key_exists.rc != 0 + block: + + - name: Look for gpg key + lineinfile: + path: '{{ gpg_key_asc }}' + regexp: '^-----BEGIN PGP PUBLIC KEY BLOCK-----$' + state: absent + check_mode: yes + changed_when: false + register: _out + + - name: Check keyfile + assert: + that: _out.found + + - name: Import key + command: | + gpg --import {{ gpg_key_asc }} diff --git a/playbooks/roles/logrotate/tasks/main.yaml b/playbooks/roles/logrotate/tasks/main.yaml index 81bc7fa0c3..fbdfa0800f 100644 --- a/playbooks/roles/logrotate/tasks/main.yaml +++ b/playbooks/roles/logrotate/tasks/main.yaml @@ -26,4 +26,4 @@ dest: '/etc/logrotate.d/{{ logrotate_config_file_name|default(logrotate_generated_config_file_name) }}' owner: root group: root - mode: 0644 \ No newline at end of file + mode: 0644 diff --git a/playbooks/roles/mirror-update/tasks/main.yaml b/playbooks/roles/mirror-update/tasks/main.yaml index 59e027c7bd..234051b706 100644 --- a/playbooks/roles/mirror-update/tasks/main.yaml +++ b/playbooks/roles/mirror-update/tasks/main.yaml @@ -33,6 +33,10 @@ - name: Setup rsync mirror scripts include_tasks: rsync.yaml +- name: Setup reprepro + include_role: + name: reprepro + - name: Setup periodic AFS release script include_role: name: afs-release @@ -41,4 +45,3 @@ include_role: name: afsmon -# TODO: reprepro and other mirror components diff --git a/playbooks/roles/reprepro/README.rst b/playbooks/roles/reprepro/README.rst new file mode 100644 index 0000000000..cb364c2e60 --- /dev/null +++ b/playbooks/roles/reprepro/README.rst @@ -0,0 +1,5 @@ +reprepo + +Install reprepo configuration for configuring various repositories. +Note that this role is only intended to be called from the +``mirror-update`` role. diff --git a/playbooks/roles/reprepro/files/apt-puppetlabs/config/distributions b/playbooks/roles/reprepro/files/apt-puppetlabs/config/distributions new file mode 100755 index 0000000000..6d59af56cf --- /dev/null +++ b/playbooks/roles/reprepro/files/apt-puppetlabs/config/distributions @@ -0,0 +1,36 @@ +Origin: Puppetlabs +Codename: xenial +Description: PuppetLabs Xenial mirror +Architectures: amd64 +Components: puppet5 +Contents: .gz +Update: puppetlabs-debs +Log: /var/log/reprepro/ubuntu-puppetlabs-xenial.log + +Origin: Puppetlabs +Codename: stretch +Description: PuppetLabs Stretch mirror +Architectures: amd64 +Components: puppet5 puppet6 +Contents: .gz +Update: puppetlabs-debs +Log: /var/log/reprepro/ubuntu-puppetlabs-stretch.log + +Origin: Puppetlabs +Codename: bionic +Description: PuppetLabs Bionic mirror +Architectures: amd64 +Components: puppet5 puppet6 +Contents: .gz +Update: puppetlabs-debs +Log: /var/log/reprepro/ubuntu-puppetlabs-bionic.log + +Origin: Puppetlabs +Codename: focal +Description: PuppetLabs Focal mirror +Architectures: amd64 +Components: puppet5 puppet6 +Contents: .gz +Update: puppetlabs-debs +Log: /var/log/reprepro/ubuntu-puppetlabs-focal.log + diff --git a/playbooks/roles/reprepro/files/apt-puppetlabs/config/options b/playbooks/roles/reprepro/files/apt-puppetlabs/config/options new file mode 100755 index 0000000000..cba512e031 --- /dev/null +++ b/playbooks/roles/reprepro/files/apt-puppetlabs/config/options @@ -0,0 +1,6 @@ +basedir /afs/.openstack.org/mirror/apt-puppetlabs +keepunreferencedfiles +noskipold +export changed +spacecheck none +verbose diff --git a/playbooks/roles/reprepro/files/apt-puppetlabs/config/updates b/playbooks/roles/reprepro/files/apt-puppetlabs/config/updates new file mode 100755 index 0000000000..b160d70910 --- /dev/null +++ b/playbooks/roles/reprepro/files/apt-puppetlabs/config/updates @@ -0,0 +1,7 @@ +Name: puppetlabs-debs +Method: https://apt.puppetlabs.com/ +Components: PC1 puppet5 puppet6 +UDebComponents: +Architectures: amd64 +GetInRelease: no +VerifyRelease: EF8D349F diff --git a/playbooks/roles/reprepro/files/debian-ceph-nautilus/config/distributions b/playbooks/roles/reprepro/files/debian-ceph-nautilus/config/distributions new file mode 100755 index 0000000000..3fb0b79781 --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-ceph-nautilus/config/distributions @@ -0,0 +1,18 @@ +Origin: Ceph Nautilus +Codename: stretch +Description: OpenStack Debian Ceph Nautilus Stretch mirror +Architectures: amd64 +Components: main +Contents: .gz +Update: debian-ceph-nautilus +Log: /var/log/reprepro/debian-ceph-nautilus-stretch.log + +Origin: Ceph Nautilus +Codename: bionic +Description: OpenStack Debian Ceph Nautilus Bionic mirror +Architectures: amd64 +Components: main +Contents: .gz +Update: debian-ceph-nautilus +Log: /var/log/reprepro/debian-ceph-nautilus-bionic.log + diff --git a/playbooks/roles/reprepro/files/debian-ceph-nautilus/config/options b/playbooks/roles/reprepro/files/debian-ceph-nautilus/config/options new file mode 100755 index 0000000000..2c70c621da --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-ceph-nautilus/config/options @@ -0,0 +1,6 @@ +basedir /afs/.openstack.org/mirror/ceph-deb-nautilus +keepunreferencedfiles +noskipold +export changed +spacecheck none +verbose diff --git a/playbooks/roles/reprepro/files/debian-ceph-nautilus/config/updates b/playbooks/roles/reprepro/files/debian-ceph-nautilus/config/updates new file mode 100755 index 0000000000..4a1d1045f1 --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-ceph-nautilus/config/updates @@ -0,0 +1,7 @@ +Name: debian-ceph-nautilus +Method: http://download.ceph.com/debian-nautilus/ +Components: main +UDebComponents: main +Architectures: amd64 +GetInRelease: no +VerifyRelease: 460f3994 diff --git a/playbooks/roles/reprepro/files/debian-ceph-octopus/config/distributions b/playbooks/roles/reprepro/files/debian-ceph-octopus/config/distributions new file mode 100755 index 0000000000..8251aed30b --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-ceph-octopus/config/distributions @@ -0,0 +1,9 @@ +Origin: Ceph Octopus +Codename: buster +Description: OpenStack Debian Ceph Octopus Buster mirror +Architectures: amd64 +Components: main +Contents: .gz +Update: debian-ceph-octopus +Log: /var/log/reprepro/debian-ceph-octopus-buster.log + diff --git a/playbooks/roles/reprepro/files/debian-ceph-octopus/config/options b/playbooks/roles/reprepro/files/debian-ceph-octopus/config/options new file mode 100755 index 0000000000..fbacac8157 --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-ceph-octopus/config/options @@ -0,0 +1,6 @@ +basedir /afs/.openstack.org/mirror/ceph-deb-octopus +keepunreferencedfiles +noskipold +export changed +spacecheck none +verbose diff --git a/playbooks/roles/reprepro/files/debian-ceph-octopus/config/updates b/playbooks/roles/reprepro/files/debian-ceph-octopus/config/updates new file mode 100755 index 0000000000..243c393129 --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-ceph-octopus/config/updates @@ -0,0 +1,7 @@ +Name: debian-ceph-octopus +Method: http://download.ceph.com/debian-octopus/ +Components: main +UDebComponents: main +Architectures: amd64 +GetInRelease: no +VerifyRelease: 460f3994 diff --git a/playbooks/roles/reprepro/files/debian-docker-bionic/config/distributions b/playbooks/roles/reprepro/files/debian-docker-bionic/config/distributions new file mode 100755 index 0000000000..1fbb4c1a86 --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-docker-bionic/config/distributions @@ -0,0 +1,10 @@ +Origin: Docker +Codename: bionic +Description: Docker Bionic mirror +Architectures: amd64 arm64 source +Components: stable +UDebComponents: +Contents: .gz +Update: debian-docker +Log: /var/log/reprepro/debian-docker-bionic.log + diff --git a/playbooks/roles/reprepro/files/debian-docker-bionic/config/options b/playbooks/roles/reprepro/files/debian-docker-bionic/config/options new file mode 100755 index 0000000000..bd85e41baa --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-docker-bionic/config/options @@ -0,0 +1,6 @@ +basedir /afs/.openstack.org/mirror/deb-docker/bionic +keepunreferencedfiles +noskipold +export changed +spacecheck none +verbose diff --git a/playbooks/roles/reprepro/files/debian-docker-bionic/config/updates b/playbooks/roles/reprepro/files/debian-docker-bionic/config/updates new file mode 100755 index 0000000000..f3a04db241 --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-docker-bionic/config/updates @@ -0,0 +1,7 @@ +Name: debian-docker +Method: https://download.docker.com/linux/ubuntu/ +Components: stable +UDebComponents: stable +Architectures: amd64 +GetInRelease: no +VerifyRelease: F273FCD8 diff --git a/playbooks/roles/reprepro/files/debian-docker-focal/config/distributions b/playbooks/roles/reprepro/files/debian-docker-focal/config/distributions new file mode 100755 index 0000000000..c0f114d1ef --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-docker-focal/config/distributions @@ -0,0 +1,10 @@ +Origin: Docker +Codename: focal +Description: Docker Focal mirror +Architectures: amd64 arm64 source +Components: stable +UDebComponents: +Contents: .gz +Update: debian-docker +Log: /var/log/reprepro/debian-docker-focal.log + diff --git a/playbooks/roles/reprepro/files/debian-docker-focal/config/options b/playbooks/roles/reprepro/files/debian-docker-focal/config/options new file mode 100755 index 0000000000..81b82d95bc --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-docker-focal/config/options @@ -0,0 +1,6 @@ +basedir /afs/.openstack.org/mirror/deb-docker/focal +keepunreferencedfiles +noskipold +export changed +spacecheck none +verbose diff --git a/playbooks/roles/reprepro/files/debian-docker-focal/config/updates b/playbooks/roles/reprepro/files/debian-docker-focal/config/updates new file mode 100755 index 0000000000..f3a04db241 --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-docker-focal/config/updates @@ -0,0 +1,7 @@ +Name: debian-docker +Method: https://download.docker.com/linux/ubuntu/ +Components: stable +UDebComponents: stable +Architectures: amd64 +GetInRelease: no +VerifyRelease: F273FCD8 diff --git a/playbooks/roles/reprepro/files/debian-docker-xenial/config/distributions b/playbooks/roles/reprepro/files/debian-docker-xenial/config/distributions new file mode 100755 index 0000000000..dbd049f3c9 --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-docker-xenial/config/distributions @@ -0,0 +1,10 @@ +Origin: Docker +Codename: xenial +Description: Docker Xenial mirror +Architectures: amd64 arm64 source +Components: stable +UDebComponents: +Contents: .gz +Update: debian-docker +Log: /var/log/reprepro/debian-docker-xenial.log + diff --git a/playbooks/roles/reprepro/files/debian-docker-xenial/config/options b/playbooks/roles/reprepro/files/debian-docker-xenial/config/options new file mode 100755 index 0000000000..6baad7e5f4 --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-docker-xenial/config/options @@ -0,0 +1,6 @@ +basedir /afs/.openstack.org/mirror/deb-docker/xenial +keepunreferencedfiles +noskipold +export changed +spacecheck none +verbose diff --git a/playbooks/roles/reprepro/files/debian-docker-xenial/config/updates b/playbooks/roles/reprepro/files/debian-docker-xenial/config/updates new file mode 100755 index 0000000000..f3a04db241 --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-docker-xenial/config/updates @@ -0,0 +1,7 @@ +Name: debian-docker +Method: https://download.docker.com/linux/ubuntu/ +Components: stable +UDebComponents: stable +Architectures: amd64 +GetInRelease: no +VerifyRelease: F273FCD8 diff --git a/playbooks/roles/reprepro/files/debian-security/config/distributions b/playbooks/roles/reprepro/files/debian-security/config/distributions new file mode 100755 index 0000000000..e59030eaad --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-security/config/distributions @@ -0,0 +1,24 @@ + +Origin: Debian Security +Codename: stretch +Suite: updates +Description: OpenStack Debian Security Stretch mirror +Architectures: amd64 arm64 source +Components: main +UDebComponents: main +Contents: .gz +Update: debian-security +Log: /var/log/reprepro/debian-security-stretch.log + + +Origin: Debian Security +Codename: buster +Suite: updates +Description: OpenStack Debian Security Buster mirror +Architectures: amd64 arm64 source +Components: main +UDebComponents: main +Contents: .gz +Update: debian-security +Log: /var/log/reprepro/debian-security-buster.log + diff --git a/playbooks/roles/reprepro/files/debian-security/config/options b/playbooks/roles/reprepro/files/debian-security/config/options new file mode 100755 index 0000000000..5457f1f45f --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-security/config/options @@ -0,0 +1,6 @@ +basedir /afs/.openstack.org/mirror/debian-security +keepunreferencedfiles +noskipold +export changed +spacecheck none +verbose diff --git a/playbooks/roles/reprepro/files/debian-security/config/updates b/playbooks/roles/reprepro/files/debian-security/config/updates new file mode 100755 index 0000000000..bffeb5bca9 --- /dev/null +++ b/playbooks/roles/reprepro/files/debian-security/config/updates @@ -0,0 +1,6 @@ +Name: debian-security +Method: http://security.debian.org/ +Suite: */updates +Architectures: amd64 arm64 +GetInRelease: no +VerifyRelease: EDA0D2388AE22BA9+|4DFAB270CAA96DFA+ diff --git a/playbooks/roles/reprepro/files/debian/config/distributions b/playbooks/roles/reprepro/files/debian/config/distributions new file mode 100755 index 0000000000..ff2ffd8f24 --- /dev/null +++ b/playbooks/roles/reprepro/files/debian/config/distributions @@ -0,0 +1,66 @@ +Origin: Debian +Codename: stretch +Description: OpenStack Debian Stretch mirror +Architectures: amd64 arm64 source +Components: main +UDebComponents: main +Contents: .gz +Update: debian +Log: /var/log/reprepro/debian-stretch.log + +Origin: Debian +Codename: stretch-updates +Description: OpenStack Debian Stretch Updates mirror +Architectures: amd64 arm64 source +Components: main +UDebComponents: main +Contents: .gz +Update: debian +Log: /var/log/reprepro/debian-stretch-updates.log + + +Origin: Debian Backports +Codename: stretch-backports +NotAutomatic: yes +ButAutomaticUpgrades: yes +Description: OpenStack Debian Stretch Backports mirror +Architectures: amd64 arm64 source +Components: main +UDebComponents: main +Contents: .gz +Update: debian +Log: /var/log/reprepro/debian-stretch-backports.log + +Origin: Debian +Codename: buster +Description: OpenStack Debian Buster mirror +Architectures: amd64 arm64 source +Components: main +UDebComponents: main +Contents: .gz +Update: debian +Log: /var/log/reprepro/debian-buster.log + +Origin: Debian +Codename: buster-updates +Description: OpenStack Debian Buster Updates mirror +Architectures: amd64 arm64 source +Components: main +UDebComponents: main +Contents: .gz +Update: debian +Log: /var/log/reprepro/debian-buster-updates.log + + +Origin: Debian Backports +Codename: buster-backports +NotAutomatic: yes +ButAutomaticUpgrades: yes +Description: OpenStack Debian Buster Backports mirror +Architectures: amd64 arm64 source +Components: main +UDebComponents: main +Contents: .gz +Update: debian +Log: /var/log/reprepro/debian-buster-backports.log + diff --git a/playbooks/roles/reprepro/files/debian/config/options b/playbooks/roles/reprepro/files/debian/config/options new file mode 100755 index 0000000000..cbe4c45d4a --- /dev/null +++ b/playbooks/roles/reprepro/files/debian/config/options @@ -0,0 +1,6 @@ +basedir /afs/.openstack.org/mirror/debian +keepunreferencedfiles +noskipold +export changed +spacecheck none +verbose diff --git a/playbooks/roles/reprepro/files/debian/config/updates b/playbooks/roles/reprepro/files/debian/config/updates new file mode 100755 index 0000000000..773bdbc43f --- /dev/null +++ b/playbooks/roles/reprepro/files/debian/config/updates @@ -0,0 +1,7 @@ +Name: debian +Method: http://ftp.us.debian.org/debian/ +Components: main +UDebComponents: main +Architectures: amd64 arm64 source +GetInRelease: no +VerifyRelease: 7638D0442B90D010+|E0B11894F66AEC98+|DC30D7C23CBBABEE+ diff --git a/playbooks/roles/reprepro/files/keys/debian-buster-security.asc b/playbooks/roles/reprepro/files/keys/debian-buster-security.asc new file mode 100644 index 0000000000..3ec9597b63 --- /dev/null +++ b/playbooks/roles/reprepro/files/keys/debian-buster-security.asc @@ -0,0 +1,174 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFyy58ABEADTs8KDtQRcm5ZbIxW3g5YvI5zvrmOReSufB7WX7S8mKvpVO+cO +CsEhlb3NCdp7j/Bc8O8ccvN8k+yX/pQaSKJZ/GmzhZ+Fgjz1PxnTLYoCC0NSKSEZ +8EF5afm5zCdvzTpbM2S/1LywYkFBUqFgFcqMMFLxh8GqOoKQgqbY5ZAmYzC0v+Q0 +T1pz/jQymdwwdUotvLs2knkJBz9u7xTaGdfKwS8vISnnyM/QrLpXS/WSSgVzYT46 +Hv637WcPze+WjVQ4LhXEbwVSRstHiObxIPaNzufbbotlAVzeKiVnNu6qgnKK4/Qp +ZUYWztGIosZPNo3SLFPbhe02nNGCyNwY0sGFsaBUH+UQ+h8tOHUXnuf4Qo97eMVP +1Da0UWPhWDZ4uPjBDpCZIdVa3rJ6ksSIkClA9ovZlI/fYdTI/A5lEpXZvzIxcCoc +SMjU8hzU5osYX0JjlgmAUP/H7CA0LWxXIZZuDALPgvyLjaw7C4U/ZRPXEP4VBjXz +abb93q5XY3WUBbIckf+lJvddZNv8wHFCmAN0RLeFZR/QojPvxvpgrlSVs1hetzis +XcGhQyZtGzgfadqBlJAKKmjkU7w4TjagLoSOYzlEwS/9PWFLij206txqkMqRWhxh +WF1LZRaRb6OQLYqXQUg6oWiTzZfxFAEgxx7cR6opawyx86xf2HMmVR+DNQARAQAB +iQJOBB8BCgA4FiEEXmGyFyZdqYB6I8X/TfqycMqpbfoFAlyy58UXDIABgOl28UpQ +ikjpyj/pvDciUsoc+WQCBwAACgkQTfqycMqpbfolgRAAs6J+0laTDAd7LwfHf7sd +wFemkDaTB6mkOloF/n8CgGA5zg1apJfeQXTmwJeFUARLiHIPyzaElzIi1NakyR3l +8Vs2yzJvVgWDX4wJuFhlyxZTv00gt1hQ+R99n3V7vnX3/6Dma/fjdmzHtAH4xWXa ++2zkOSRO/kUeyEzMCFq7a+/1hP2Q12zDkJnbCT7yBLrpC/aEKhX+P54vZ8NnQxol +w7g6jzogTkbjHQl9X5zJRx7pS6TeLQj60xaecN8jc+kyVQIBvDDDi/+DeEGCuyMZ +UyRa+fTSbYBZFZ/RtImT8nQGoDZOYHkVEwyr4ggEKasDfkbH46nDfmuwGzrsxaBA +d500sV7iSJgfmwf74Sd52XcqQjyxDcYFIUjcnhmfLTbk6mEOhrqnIfCAcV7w90DP +zAWaETxB3qGdwAJvHSsTxk2NgD+z1z1enbkszU3PQ3VPINOnhy6koTx6SCwQqwFn +2zH9P+FDZPyNWmZjgl9ynWLP7ojyH568HAc65W/szFmMgOt4SbytkF2U4pxqbzMa +zZZ04ZnR61RYT5dY/xlh1eDdU1a1f6h16oSwOhiviZwmeo07CkzjPZGOPBVPTHQC +IYiQJJijO4B7nOnPqqAhBVaaqQKAANWYmjDMW21s84qlmdP9gfao2Icox7SwED/g +IgpPEGzczJjNIWoOwU+Z1Q2JAk4EHwEKADgWIQReYbIXJl2pgHojxf9N+rJwyqlt ++gUCXLLnxRcMgAH7+r21QbXclVvZum7bFs9bsSUlxAIHAAAKCRBN+rJwyqlt+j/4 +D/wMClr929EM8S+bTMA70KmA+94EPbIazGIr72eZt16y4FMGi02mI+XipwQH+oIK +ueXov7Xl/I1sFM/33YZq0dUWa2EAjkQSY4g6ZJT//9Y0Pa2lbgV+oOvT/bgoBO33 +HNcikKQubbavOP6RuPDq82QfjFwx1JA7+7tG1XohW37ZtxIspRfIJ3CiP9Qd/hYn +mNs5QZsQ8ZGPmfvpXnb0pWRnSIcX51RMgBQkr2IPsGqiwUZYmbHLJ76+A6AMoANx +UICoqUaopMmPbeYv4V04XM+0396yffapt6iguxyq5FEsW41wsPFxa90S3kXPsbgw +dmZIeqFkYDB6oI0JPoU9GVQ3UEcV+W4arIXeUrTzvT312DmsYLZcGWoT6MbKmDWY +gwMH77ZmU++EcaCQllbEB1HK3R0RFz9QG6wYihd+Ilj5R/YEYLU47ZJ5DQXAS8Ww +1RXG0JxDnfpZnb25wgJkfCEamoSqp0l9SLLgqIz2zETJ6Whd3F2eEw3S1NSo29Ep +SbTK4bWvvWaO4u+RKrCBzDJ+rHVTtfSuHKBhvdy36R07jBMUnDz4sZQgNHamgSmh +I9AWZop/X7hmJnvNZe2x/uFOHvHzcIpBNB0CqyEuqpDNdf1k4A24CEGcF/fn+YG9 +enlPha/KzDrvNNrQ58NpX1hMKWM9659Ci0EtspLBEx6GP4kCTgQfAQoAOBYhBF5h +shcmXamAeiPF/036snDKqW36BQJcsufFFwyAAYyCPe0QqoBBY54SEFrOjW4MFKRw +AgcAAAoJEE36snDKqW36hmYP/1+Vajlfgrs80MMXv0ArgpGg+5YvigqIPu74LuwZ +GHG9afsWicddSYRngTbaFNiqc6rNZDXtnEruDovq7CISokyHvM0VNiSTY8vap//P +QW/8+ZWyW7ZeQDuqU3IRzvYAV3RAu2JaNuZWaK7czg2J8T4Gj1dFYAwf4OPx2x1a +3HsRTQCGioTrrcuhDbuhOvAH+mY1akYkWXGdse04rKlX9HNoSLKgwoFlqFuxAkW0 +Yy7qZzNOhxCbMZJojoR1baE0Keer98rF0OVuHtQbvON+Wm4hYkku91fgFJ1cgvYQ +VE+lknME60DH7keiULBmjQIwcCbG9PN1zOus+/EnA5W/qf8lPX/rh2tppmfAEUbN +yxjOzTdEpzrg+Urh7V5fAThTcNKSrYSjbY0CN27EBaaiVTWYtEY6+13eipQV6yyj +GiAAKwva/ehlFzFgpRfmEEZZzq7US32TnznxJ0lU+YgsoJo+3TO3B77hAet/TfU9 +uQa1nffUpIA8CWf2MIKY2lfXZ5AF2a1hPpWPCG3fB7YETzmgZRYnEfaS3zktSlHU +KZzUXcM1zBzUmGqUqgBbHP2wnD/H0y01ubff8C57S/sJ1OTJCt8/rnT6wtPPLNL3 +cPYFfpH1vIc9tYluaN78nWqmfqRnaD53mJM19gCxJcOAgUILkOopRl8ZStrqwipi +tj4hiQJOBB8BCgA4FiEEXmGyFyZdqYB6I8X/TfqycMqpbfoFAlyy58UXDIABMJkR +vqlm0GEwUwRXEbTl/xWw/YICBwAACgkQTfqycMqpbfqZsBAAmLNngcE9k8LstJSK +zMGL8uWyLRq+DeAHMQ4OZT8aa7paM9PLPeNjpktnxAtvoDy/ZoJaSVWhTAMDMD/z +PLou1VM43J1dBMe5mN63VR6QGVupfjuQ4h6kLd22FUXvnrxPenLTnEMfSs0ZJ657 +xLnDvDyZy10xoft9yJHxHFRcD23ynGqQqatcpFltPieoST64KzJmATo+mba6J9vY +4DRrfhz3WV2H5RsWueJACYsKdkW05ZaPUHujIZtdEFslGbpPgP89T3UBmEVlTXNm +59uh0WOdlvA8ESLQmqzV70U+se8WP64p9YXYW/WMh083sq2vrVuV7t4YKcLWBB61 +TcBDgVzKXTl2Kde08YEA7wmVG0EH1DwFRHkxirm+PyaGyuuoyke+LNZ1YqSdrPtN +rTC/2WXIiclVfeqFzc1bVcu9E2MFf9Sf2Gjpi7h4xvEiK76ap2+w23eFIRI1DI5p +Gr/ryApjGo49NrZOocKIwUtZBZ6iVZABtf8EPwgeMea250EwRwSmU36w0hba3I/3 +G/nZBKtG43wecYkp7hFBbOQ/I3ARPe3Ecmdr14baRIqVZwNL6F4VlYMaXz1jKAXX +ktkrmq2E+mUQvK/RR1cQg9FMkvMTFBz7S8kqc0RvRcZkuJ0oyMaUQsyZmEHdUmnV +VCtdg/qUkt4clowLnNSfgzYzPxSJAk4EHwEKADgWIQReYbIXJl2pgHojxf9N+rJw +yqlt+gUCXLLnxRcMgAHHT2rJ6TOzBn9S8z+kWexnFbBwXwIHAAAKCRBN+rJwyqlt ++nkcEACEHAUInrpSbYPzxPpzEWe2tMO5OQa2URTA50F9i5TxJ5brGwhK2OLV+7oO +IRx4xOTB8DYNjgik3E99xWctiBpSHOykSEEHcJelL3CN8hcmJKYlL5cdMlbZTs6+ +JV0jjp6QRgqBbHNUXNU9JBtH2PniKM54b9egcKbsljP5Y7OPrwStu08gd3lgnPHN +6zGUfHjcwt1ojbVnhl71v3pgYBKox02za2vPvfGK4bTjZLRVekfFgeWFBeHGW7YC +DeLjonBED96HSsBLvqWSCjrh/Ku31eV/nDrd/fhrQemmi9wshBPGVyWj9QzS8pIs +4ShgOBdca6+3dJAPdK6dj3fEHF+6Z9UZvgD3FAan0G26l1JW7ryQsD/iQZ5AufxJ +kR3IP8iiyaGBUhdggyrBqBEos1sSgtjpUewdUbKVwUPtPe5iwSFVyCpsK7M739dQ +MQaEvxkvohL2bvNhX2T+BmSvVIleZAYJzuzPWJVzw5tfpyLoGMHhN+nO5VXm9t9E +GSJbwDtmtkxAvoeJXghHr3VhNfZGlMiwoSDIJHTi6raD3Z6KMarXZb4ih+NG8FwX +PD2lnw8/c4bj/eqSOQgPxeY+hJG8QwiUtnbg3tSu4xTVK9mnVEHH6HAG5aQyRnfy +us6NTOOZZWaG7dJFsCCtjIWzJ0fGKESHz/b8V/Crl67tYJCZmbRQRGViaWFuIFNl +Y3VyaXR5IEFyY2hpdmUgQXV0b21hdGljIFNpZ25pbmcgS2V5ICgxMC9idXN0ZXIp +IDxmdHBtYXN0ZXJAZGViaWFuLm9yZz6JAlQEEwEKAD4WIQReYbIXJl2pgHojxf9N ++rJwyqlt+gUCXLLnwAIbAwUJDwmcAAULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAK +CRBN+rJwyqlt+umHEACJ9UGJy+3Ppc9W39C/CSO0/DUlTodwQ6jk1WW/ayp1hYX3 +nWJmtp0dhDdEYx0eGzczWN3oFhJh5/No7VM/WisTDuhhPHShOJ7u9g3OlJ270R5F +fuMskaF6rtaiecTtX6W2xYlYDMEmutNZwVuMw/vtZdUq/cLGJ1DBgPXQ6lbX3o9j +ufRIwrrDZ0OU1R1fFW6+uBEunixiNji3zcf5/Df9Kq5wO5wOL9OM/wRbHPbSDD9d +3VODSiDdWcSBQVepMx7/PvmdL/466t+a1kGBMOP5IB8qo0TnpsULpzj7JN9vH8t7 +FLKhjB1vF2nxfSK6DZjZbVO7avrK+GbLmK7GBVaAl5V44W8vapTTnKZh2CqegDWG +kAWx+L5+lzSL9Zolz+PJRgDnfASplWvLcogGQELqydbittmomDi/rUxcQ+eUQ1ki +7o3MMBSJ5nqENluHg9eq3MsvzhM7+0O2KrsufHo4tFEdEVXV+5mMRp+cV23TNkd+ +MwL5MOYek2/LPzRR13n/VPdGbe7wJQN1LlbOq6aniDzEvyytQHhbUsOWvyrGN4ph +wS+WIAovS0Tgs11uz8tiDO3dlkucyevRwbN44U7Xyopt7/T3X8tyJqphpasfQqsf +z4V1BDtnqPtwdeb82dDgG3JA8fNilUfk3T14z1EaTnA0o+te9G8ktPzsePB8d4kC +MwQQAQgAHRYhBOHPIN3/5LiegCZY8eCxGJT2auyYBQJcsuvHAAoJEOCxGJT2auyY +x5oQAI2VXupB1fXFqBcbclXyRoiT9Bp02VvoLslHCkj0xECIFa6/c7qqBsfDd5Wo +f/7ihyZHWt8IkYdzrOVnYUR7CsxJrEUzEeKBThWPL30dsVVyBVFW0SYei0T9RJvs +DchAHezCvOaDNha3aZ7r2Ks+gYVFMI5gKZmtu2f7bObkvs4hB7BwfuTaOxlbWrJi +SIlHnNL6HyRXMC5cfrRI4VRxZxL0Ud2tCe2ElcwM0wQQUv2WlCt4dM2Ti6oQaaT2 +e8d0Mt+xjj9K0oKcaVUs6BAKTq6Al/vO1sDlv/xuRzWyccPY6RZrXld6aP19yPHU +HTJSrT0h4VPyT+7LElJl1gShldFwArFQmmNIssEQK6FtkTZkKa7YTRr1HVIA3+tV +dJ3iiVxtsDzcysPBD52ZMtgNJALTVR5pzW9NIdJm05vhUyQSQxeb+fbBXbbLmUlI +lPbbH6Z3RaVi3dGU45FkU+AjNrISTNzRjmzcb0UeYX1TRxFW7PotTYPNPJH3P0Zi +7mPx5Iom2amgS3MMg7n/1uLbTCjfuG4JSi3kz+lWH2whYMhOa/9aosCozJA191hQ +1XMT7q2rdTgW6SUfwAY/4gs3EaqTNNGOjk+1QyXBpq7nP2EKl/7ndjJuEM7hQwdD +FkjsI9Zec0L/q/A/VN+pW1xcyKv9eAkd73EQGX9ubRs/N2CyiQIzBBABCAAdFiEE +btb1y1+m+y9GCuiO7aDSOIriK6kFAlyy7OkACgkQ7aDSOIriK6ltIg/9EP1Zwe0t +zXKKBvyUpIuTsYyZRz3w0rrv/2EuzMY8Y3UE/e0hYzPStvTPrXqR/Wuw1QRbIO10 +jXm4KW+mpbyDB7LK0gJvZFawynZp05z65NcvtvnPpxwYRtBsQ/aSQjj6oBLW7V21 +n2X5zFNERZcX0O0jwZQTn/g0hgMrd2lYIW6b54bvwmOnZgNrvpHRwPlLCPFPDjBs +pXAS5eY1pWcQ8NrfRCk0yfxLZR2AtlaDoEmhswaGVjan+ccBhADnMwuCP9iECPiC +kr3tMyVWGrVg+WoW968TrgHHIZC+7sxGHU8wF/9EPsRl+PSfUQLyUodV6+UfqRLL +QnjOJBE8i1vOZjBpavMWFq+4ylYng8Swti/L+EQm2wGOJ/yzEuhb088FsorA+xEA +Tgep7a7j6m+JouQCuzHJKgaSR0IYKe2T7F73RMrTZ3NDjosdaDeCOt0xq//4ubHq +q9LBr8bsYUD2EAol9eGMxIrSxU8QY2RETxd+WBntvb7ZgPvCBC5aW0A9HD8xrcy+ +KIg3PWU7nMdqVVfRBZryEmdwrNboW8S/ud3xyDyUQSFoM2+LCEOuTuwhcD0NvciH +oyL8V1cmJyMw+jCT8/Rit6XsAwXILbtSjU9Q8DkwNts5KsncSY6W3QR2t6fLiwzK +a7qLCS2yApQGGG34B+BQWCbW/91wisyP60iJAjMEEAEKAB0WIQSA6XbxSlCKSOnK +P+m8NyJSyhz5ZAUCXLLvBwAKCRC8NyJSyhz5ZAsaEACfrGCJKBZP7zbcE+EKI21V +0megq3bd96gqKVGY5OsvODHAgvzCevXhl2LCEiXJCQj3JCDynwn9VVoInloK7XZd +7iYb1BZ0Ce8PpPuXYji8vi1sHcTZZFm6H6uHoId+895er8a3GAOvWaaL953HA5fx +dV87GYTTneKRxJJpMNu/idFn1ZdxfUwoOZnBFuKbyNAcc8WWRr7XCZDq8X0PBa3b +Brp83h3sNKdSgofI3ZB9hND8cGxwJmxEKEYdVRf2NpEY/yywBXaXJ4QlWJRNdFAD +t9mG1fdop3TsvSyFCGzL9d3tRFbm5rtVT9XAzSPuit3YmL0pyc8LcWfH+kcunR3n +UvbtqKNGBBSz05wNkfu08l4TWPTQhui6/WgggYkrnjfOWibHncmpx//tGMvxaGBP +sw2AzbMjONTaGYUfJ3xcpclaNtXfwdclHQnH++t/p8eaUn4wbmOU8HktgPa71WLn +iKL3pSHOm5Fs4FxNiPO43PbB+UgUanUDwaGp7IGr5WDkp8D7yblrp/dmJKPko3R9 +THwuZEFUjJzznf429QbEsj/Q1NItO1ZIBCV3ApbE8KyU3ESfmmQes5IDt/uW/ucn +Gl/F5fUvDcoN42SDBDSWas6SLPdM7MTWwodhrO6lkjQuDKOeGt/GCj7DcAX8Om7f +fGw+R/Z9J6kuigyJviGYh4kCVQQQAQoAPxYhBPv6vbVBtdyVW9m6btsWz1uxJSXE +BQJcs4vlIRpodHRwOi8vZ3BnLmdhbm5lZmYuZGUvcG9saWN5LnR4dAAKCRDbFs9b +sSUlxHrtEACK50akHPDqKH/H54xcNoBkPB7IudBLptUR3fsfmq/CzrDXYUiFPIBd +C4alSyIA0aYQ5nfCac54VM+SYHMtzeSMle2EuTBqU+NVhKUOrVlvOjvFKqWx2Vnc +ntOFQs5gTtu97nTDjuycXvX4w8GU7SVnpil0OD0wLSEMw6x12A4H56Pvtzu0drCa +mJSrJ/35iGI9TypmAN5T9kjMqrTeifpxEcUFvdOOOL2mpIBg6F8XuAYvMMX8rGB2 +ZeQgZyAZOzNMCtLwOu2NQdFtFVR/sEdNZRf9t+46oCh7zOb2iPcLciUodfg6CEGr +t9C6bplDebKfOQu3VZAVa9cmDiThoDGr3Lx5toNHbDO8D6qZgbPcM0/cNDz6eOuS +JS9QSATXRC7Gvjf+Ltd5Y23sa6Bsbegix9BoJP1qkqI0XDi0sG4AEMD+TrWLYDVR +/NqbSub5RcLcjFJczC99/j+BV61wus/Fyyi1OTI9iOChwcvqLbpn7M5wxnuVgxO0 +i0rimePznFprwQ4gshG3ioQNkoApW91z8NyuyDLIk7lnLyTvkwJ05ntY2RQH8q3S +sgKUE9Qacowjm6ZKEOivG5bCZnoaPsMqYfDQXqa2M7Ytz6tlE+v9VfgIyz2Jurav +OchTNV2CR9Qi4A7PS2Z5O3gDY8NwiEpivCQTZ6aR1U1/estvRqVpC7kCDQRcsufA +ARAAzTM+elVKuyb29MUg+cjp1cAntXmkErLF5RmWmhR7BndQEoLWg+BcjnCevxub +ZLffbeasYue4HWdyG8KUXCCS7h5/R+2J7f15So7k21MC2Yn4rJpKmdHOTAlGmKo7 +D6B5vwvSF1EQxFH3PRfVRDoM9qtx4+C/3uq7MBXSXBAshGsBnQTZgdDt8odk5Awt +2xOrC+EY1X/nG06bNvwKYWrNDFsc/tTjRKl4Jd+Unq/JLcKwv5CPLiSSFlLWrcDS +RorcxklKyhfGcaCofcS00EDu+7qK7Z3958zqZWeTR5zW4mPcGpcg8Em6G1qX8lAk +rv5VltjJQajIjSGreMo9aHiOARjrJ/st3SY7YuSzJuHdxHbldk8fV7/npaSHn4DN +f00oOsgpe09XhmsqxVhYI8MxgzP5NScRNVEVKsWiL3WANos/EjTln3pISTmrGwq2 +FFhTd2/8fk9cp6wZAh/UyJdX3CfdWdgRFM509zcy6ej7dlYkYnIOw2eHwEwCi4PK +klBjHaFXCbkP33oidhZMr89mfMRBy4mpwDAhM5bv+UA2qBhIMQtwjtrbvW/QjeRY +EKDTrli6hupzGNleajcvEynOztL0miu0ytkDEjTYKEXF6UykoOl0AWHX8US3dIHo +7cUUk6JuN55nQpeDIJ9eQuBmQEqJtWVJeB350Np7EDIc3t0AEQEAAYkEcgQYAQoA +JhYhBF5hshcmXamAeiPF/036snDKqW36BQJcsufAAhsCBQkPCZwAAkAJEE36snDK +qW36wXQgBBkBCgAdFiEEUjfO7vIS89UcdKvgESaVoOVisyoFAlyy58AACgkQESaV +oOVisypOpw/+P3UwCLsfpLuAs0QpNUJflPNm0AskKDUW07M14SKMK6pu/EbkQE1k +Cr0hKeHRjd1dGeMl7Bkihpi+8RS6ZSt8L2rcQwah9INDQRytjW4r6t4lB78q3IrI +NrBHEA40hJNbk+pcOQ47kTMi+BttiwPos/cpbioSEDVO1Mndfg2vtpmjogqE1Hyw +ZcQWpZYKAgsUsengFLTEmECRRRS8KbICYyVCXUXe8gCfcgiDs7piKMGmc+vd62gT +aNVoC8jkFQwWLvZzZjKb7GFS/5I8FkbfGwtOGqZYYGVWf7sb7WEQfO57HKxUjnGI +bCvQYbgu2uM1zkTniy2fubXQ7wWrxZQPSXhY2b+DHtmLMxhSPi4mTo+BItVbj72L +sxW8HhxcjarYRopwWf82DbZbnrGdex7X5JK00mBoOEjzXcFM+ySIzDjfrTC+a6Bn +okMti++EDdIcFmu4fBO7S7zee6nnbT26TbMPsUvNZmU2jhJyFpyBr2PKh1aIblMp +SywAYsniDtQCPMbUD4k3VAShwGG2CAYKeVnyg2ov4pHtcOHU+Z1hUi3rhnwZ2VuI +mymeO3/7kq6MUK8Gu7EHUm4su3Rbt+zlY0rsPKXn3qPE+uVDKPWVz7tLI6/o3JrR +9p8HNl7bVgSw+J+oWfGexk7T/oJB64t75EnkiZWQtzYdvziE2F2cwcVy+g/+MBKd +h6SrGvzRaVoZEnvspphpuKgdme9FEXuqmUapwztwNK71+SkjX/lJNWNun03HQQ3T +8j7tLlwEu6AUPQE3cUhKeezt8vV4VA0IQ++itQvjm+ZKdeLAVSyW8L+kjBhvDUug +2VLGrAEaH1syAjJiQsvIReO9q3QujBzGtREXeJgSFLi7feQvP6+QW25zNnVlsamS +++A7Tyy3WI1ABQqK0BqcwxkoOQaK1s5F6BsRH1G90jkYwl6eU6cGJYIo9dqA0/+O +lG/uRxXBmFxuNlK/kN1uJc0uutrmXgcQBHlHdS7MQyNAHJ3UYSTISUOJgsqMQGei +Z39UpBgL50ZJU9KUXxJYWUzr/YEtRzzVlr/b4+AxsAMjZdAeimZ8Y2YHA7P+M4z7 +pKt8AjLI7Pe6xKOO2CoZkqFv18h8MO+yXeBR8iJQQXPVUZCyJl21eQ1DpvpTxR9A +4FCZrahNExsTZA9wv6lLCS7fVGrbgi7sIV1gG9R2reGnkHSn0c7g3RBdnoDSbebl +IfIU0uATOn4umDTEgg3jim+qco1JdnghlYdDMtzHB+xk+MzmH4d3xfi2W6XfZnbd +ISUL8jzK6Al6fegHQc4u3SSPj2n1KtSfN8V6QUxYc0AhAEg6SZsPQMqdQI1rEOmQ +8V9DmVt99tlJJvTXFUXZ7K2JMX0f8pDW7KtR0zI= +=xBv7 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/playbooks/roles/reprepro/files/keys/debian-buster.asc b/playbooks/roles/reprepro/files/keys/debian-buster.asc new file mode 100644 index 0000000000..7d2315f979 --- /dev/null +++ b/playbooks/roles/reprepro/files/keys/debian-buster.asc @@ -0,0 +1,174 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +qn8+ouVQUr65+xcIST13Ffg80zc= +=5Cty +-----END PGP PUBLIC KEY BLOCK----- diff --git a/playbooks/roles/reprepro/files/keys/debian-ceph.asc b/playbooks/roles/reprepro/files/keys/debian-ceph.asc new file mode 100644 index 0000000000..d2961c52e7 --- /dev/null +++ b/playbooks/roles/reprepro/files/keys/debian-ceph.asc @@ -0,0 +1,29 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mQINBFX4hgkBEADLqn6O+UFp+ZuwccNldwvh5PzEwKUPlXKPLjQfXlQRig1flpCH +E0HJ5wgGlCtYd3Ol9f9+qU24kDNzfbs5bud58BeE7zFaZ4s0JMOMuVm7p8JhsvkU +C/Lo/7NFh25e4kgJpjvnwua7c2YrA44ggRb1QT19ueOZLK5wCQ1mR+0GdrcHRCLr +7Sdw1d7aLxMT+5nvqfzsmbDullsWOD6RnMdcqhOxZZvpay8OeuK+yb8FVQ4sOIzB +FiNi5cNOFFHg+8dZQoDrK3BpwNxYdGHsYIwU9u6DWWqXybBnB9jd2pve9PlzQUbO +eHEa4Z+jPqxY829f4ldaql7ig8e6BaInTfs2wPnHJ+606g2UH86QUmrVAjVzlLCm +nqoGymoAPGA4ObHu9X3kO8viMBId9FzooVqR8a9En7ZE0Dm9O7puzXR7A1f5sHoz +JdYHnr32I+B8iOixhDUtxIY4GA8biGATNaPd8XR2Ca1hPuZRVuIiGG9HDqUEtXhV +fY5qjTjaThIVKtYgEkWMT+Wet3DPPiWT3ftNOE907e6EWEBCHgsEuuZnAbku1GgD +LBH4/a/yo9bNvGZKRaTUM/1TXhM5XgVKjd07B4cChgKypAVHvef3HKfCG2U/DkyA +LjteHt/V807MtSlQyYaXUTGtDCrQPSlMK5TjmqUnDwy6Qdq8dtWN3DtBWQARAQAB +tCpDZXBoLmNvbSAocmVsZWFzZSBrZXkpIDxzZWN1cml0eUBjZXBoLmNvbT6JAjgE +EwECACIFAlX4hgkCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOhKwsBG +DzmUXdIQAI8YPcZMBWdv489q8CzxlfRIRZ3Gv/G/8CH+EOExcmkVZ89mVHngCdAP +DOYCl8twWXC1lwJuLDBtkUOHXNuR5+Jcl5zFOUyldq1Hv8u03vjnGT7lLJkJoqpG +l9QD8nBqRvBU7EM+CU7kP8+09b+088pULil+8x46PwgXkvOQwfVKSOr740Q4J4nm +/nUOyTNtToYntmt2fAVWDTIuyPpAqA6jcqSOC7Xoz9cYxkVWnYMLBUySXmSS0uxl +3p+wK0lMG0my/gb+alke5PAQjcE5dtXYzCn+8Lj0uSfCk8Gy0ZOK2oiUjaCGYN6D +u72qDRFBnR3jaoFqi03bGBIMnglGuAPyBZiI7LJgzuT9xumjKTJW3kN4YJxMNYu1 +FzmIyFZpyvZ7930vB2UpCOiIaRdZiX4Z6ZN2frD3a/vBxBNqiNh/BO+Dex+PDfI4 +TqwF8zlcjt4XZ2teQ8nNMR/D8oiYTUW8hwR4laEmDy7ASxe0p5aijmUApWq5UTsF ++s/QbwugccU0iR5orksM5u9MZH4J/mFGKzOltfGXNLYI6D5Mtwrnyi0BsF5eY0u6 +vkdivtdqrq2DXY+ftuqLOQ7b+t1RctbcMHGPptlxFuN9ufP5TiTWSpfqDwmHCLsT +k2vFiMwcHdLpQ1IH8ORVRgPPsiBnBOJ/kIiXG2SxPUTjjEGOVgeA +=/Tod +-----END PGP PUBLIC KEY BLOCK----- diff --git a/playbooks/roles/reprepro/files/keys/debian-docker.asc b/playbooks/roles/reprepro/files/keys/debian-docker.asc new file mode 100644 index 0000000000..b516362ff2 --- /dev/null +++ b/playbooks/roles/reprepro/files/keys/debian-docker.asc @@ -0,0 +1,63 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +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 +YT90qFF93M3v01BbxP+EIY2/9tiIPbrd +=0YYh +-----END PGP PUBLIC KEY BLOCK----- diff --git a/playbooks/roles/reprepro/files/keys/debian-jessie.asc b/playbooks/roles/reprepro/files/keys/debian-jessie.asc new file mode 100644 index 0000000000..63c6af1981 --- /dev/null +++ b/playbooks/roles/reprepro/files/keys/debian-jessie.asc @@ -0,0 +1,112 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +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 +3rRmtFrJQ50iIcnJX8TjzB9e +=2Gih +-----END PGP PUBLIC KEY BLOCK----- diff --git a/playbooks/roles/reprepro/files/keys/debian-stretch-security.asc b/playbooks/roles/reprepro/files/keys/debian-stretch-security.asc new file mode 100644 index 0000000000..75b9ed7351 --- /dev/null +++ b/playbooks/roles/reprepro/files/keys/debian-stretch-security.asc @@ -0,0 +1,160 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +1WrnUemLTfrI4rIs17Ocs6opX9nEYPxfIoVGxqqNqvuj3Hej5JnglPctbJ1+ttNX +fuB6yqsa/wANPOC5qAVy+u4MY1ljyKSTCtc9kwc+K2Vjr/TrRDDq/o2xrmjC4JwP +3IpPr2dolGsBUQ3+HWAeLgBhqH3e4sYL5DLQgav+2cv39ez9jGp4FMZ0nztky+hi +Q2zHSyYzTzYzPc3775H7LMnH39b64DO0MfREJb+3Wbpj3hCBNn8zdSE807Tx5XeX +dQbIynXafFU5CR3AJbCuzs8RjdMXpeVlvad0OOStbjFDNpGmeKXgbD0A43ddCUj6 +GKAlWLX7J7pN2OKkQmewZWgRmNEXIAaorUR3GXClORMzeUTYopQLazHIkXWH1VWO +4Yqqew7K3LkCF2eMA8wj02fjyMtb+8I+xoj4wEHROSDQGGf90fcHgfoPWZgvjgvp +s2egpO19X8zMTVvZW8VoNDeiaeMSlLLEVBhMHYwiB3MpQYXfnkfLjhKmhvil86Jg +t0F/CTzTRdd8JjtwOsIC6TtYcZPsZGyDFBvx/K8lOcN2t5p5VZMnFQm0aCV2d6r0 +0nD5HexDPBMq3Lvy3vm5zmwJxM072SU69k5qEHCKERYyfyuNrhA4VxOm9UqnDcDI +lwpetFBEZWJpYW4gU2VjdXJpdHkgQXJjaGl2ZSBBdXRvbWF0aWMgU2lnbmluZyBL +ZXkgKDkvc3RyZXRjaCkgPGZ0cG1hc3RlckBkZWJpYW4ub3JnPokCVAQTAQoAPhYh +BG7W9ctfpvsvRgroju2g0jiK4iupBQJZIzDxAhsDBQkPCZwABQsJCAcDBRUKCQgL +BRYCAwEAAh4BAheAAAoJEO2g0jiK4iupWUEP/Az929HCCGTGBZajoEfN2FNqOWZ4 +pdKN6a4pPwnY2Cg7FeKqsXcYG2EM+Iuea2MK2IIlA2n5LYr6VIjLWfQJkkRoeZwo +QNTcb7fE5nBF/mUhqYovm4mSbDgmL/c5EVk7iqL7YDUE+fYWyIbGipIPKVHvST1b +18GHq1aEoURPHgxnqsWapuKlZFNhGQc6ncq5O0bdUthH5jdwu8/qX0iLbtK0MeLR +kQK4Vhw3WkMKRlsTTgo+lw0ubxj6UW8osaDGMY0HxFDPrlQLzdW9vcxLZVbNG0FV +woPymNwnrlC++GMbS8dtv8JlsaRJhsL7fbYX6IQUAC8hqBd7Rpcu9Mx+87z6iUFv +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 +DSw2gTJL6stXqSNn8g8afGzQ1TcVRhplqYa1RJtSPKvA4FPNNbS1QTIcR6olsA25 +iYb/7tNk4EVtQePvUSWfBW43ZLOggMB8CjqxUSSkOjYgecrU+pY8G8mAbzqOexRL +gG4sLSoL0l7NpSxzpnd7+ARJz+qz2hCr+JPJseld6D7MJpyz6Pnz43+JAhwEEwEK +AAYFAlkmhB0ACgkQdjjQRCuQ0BBFww//U2aBxtpskWSW436P4FxoAG0K6SKPiiJh +ZFx9Ox813fXrWKJ5qPV39hT+mW4VhYYepvUgtAw110H7zegHvjfjhYr2nAh4CDsD +uCOqwlOp6RpqPI1zUoUoOVeAaExMg7nPZeQAaqXNtQ1ohGgxBFdeBYRA4ICx2EGy +y+YR9mABZZbhfh+AeDljQlw5bqpxaWNkkiQsysB4SYDdcVeCZ3FMdiCF4MU5ceHG +kFuWQIRLgYL1zNek1WDXRcuyJM5a6YE0sOZ6guNKJ+ZVV/yzFRN4JjTFbWunYqgM +pisNM5i0xce/VMe/y2QqnyTenO6mYRv0qX2Yr0Dag/W+CxqAmvS+17eD3SZzSXqr +DMDZQkdvquyaYjVcqg/ixHRtRTrIJ1gGPjfl9YiOTlGgm3/HiVzgIZPcDdU2KZP1 +iHlUhPQnfEHT6sHTrRVdxLWgxQuWgX1CsuPYgSe4Ia9BBQL7xFwCkonx/80fsHeN +1ryMX6wBZt1dAJkc1pmS5ahzgwlIKWU9fnufsXn7tAQWG9BHtjrXsCBdlKIKNWKW +Un3Vl1oDVaWMMZ9Gu0bkpDv/wA4vHQehtrKe0XfSnU0W7QQifCHVRV5kuLSvVD3I +nMWxZV5uAQ239VCzMrKLyErSyKybMuDos0csSrBvOtCIVLoDvVS6u+uoyc+DsQOm +xawn3wpaElGJAhwEEwEKAAYFAlkmhTMACgkQnW2Pa8hXyQaYcg//d3vMCp9ZXgIk +t1GQTVYQIhDqpR3Bq4RGHswZS3HEVShv+yoFlbciUccp0Q3FFmxwP6HsGMlhVHK9 +UG42maJ5yfsewoMnumWFLR2LeimuCxYCzN6C486qPwK5aNpOzhs3nDWaqDq6J1wG +yQWnDGGilDrgSe/NptPTBCAERUwnmbuL4Y3WdrZM0Shgs8JDoMHFOpQiXVGJ5qoh +uQnK1O6fjlqsRAUIu+amfSl21s67OfBFlL20AoITBGLvKBrZvj6NhHHE34Wa6WCp +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 +TLeFkkM3UnAOQN0p +=1HGQ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/playbooks/roles/reprepro/files/keys/debian-stretch.asc b/playbooks/roles/reprepro/files/keys/debian-stretch.asc new file mode 100644 index 0000000000..41c2c56ed7 --- /dev/null +++ b/playbooks/roles/reprepro/files/keys/debian-stretch.asc @@ -0,0 +1,160 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +k5Bh +=3qWJ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/playbooks/roles/reprepro/files/keys/puppetlabs.asc b/playbooks/roles/reprepro/files/keys/puppetlabs.asc new file mode 100644 index 0000000000..fe3709ca67 --- /dev/null +++ b/playbooks/roles/reprepro/files/keys/puppetlabs.asc @@ -0,0 +1,53 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.12 (GNU/Linux) + +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 +3xJn +=mMjt +-----END PGP PUBLIC KEY BLOCK----- diff --git a/playbooks/roles/reprepro/files/keys/ubuntu-cloud-archive.asc b/playbooks/roles/reprepro/files/keys/ubuntu-cloud-archive.asc new file mode 100644 index 0000000000..952a8cc328 --- /dev/null +++ b/playbooks/roles/reprepro/files/keys/ubuntu-cloud-archive.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/playbooks/roles/reprepro/files/reprepro-mirror-update.sh b/playbooks/roles/reprepro/files/reprepro-mirror-update.sh new file mode 100644 index 0000000000..31c3ee58ac --- /dev/null +++ b/playbooks/roles/reprepro/files/reprepro-mirror-update.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# Copyright 2016 IBM Corp. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +set -e + +# For initial clones, and debugging, set this for more verbose output +# that doesn't time out. +if [[ ${NO_TIMEOUT:-0} -eq 1 ]]; then + echo "Running interactively" + TIMEOUT="" + set -x +else + TIMEOUT="timeout -k 2m 90m" +fi + +REPREPRO_CONFIG=$1 +MIRROR_VOLUME=$2 +BASE=$(cat ${REPREPRO_CONFIG}/options | grep base | cut -d' ' -f2) +CONFIG_KEY=$(basename $REPREPRO_CONFIG) + +UNREF_FILE=/var/run/reprepro/${MIRROR_VOLUME}.${CONFIG_KEY}.unreferenced-files +K5START="k5start -t -f /etc/reprepro.keytab service/reprepro -- ${TIMEOUT} " +REPREPRO="$K5START reprepro --confdir $REPREPRO_CONFIG" + +date --iso-8601=ns +echo "Obtaining reprepro tokens and running reprepro update" +$REPREPRO update + +if [ -f $UNREF_FILE ] ; then + date --iso-8601=ns + echo "Cleaning up files made unreferenced on the last run" + $REPREPRO deleteifunreferenced < $UNREF_FILE +fi + +date --iso-8601=ns +echo "Saving list of newly unreferenced files for next time" +k5start -t -f /etc/reprepro.keytab service/reprepro -- bash -c "reprepro --confdir $REPREPRO_CONFIG dumpunreferenced > $UNREF_FILE" + +date --iso-8601=ns +echo "Checking state of mirror" +$REPREPRO checkpool fast +$REPREPRO check + +date --iso-8601=ns | $K5START tee $BASE/timestamp.txt +echo "reprepro completed successfully, running vos release." +k5start -t -f /etc/afsadmin.keytab service/afsadmin -- vos release -v $MIRROR_VOLUME + +date --iso-8601=ns +echo "Done." diff --git a/playbooks/roles/reprepro/files/ubuntu-cloud-archive/config/distributions b/playbooks/roles/reprepro/files/ubuntu-cloud-archive/config/distributions new file mode 100755 index 0000000000..0fb3003552 --- /dev/null +++ b/playbooks/roles/reprepro/files/ubuntu-cloud-archive/config/distributions @@ -0,0 +1,81 @@ +Origin: Canonical +Codename: xenial-updates/newton +Description: OpenStack Newton Archive for Ubuntu Xenial +Architectures: amd64 arm64 +Components: main +Contents: .gz +Update: ubuntu-cloud-archive +Log: /var/log/reprepro/ubuntu-cloud-archive-xenial.log + +Origin: Canonical +Codename: xenial-updates/ocata +Description: OpenStack Ocata Archive for Ubuntu Xenial +Architectures: amd64 arm64 +Components: main +Contents: .gz +Update: ubuntu-cloud-archive +Log: /var/log/reprepro/ubuntu-cloud-archive-xenial.log + +Origin: Canonical +Codename: xenial-updates/pike +Description: OpenStack Pike Archive for Ubuntu Xenial +Architectures: amd64 arm64 +Components: main +Contents: .gz +Update: ubuntu-cloud-archive +Log: /var/log/reprepro/ubuntu-cloud-archive-xenial.log + +Origin: Canonical +Codename: xenial-updates/queens +Description: OpenStack Queens Archive for Ubuntu Xenial +Architectures: amd64 arm64 +Components: main +Contents: .gz +Update: ubuntu-cloud-archive +Log: /var/log/reprepro/ubuntu-cloud-archive-xenial.log + +Origin: Canonical +Codename: bionic-updates/rocky +Description: OpenStack Rocky Archive for Ubuntu Bionic +Architectures: amd64 arm64 +Components: main +Contents: .gz +Update: ubuntu-cloud-archive +Log: /var/log/reprepro/ubuntu-cloud-archive-bionic.log + +Origin: Canonical +Codename: bionic-updates/stein +Description: OpenStack Stein Archive for Ubuntu Bionic +Architectures: amd64 arm64 +Components: main +Contents: .gz +Update: ubuntu-cloud-archive +Log: /var/log/reprepro/ubuntu-cloud-archive-bionic.log + +Origin: Canonical +Codename: bionic-updates/train +Description: OpenStack Train Archive for Ubuntu Bionic +Architectures: amd64 arm64 +Components: main +Contents: .gz +Update: ubuntu-cloud-archive +Log: /var/log/reprepro/ubuntu-cloud-archive-bionic.log + +Origin: Canonical +Codename: bionic-updates/ussuri +Description: OpenStack Ussuri Archive for Ubuntu Bionic +Architectures: amd64 arm64 +Components: main +Contents: .gz +Update: ubuntu-cloud-archive +Log: /var/log/reprepro/ubuntu-cloud-archive-bionic.log + +Origin: Canonical +Codename: focal-updates/victoria +Description: OpenStack Victoria Archive for Ubuntu Focal +Architectures: amd64 arm64 +Components: main +Contents: .gz +Update: ubuntu-cloud-archive +Log: /var/log/reprepro/ubuntu-cloud-archive-focal.log + diff --git a/playbooks/roles/reprepro/files/ubuntu-cloud-archive/config/options b/playbooks/roles/reprepro/files/ubuntu-cloud-archive/config/options new file mode 100755 index 0000000000..c855672a61 --- /dev/null +++ b/playbooks/roles/reprepro/files/ubuntu-cloud-archive/config/options @@ -0,0 +1,6 @@ +basedir /afs/.openstack.org/mirror/ubuntu-cloud-archive +keepunreferencedfiles +noskipold +export changed +spacecheck none +verbose diff --git a/playbooks/roles/reprepro/files/ubuntu-cloud-archive/config/updates b/playbooks/roles/reprepro/files/ubuntu-cloud-archive/config/updates new file mode 100755 index 0000000000..d68d01de3e --- /dev/null +++ b/playbooks/roles/reprepro/files/ubuntu-cloud-archive/config/updates @@ -0,0 +1,7 @@ +Name: ubuntu-cloud-archive +Method: http://ubuntu-cloud.archive.canonical.com/ubuntu +Components: main +UDebComponents: main +Architectures: amd64 arm64 +GetInRelease: no +VerifyRelease: EC4926EA diff --git a/playbooks/roles/reprepro/files/ubuntu-ports/config/distributions b/playbooks/roles/reprepro/files/ubuntu-ports/config/distributions new file mode 100755 index 0000000000..0c65f35146 --- /dev/null +++ b/playbooks/roles/reprepro/files/ubuntu-ports/config/distributions @@ -0,0 +1,126 @@ +Origin: Ubuntu +Codename: bionic +Description: OpenStack Ubuntu Bionic mirror +Architectures: arm64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-ports +Log: /var/log/reprepro/ubuntu-ports-bionic.log + +Origin: Ubuntu +Codename: bionic-updates +Description: OpenStack Ubuntu Bionic Updates mirror +Architectures: arm64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-ports +Log: /var/log/reprepro/ubuntu-ports-bionic-updates.log + +Origin: Ubuntu +Codename: bionic-backports +Description: OpenStack Ubuntu Bionic Backports mirror +Architectures: arm64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-ports +NotAutomatic: yes +ButAutomaticUpgrades: yes +Log: /var/log/reprepro/ubuntu-ports-bionic-backports.log + +Origin: Ubuntu +Codename: bionic-security +Description: OpenStack Ubuntu Bionic Security mirror +Architectures: arm64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-ports-security +Log: /var/log/reprepro/ubuntu-ports-bionic-security.log + +Origin: Ubuntu +Codename: focal +Description: OpenStack Ubuntu Focal mirror +Architectures: arm64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-ports +Log: /var/log/reprepro/ubuntu-ports-focal.log + +Origin: Ubuntu +Codename: focal-updates +Description: OpenStack Ubuntu Focal Updates mirror +Architectures: arm64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-ports +Log: /var/log/reprepro/ubuntu-ports-focal-updates.log + +Origin: Ubuntu +Codename: focal-backports +Description: OpenStack Ubuntu Focal Backports mirror +Architectures: arm64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-ports +NotAutomatic: yes +ButAutomaticUpgrades: yes +Log: /var/log/reprepro/ubuntu-ports-focal-backports.log + +Origin: Ubuntu +Codename: focal-security +Description: OpenStack Ubuntu Focal Security mirror +Architectures: arm64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-ports-security +Log: /var/log/reprepro/ubuntu-ports-focal-security.log + +Origin: Ubuntu +Codename: xenial +Description: OpenStack Ubuntu Xenial mirror +Architectures: arm64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-ports +Log: /var/log/reprepro/ubuntu-ports-xenial.log + +Origin: Ubuntu +Codename: xenial-updates +Description: OpenStack Ubuntu Xenial Updates mirror +Architectures: arm64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-ports +Log: /var/log/reprepro/ubuntu-ports-xenial-updates.log + +Origin: Ubuntu +Codename: xenial-backports +Description: OpenStack Ubuntu Xenial Backports mirror +Architectures: arm64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-ports +NotAutomatic: yes +ButAutomaticUpgrades: yes +Log: /var/log/reprepro/ubuntu-ports-xenial-backports.log + +Origin: Ubuntu +Codename: xenial-security +Description: OpenStack Ubuntu Xenial Security mirror +Architectures: arm64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-ports-security +Log: /var/log/reprepro/ubuntu-ports-xenial-security.log + diff --git a/playbooks/roles/reprepro/files/ubuntu-ports/config/options b/playbooks/roles/reprepro/files/ubuntu-ports/config/options new file mode 100755 index 0000000000..98ee166388 --- /dev/null +++ b/playbooks/roles/reprepro/files/ubuntu-ports/config/options @@ -0,0 +1,6 @@ +basedir /afs/.openstack.org/mirror/ubuntu-ports +keepunreferencedfiles +noskipold +export changed +spacecheck none +verbose diff --git a/playbooks/roles/reprepro/files/ubuntu-ports/config/updates b/playbooks/roles/reprepro/files/ubuntu-ports/config/updates new file mode 100755 index 0000000000..dd61cb607f --- /dev/null +++ b/playbooks/roles/reprepro/files/ubuntu-ports/config/updates @@ -0,0 +1,31 @@ +Name: ubuntu +Method: http://us.archive.ubuntu.com/ubuntu +Components: main universe +UDebComponents: main +Architectures: amd64 source +GetInRelease: no +VerifyRelease: 437D05B5|C0B21F32 + +Name: ubuntu-security +Method: http://security.ubuntu.com/ubuntu +Components: main universe +UDebComponents: main +Architectures: amd64 source +GetInRelease: no +VerifyRelease: 437D05B5|C0B21F32 + +Name: ubuntu-ports +Method: http://ports.ubuntu.com/ubuntu-ports +Components: main universe +UDebComponents: main +Architectures: arm64 source +GetInRelease: no +VerifyRelease: 437D05B5|C0B21F32 + +Name: ubuntu-ports-security +Method: http://ports.ubuntu.com/ubuntu-ports +Components: main universe +UDebComponents: main +Architectures: arm64 source +GetInRelease: no +VerifyRelease: 437D05B5|C0B21F32 diff --git a/playbooks/roles/reprepro/files/ubuntu/config/distributions b/playbooks/roles/reprepro/files/ubuntu/config/distributions new file mode 100755 index 0000000000..cd6cfe29a5 --- /dev/null +++ b/playbooks/roles/reprepro/files/ubuntu/config/distributions @@ -0,0 +1,126 @@ +Origin: Ubuntu +Codename: bionic +Description: OpenStack Ubuntu Bionic mirror +Architectures: amd64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu +Log: /var/log/reprepro/ubuntu-bionic.log + +Origin: Ubuntu +Codename: bionic-updates +Description: OpenStack Ubuntu Bionic Updates mirror +Architectures: amd64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu +Log: /var/log/reprepro/ubuntu-bionic-updates.log + +Origin: Ubuntu +Codename: bionic-backports +Description: OpenStack Ubuntu Bionic Backports mirror +Architectures: amd64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu +NotAutomatic: yes +ButAutomaticUpgrades: yes +Log: /var/log/reprepro/ubuntu-bionic-backports.log + +Origin: Ubuntu +Codename: bionic-security +Description: OpenStack Ubuntu Bionic Security mirror +Architectures: amd64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-security +Log: /var/log/reprepro/ubuntu-bionic-security.log + +Origin: Ubuntu +Codename: focal +Description: OpenStack Ubuntu Focal mirror +Architectures: amd64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu +Log: /var/log/reprepro/ubuntu-focal.log + +Origin: Ubuntu +Codename: focal-updates +Description: OpenStack Ubuntu Focal Updates mirror +Architectures: amd64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu +Log: /var/log/reprepro/ubuntu-focal-updates.log + +Origin: Ubuntu +Codename: focal-backports +Description: OpenStack Ubuntu Focal Backports mirror +Architectures: amd64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu +NotAutomatic: yes +ButAutomaticUpgrades: yes +Log: /var/log/reprepro/ubuntu-focal-backports.log + +Origin: Ubuntu +Codename: focal-security +Description: OpenStack Ubuntu Focal Security mirror +Architectures: amd64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-security +Log: /var/log/reprepro/ubuntu-focal-security.log + +Origin: Ubuntu +Codename: xenial +Description: OpenStack Ubuntu Xenial mirror +Architectures: amd64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu +Log: /var/log/reprepro/ubuntu-xenial.log + +Origin: Ubuntu +Codename: xenial-updates +Description: OpenStack Ubuntu Xenial Updates mirror +Architectures: amd64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu +Log: /var/log/reprepro/ubuntu-xenial-updates.log + +Origin: Ubuntu +Codename: xenial-backports +Description: OpenStack Ubuntu Xenial Backports mirror +Architectures: amd64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu +NotAutomatic: yes +ButAutomaticUpgrades: yes +Log: /var/log/reprepro/ubuntu-xenial-backports.log + +Origin: Ubuntu +Codename: xenial-security +Description: OpenStack Ubuntu Xenial Security mirror +Architectures: amd64 source +Components: main universe +UDebComponents: main +Contents: .gz +Update: ubuntu-security +Log: /var/log/reprepro/ubuntu-xenial-security.log + diff --git a/playbooks/roles/reprepro/files/ubuntu/config/options b/playbooks/roles/reprepro/files/ubuntu/config/options new file mode 100755 index 0000000000..c7901d0237 --- /dev/null +++ b/playbooks/roles/reprepro/files/ubuntu/config/options @@ -0,0 +1,6 @@ +basedir /afs/.openstack.org/mirror/ubuntu +keepunreferencedfiles +noskipold +export changed +spacecheck none +verbose diff --git a/playbooks/roles/reprepro/files/ubuntu/config/updates b/playbooks/roles/reprepro/files/ubuntu/config/updates new file mode 100755 index 0000000000..dd61cb607f --- /dev/null +++ b/playbooks/roles/reprepro/files/ubuntu/config/updates @@ -0,0 +1,31 @@ +Name: ubuntu +Method: http://us.archive.ubuntu.com/ubuntu +Components: main universe +UDebComponents: main +Architectures: amd64 source +GetInRelease: no +VerifyRelease: 437D05B5|C0B21F32 + +Name: ubuntu-security +Method: http://security.ubuntu.com/ubuntu +Components: main universe +UDebComponents: main +Architectures: amd64 source +GetInRelease: no +VerifyRelease: 437D05B5|C0B21F32 + +Name: ubuntu-ports +Method: http://ports.ubuntu.com/ubuntu-ports +Components: main universe +UDebComponents: main +Architectures: arm64 source +GetInRelease: no +VerifyRelease: 437D05B5|C0B21F32 + +Name: ubuntu-ports-security +Method: http://ports.ubuntu.com/ubuntu-ports +Components: main universe +UDebComponents: main +Architectures: arm64 source +GetInRelease: no +VerifyRelease: 437D05B5|C0B21F32 diff --git a/playbooks/roles/reprepro/tasks/debian-ceph.yaml b/playbooks/roles/reprepro/tasks/debian-ceph.yaml new file mode 100644 index 0000000000..7da0dc871b --- /dev/null +++ b/playbooks/roles/reprepro/tasks/debian-ceph.yaml @@ -0,0 +1,29 @@ +- name: Deploy Debian Ceph key + include_tasks: utils/keys.yaml + vars: + _keys: + - { key_id: 'E84AC2C0460F3994', file: 'debian-ceph.asc' } + +- name: Copy Debian Ceph Octopus + include_tasks: utils/copy-config.yaml + vars: + _dir: 'debian-ceph-octopus' + +- name: Install Debian Ceph Octopus cron job + include_tasks: utils/cron.yaml + vars: + _string_name: 'Debian Ceph Octopus' + _dir: 'debian-ceph-octopus' + _volume: 'mirror.deb-octopus' + +- name: Copy Debian Ceph Nautilus + include_tasks: utils/copy-config.yaml + vars: + _dir: 'debian-ceph-nautilus' + +- name: Install Debian Ceph Nautilus cron job + include_tasks: utils/cron.yaml + vars: + _string_name: 'Debian Ceph Nautilus' + _dir: 'debian-ceph-nautilus' + _volume: 'mirror.deb-nautilus' diff --git a/playbooks/roles/reprepro/tasks/debian-security.yaml b/playbooks/roles/reprepro/tasks/debian-security.yaml new file mode 100644 index 0000000000..bdfa485c1c --- /dev/null +++ b/playbooks/roles/reprepro/tasks/debian-security.yaml @@ -0,0 +1,17 @@ +- name: Set Debian security config dir + set_fact: + _string_name: 'Debian Security' + _dir: 'debian-security' + _volume: 'mirror.debian-security' + _keys: + - { key_id: 'EDA0D2388AE22BA9', file: 'debian-stretch-security.asc' } + - { key_id: '4DFAB270CAA96DFA', file: 'debian-buster-security.asc' } + +- name: Deploy debian-security keys + include_tasks: utils/keys.yaml + +- name: Copy debian-security config + include_tasks: utils/copy-config.yaml + +- name: Install Debian security cron job + include_tasks: utils/cron.yaml diff --git a/playbooks/roles/reprepro/tasks/debian.yaml b/playbooks/roles/reprepro/tasks/debian.yaml new file mode 100644 index 0000000000..23e67d7301 --- /dev/null +++ b/playbooks/roles/reprepro/tasks/debian.yaml @@ -0,0 +1,18 @@ +- name: Set Debian config + set_fact: + _string_name: 'Debian' + _dir: 'debian' + _volume: 'mirror.debian' + _keys: + - { key_id: '7638D0442B90D010', file: 'debian-jessie.asc' } + - { key_id: 'E0B11894F66AEC98', file: 'debian-stretch.asc' } + - { key_id: 'DC30D7C23CBBABEE', file: 'debian-buster.asc' } + +- name: Deploy Debian keys + include_tasks: utils/keys.yaml + +- name: Copy Debian config + include_tasks: utils/copy-config.yaml + +- name: Install Debian cron job + include_tasks: utils/cron.yaml diff --git a/playbooks/roles/reprepro/tasks/docker.yaml b/playbooks/roles/reprepro/tasks/docker.yaml new file mode 100644 index 0000000000..632561e50f --- /dev/null +++ b/playbooks/roles/reprepro/tasks/docker.yaml @@ -0,0 +1,33 @@ +- name: Deploy Docker key + include_tasks: utils/keys.yaml + vars: + _keys: + - { key_id: '0EBFCD88', file: 'debian-docker.asc' } + +# Unfortunately docker upstream doesn't do the pool model correctly, +# and we have to mirror each distro separately to avoid file +# conflicts (they have the same .deb files) + +- name: Copy Debian Docker Xenial config + include_tasks: utils/copy-config.yaml + vars: + _dir: 'debian-docker-xenial' + +- name: Copy Debian Docker Bionic + include_tasks: utils/copy-config.yaml + vars: + _dir: 'debian-docker-bionic' + +- name: Copy Debian Docker Focal config + include_tasks: utils/copy-config.yaml + vars: + _dir: 'debian-docker-focal' + +# Beacuse they all live on the same volume, run in order +- name: Install update cron jobs + cron: + name: 'Debian Docker reprepro mirror sync' + job: 'flock -n /var/run/reprepro/debian-docker.lock bash -c "for DISTRO in xenial bionic focal; do reprepro-mirror-update /etc/reprepro/debian-docker-\$DISTRO mirror.deb-docker >>/var/log/reprepro/debian-docker-\$DISTRO-mirror.log; done" 2>&1' + state: present + hour: '*/2' + minute: '{{ 45 | random(seed=inventory_hostname) }}' diff --git a/playbooks/roles/reprepro/tasks/main.yaml b/playbooks/roles/reprepro/tasks/main.yaml new file mode 100644 index 0000000000..eda60e17b3 --- /dev/null +++ b/playbooks/roles/reprepro/tasks/main.yaml @@ -0,0 +1,77 @@ +- name: Install reprepro + package: + name: + - reprepro + state: present + +- name: Ensure config directory + file: + path: /etc/reprepro + state: directory + owner: root + group: root + mode: '0755' + +- name: Ensure key storage + file: + path: /etc/reprepro-gpg-keys + state: directory + owner: root + group: root + mode: '0755' + +- name: Ensure log directory + file: + path: /var/log/reprepro + state: directory + owner: root + group: root + mode: '0755' + +- name: Ensure run directory + file: + path: /var/run/reprepro + state: directory + owner: root + group: root + mode: '0755' + +- name: Rotate logfiles + include_role: + name: logrotate + vars: + logrotate_file_name: '/var/log/reprepro/*' + logrotate_config_file_name: 'reprepro' + logrotate_frequency: 'weekly' + +- name: Install mirror script + copy: + src: reprepro-mirror-update.sh + dest: /usr/local/bin/ + owner: root + group: root + mode: 0755 + +- name: Debian + include_tasks: debian.yaml + +- name: Debian Ceph + include_tasks: debian-ceph.yaml + +- name: Debian security + include_tasks: debian-security.yaml + +- name: Docker + include_tasks: docker.yaml + +- name: Puppetlabs + include_tasks: puppetlabs.yaml + +- name: Ubuntu + include_tasks: ubuntu.yaml + +- name: Ubuntu Cloud Archive + include_tasks: ubuntu-cloud-archive.yaml + +- name: Ubuntu Ports + include_tasks: ubuntu-ports.yaml diff --git a/playbooks/roles/reprepro/tasks/puppetlabs.yaml b/playbooks/roles/reprepro/tasks/puppetlabs.yaml new file mode 100644 index 0000000000..d9546b465a --- /dev/null +++ b/playbooks/roles/reprepro/tasks/puppetlabs.yaml @@ -0,0 +1,18 @@ +- name: Set Puppetlabs config + set_fact: + _string_name: 'APT Puppetlabs' + _dir: 'apt-puppetlabs' + _volume: 'mirror.puppetlabs' + _keys: + - { key_id: 'EF8D349F', file: 'puppetlabs.asc' } + +- name: Deploy puppetlabs keys + include_tasks: utils/keys.yaml + +- name: Copy puppetlabs config + include_tasks: utils/copy-config.yaml + +- name: Install puppetlabs cron job + include_tasks: utils/cron.yaml + + diff --git a/playbooks/roles/reprepro/tasks/ubuntu-cloud-archive.yaml b/playbooks/roles/reprepro/tasks/ubuntu-cloud-archive.yaml new file mode 100644 index 0000000000..150af0d90e --- /dev/null +++ b/playbooks/roles/reprepro/tasks/ubuntu-cloud-archive.yaml @@ -0,0 +1,16 @@ +- name: Set Ubuntu Cloud Archive config + set_fact: + _string_name: 'Ubuntu Cloud Archive' + _dir: 'ubuntu-cloud-archive' + _volume: 'mirror.ubuntu-cloud' + _keys: + - { key_id: '5EDB1B62EC4926EA', file: 'ubuntu-cloud-archive.asc' } + +- name: Deploy Ubuntu Cloud Archive keys + include_tasks: utils/keys.yaml + +- name: Copy Ubuntu Cloud Archive config + include_tasks: utils/copy-config.yaml + +- name: Install Ubuntu Cloud Archive cron job + include_tasks: utils/cron.yaml diff --git a/playbooks/roles/reprepro/tasks/ubuntu-ports.yaml b/playbooks/roles/reprepro/tasks/ubuntu-ports.yaml new file mode 100644 index 0000000000..549201643a --- /dev/null +++ b/playbooks/roles/reprepro/tasks/ubuntu-ports.yaml @@ -0,0 +1,13 @@ +- name: Set Ubuntu Ports config + set_fact: + _string_name: 'Ubuntu Ports' + _dir: 'ubuntu-ports' + _volume: 'mirror.ubuntu-ports' + +# NOTE(ianw) : keys are already installed? + +- name: Copy Ubuntu Ports config + include_tasks: utils/copy-config.yaml + +- name: Install Ubuntu Ports cron job + include_tasks: utils/cron.yaml diff --git a/playbooks/roles/reprepro/tasks/ubuntu.yaml b/playbooks/roles/reprepro/tasks/ubuntu.yaml new file mode 100644 index 0000000000..fc3594a2de --- /dev/null +++ b/playbooks/roles/reprepro/tasks/ubuntu.yaml @@ -0,0 +1,13 @@ +- name: Set Debian config + set_fact: + _string_name: 'Ubuntu' + _dir: 'ubuntu' + _volume: 'mirror.ubuntu' + +# NOTE(ianw) : keys are already installed? + +- name: Copy Ubuntu config + include_tasks: utils/copy-config.yaml + +- name: Install Ubuntu cron job + include_tasks: utils/cron.yaml diff --git a/playbooks/roles/reprepro/tasks/utils/copy-config.yaml b/playbooks/roles/reprepro/tasks/utils/copy-config.yaml new file mode 100644 index 0000000000..5df64fa6c8 --- /dev/null +++ b/playbooks/roles/reprepro/tasks/utils/copy-config.yaml @@ -0,0 +1,19 @@ +- name: Ensure config directory + file: + state: directory + path: '/etc/reprepro/{{ _dir }}/' + owner: root + group: root + mode: 0755 + +- name: Copy config files + copy: + src: '{{ _dir }}/config/{{ item }}' + dest: '/etc/reprepro/{{ _dir }}/{{ item }}' + owner: root + group: root + mode: 0644 + loop: + - distributions + - options + - updates diff --git a/playbooks/roles/reprepro/tasks/utils/cron.yaml b/playbooks/roles/reprepro/tasks/utils/cron.yaml new file mode 100644 index 0000000000..384b71dae6 --- /dev/null +++ b/playbooks/roles/reprepro/tasks/utils/cron.yaml @@ -0,0 +1,9 @@ +- name: Install update cron jobs + cron: + name: '{{ _string_name }} reprepro mirror sync' + # NOTE(ianw) 2020-10-19 : initially disabled so we can try + # manually before we enable everything. + state: absent + job: 'flock -n /var/run/reprepro/{{ _dir }}.lock reprepro-mirror-update {{ _dir }} {{ _volume }} >> /var/log/reprepro/{{ _dir }}.log 2>&1' + hour: '*/2' + minute: '{{ 45 | random(seed=inventory_hostname) }}' diff --git a/playbooks/roles/reprepro/tasks/utils/keys.yaml b/playbooks/roles/reprepro/tasks/utils/keys.yaml new file mode 100644 index 0000000000..f77f02ae90 --- /dev/null +++ b/playbooks/roles/reprepro/tasks/utils/keys.yaml @@ -0,0 +1,16 @@ +- name: Copy keys remotely + copy: + src: 'keys/{{ item.file }}' + dest: '/etc/reprepro-gpg-keys/{{ item.file }}' + owner: root + group: root + mode: 0644 + loop: '{{ _keys }}' + +- name: Import gpg keys + include_role: + name: import-gpg-key + vars: + gpg_key_id: '{{ item.key_id }}' + gpg_key_asc: '/etc/reprepro-gpg-keys/{{ item.file }}' + loop: '{{ _keys }}' diff --git a/testinfra/test_mirror-update.py b/testinfra/test_mirror-update.py index 5fa315a5cf..b7e07062af 100644 --- a/testinfra/test_mirror-update.py +++ b/testinfra/test_mirror-update.py @@ -70,3 +70,42 @@ def test_afsmon_installed(host): f = host.file('/etc/afsmon.cfg') assert f.exists + +# reprepro + +def test_repro_general_conf(host): + package = host.package('reprepro') + assert package.is_installed + + f = host.file('/etc/reprepro') + assert f.exists + assert f.is_directory + + f = host.file('/var/log/reprepro') + assert f.exists + assert f.is_directory + + f = host.file('/usr/local/bin/reprepro-mirror-update.sh') + assert f.exists + + f = host.file('/etc/logrotate.d/reprepro') + assert f.exists + +def test_reprepro_configs(host): + + dirs = ('apt-puppetlabs', + 'debian', + 'debian-security', + 'debian-ceph-octopus', + 'debian-ceph-nautilus', + 'debian-docker-xenial', + 'debian-docker-bionic', + 'debian-docker-focal', + 'ubuntu', + 'ubuntu-cloud-archive', + 'ubuntu-ports') + + for d in dirs: + for config in ('distributions', 'options', 'updates'): + f = host.file('/etc/reprepro/%s/%s' % (d, config)) + assert f.exists diff --git a/zuul.d/system-config-run.yaml b/zuul.d/system-config-run.yaml index d73d104de8..46ab4d5f69 100644 --- a/zuul.d/system-config-run.yaml +++ b/zuul.d/system-config-run.yaml @@ -464,6 +464,7 @@ - playbooks/install-ansible.yaml - roles/ - playbooks/roles/mirror-update/ + - playbooks/roles/reprepro/ - playbooks/service-mirror-update.yaml - testinfra/test_mirror-update.py