Set a fallback VERSION_ID in the mirror-info role

Prepopulate the VERSION_ID from ansible's
ansible_distribution_major_version since in some cases it may not be
assigned in /etc/os-release (for example in debian/testing prior to
release). Under most circumstances, this will be overridden when we
later source the /etc/os-release file.

This also reverts commit 7ac676aaca.

Change-Id: Ieb3e068ae715ae2de058dff0d5d526527466f91e
This commit is contained in:
Jeremy Stanley 2021-05-13 13:02:07 +00:00
parent 7ac676aaca
commit b6c00dbd94
5 changed files with 7 additions and 106 deletions

View File

@ -37,7 +37,7 @@
roles:
- validate-host
- prepare-workspace-git
- test-mirror-info
- mirror-info
- role: configure-mirrors
set_apt_mirrors_trusted: True
mirror_use_ssl: True

View File

@ -19,6 +19,12 @@ export NODEPOOL_MIRROR_HOST={{ mirror_fqdn }}
# This script generates a descriptor slug to use with AFS, composed of the
# operating system, its version, and the processor architecture.
# Prepopulate the VERSION_ID from ansible's ansible_distribution_major_version
# since in some cases it may not be assigned in /etc/os-release (for example in
# debian/testing prior to release). Under most circumstances, this will be
# overridden when we source /etc/os-release below
VERSION_ID={{ ansible_distribution_major_version }}
# Pull in the os release.
# ID is 'fedora', 'centos', 'ubuntu'
# VERSION_ID is '23', '7', '14.04'

View File

@ -1,7 +0,0 @@
An ansible test role to configure the ``/etc/ci/mirror_info.sh`` script
**Role Variables**
.. zuul:rolevar:: mirror_fqdn
The base host for mirror servers.

View File

@ -1,17 +0,0 @@
- name: Create /etc/ci
become: yes
file:
path: /etc/ci
state: directory
owner: root
group: root
mode: 0755
- name: Install ci_mirror script
become: yes
template:
dest: '/etc/ci/mirror_info.sh'
owner: root
group: root
mode: 0644
src: mirror_info.sh.j2

View File

