Add role to make /etc/ci/mirror_info.sh
The mirror info script is sourced by various jobs so needs to be around for broad compatability. Since it's full of openstack only mirrors, this seems like the place for it. Change-Id: I66164920642a6015a6524fdc3105e4099d26deff
This commit is contained in:
parent
69c65a5e2c
commit
0c1ecb990f
7
roles/mirror-info/README.rst
Normal file
7
roles/mirror-info/README.rst
Normal file
@ -0,0 +1,7 @@
|
||||
An ansible role to configure the ``/etc/ci/mirror_info.sh`` script
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: mirror_fqdn
|
||||
|
||||
The base host for mirror servers.
|
17
roles/mirror-info/tasks/main.yaml
Normal file
17
roles/mirror-info/tasks/main.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
- 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
|
69
roles/mirror-info/templates/mirror_info.sh.j2
Normal file
69
roles/mirror-info/templates/mirror_info.sh.j2
Normal file
@ -0,0 +1,69 @@
|
||||
#!/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.
|
||||
|
||||
# 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_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}
|
||||
export NODEPOOL_MARIADB_MIRROR=${NODEPOOL_MARIADB_MIRROR:-http://$NODEPOOL_MIRROR_HOST/ubuntu-mariadb}
|
||||
# Reverse proxy servers
|
||||
export NODEPOOL_BUILDLOGS_CENTOS_PROXY=${NODEPOOL_BUILDLOGS_CENTOS_PROXY:-http://$NODEPOOL_MIRROR_HOST:8080/buildlogs.centos}
|
||||
export NODEPOOL_DOCKER_REGISTRY_PROXY=${NODEPOOL_DOCKER_REGISTRY_PROXY:-http://$NODEPOOL_MIRROR_HOST:8081/registry-1.docker/}
|
||||
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}
|
||||
export NODEPOOL_TARBALLS_PROXY=${NODEPOOL_TARBALLS_PROXY:-http://$NODEPOOL_MIRROR_HOST:8080/tarballs}
|
||||
export NODEPOOL_LXC_IMAGE_PROXY=${NODEPOOL_LXC_IMAGE_PROXY:-$NODEPOOL_MIRROR_HOST:8080/images.linuxcontainers}
|
@ -1,3 +1,4 @@
|
||||
# Roles that are part of the 'base' job
|
||||
|
||||
- include: configure-mirrors.yaml
|
||||
- include: mirror-info.yaml
|
19
tests/mirror-info.yaml
Normal file
19
tests/mirror-info.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
- name: Test the creation of the mirror-info script
|
||||
hosts: all
|
||||
roles:
|
||||
- role: mirror-info
|
||||
mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
|
||||
post_tasks:
|
||||
- name: Stat mirror script
|
||||
stat:
|
||||
path: /etc/ci/mirror_info.sh
|
||||
register: stat_result
|
||||
# note this is "sh" (not bash) just to make sure
|
||||
# it sources as POSIX
|
||||
- name: Check mirror script can be sourced
|
||||
shell: set -ex && . /etc/ci/mirror_info.sh && echo $AFS_SLUG
|
||||
- name: Check /etc/ci/mirror_info.sh
|
||||
assert:
|
||||
that:
|
||||
- stat_result.stat.exists
|
||||
- stat_result.stat.mode == '0644'
|
Loading…
Reference in New Issue
Block a user