@ -1,81 +0,0 @@
#!/bin/bash -xe
# {{ ansible_managed }}
# 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.
export NODEPOOL_MIRROR_HOST={{ mirror_fqdn }}
# This script generates a descriptor slug to use with AFS, composed of the
# operating system, its version, and the processor architecture.
# Prepopulate the VERSION_ID from ansible's ansible_distribution_major_version
# since in some cases it may not be assigned in /etc/os-release (for example in
# debian/testing prior to release). Under most circumstances, this will be
# overridden when we source /etc/os-release below
VERSION_ID={{ ansible_distribution_major_version }}
# Pull in the os release.
# ID is 'fedora', 'centos', 'ubuntu'
# VERSION_ID is '23', '7', '14.04'
# Nothing else is useful and/or reliable across distros
. /etc/os-release
################################################################################
# Generate an OS Release Name
OS_TYPE=$ID
################################################################################
# Generate a version string.
OS_VERSION=$VERSION_ID
if [ "$OS_TYPE" != "ubuntu" ]; then
OS_VERSION=$(echo $OS_VERSION | cut -d'.' -f1)
fi
################################################################################
# Get the processor architecture.
# x86_64, i386, armv7l, armv6l
OS_ARCH=$(uname -m)
################################################################################
# Build the name
AFS_SLUG="$OS_TYPE-$OS_VERSION-$OS_ARCH"
AFS_SLUG=$(echo "$AFS_SLUG" | tr '[:upper:]' '[:lower:]')
export AFS_SLUG
export NODEPOOL_DEBIAN_MIRROR=${NODEPOOL_DEBIAN_MIRROR:-http://$NODEPOOL_MIRROR_HOST/debian}
export NODEPOOL_PYPI_MIRROR=${NODEPOOL_PYPI_MIRROR:-http://$NODEPOOL_MIRROR_HOST/pypi/simple}
export NODEPOOL_WHEEL_MIRROR=${NODEPOOL_WHEEL_MIRROR:-http://$NODEPOOL_MIRROR_HOST/wheel/$AFS_SLUG}
export NODEPOOL_UBUNTU_MIRROR=${NODEPOOL_UBUNTU_MIRROR:-http://$NODEPOOL_MIRROR_HOST/ubuntu}
export NODEPOOL_UBUNTU_PORTS_MIRROR=${NODEPOOL_UBUNTU_PORTS_MIRROR:-http://$NODEPOOL_MIRROR_HOST/ubuntu-ports}
export NODEPOOL_CENTOS_MIRROR=${NODEPOOL_CENTOS_MIRROR:-http://$NODEPOOL_MIRROR_HOST/centos}
export NODEPOOL_DEBIAN_OPENSTACK_MIRROR=${NODEPOOL_DEBIAN_OPENSTACK_MIRROR:-http://$NODEPOOL_MIRROR_HOST/debian-openstack}
export NODEPOOL_EPEL_MIRROR=${NODEPOOL_EPEL_MIRROR:-http://$NODEPOOL_MIRROR_HOST/epel}
export NODEPOOL_FEDORA_MIRROR=${NODEPOOL_FEDORA_MIRROR:-http://$NODEPOOL_MIRROR_HOST/fedora}
export NODEPOOL_OPENSUSE_MIRROR=${NODEPOOL_OPENSUSE_MIRROR:-http://$NODEPOOL_MIRROR_HOST/opensuse}
export NODEPOOL_CEPH_MIRROR=${NODEPOOL_CEPH_MIRROR:-http://$NODEPOOL_MIRROR_HOST/ceph-deb-hammer}
export NODEPOOL_UCA_MIRROR=${NODEPOOL_UCA_MIRROR:-http://$NODEPOOL_MIRROR_HOST/ubuntu-cloud-archive}
# Reverse proxy servers
export NODEPOOL_BUILDLOGS_CENTOS_PROXY=${NODEPOOL_BUILDLOGS_CENTOS_PROXY:-http://$NODEPOOL_MIRROR_HOST:8080/buildlogs.centos}
export NODEPOOL_CBS_CENTOS_PROXY=${NODEPOOL_CBS_CENTOS_PROXY:-http://$NODEPOOL_MIRROR_HOST:8080/cbs.centos}
export NODEPOOL_DOCKER_REGISTRY_PROXY=${NODEPOOL_DOCKER_REGISTRY_PROXY:-http://$NODEPOOL_MIRROR_HOST:8081/registry-1.docker/}
export NODEPOOL_DOCKER_REGISTRY_V2_PROXY=${NODEPOOL_DOCKER_REGISTRY_V2_PROXY:-http://$NODEPOOL_MIRROR_HOST:8082/}
export NODEPOOL_RDO_PROXY=${NODEPOOL_RDO_PROXY:-http://$NODEPOOL_MIRROR_HOST:8080/rdo}
export NODEPOOL_RUGYGEMS_PROXY=${NODEPOOL_RUBYGEMS_PROXY:-http://$NODEPOOL_MIRROR_HOST:8080/rubygems/}
export NODEPOOL_NPM_REGISTRY_PROXY=${NODEPOOL_NPM_REGISTRY_PROXY:-http://$NODEPOOL_MIRROR_HOST:8080/registry.npmjs}
# NOTE(mnaser): The following three proxies are consumed by OpenStack Ansible. They do not contain `http://` because we
# can only override hosts, not the entire base URL.
export NODEPOOL_LXC_IMAGE_PROXY=${NODEPOOL_LXC_IMAGE_PROXY:-$NODEPOOL_MIRROR_HOST:8080/images.linuxcontainers}
export NODEPOOL_PERCONA_PROXY=${NODEPOOL_PERCONA_PROXY:-$NODEPOOL_MIRROR_HOST:8080/percona}
export NODEPOOL_MARIADB_PROXY=${NODEPOOL_MARIADB_PROXY:-$NODEPOOL_MIRROR_HOST:8080/MariaDB}