#!/bin/bash build_default_image () { if [ -f /usr/share/openstack-tripleo-common/common/container-images/container_image_prepare_defaults.yaml ]; then local default_file=/usr/share/openstack-tripleo-common/common/container-images/container_image_prepare_defaults.yaml elif [ -f ${BASH_SOURCE%/*}/../container-images/container_image_prepare_defaults.yaml ]; then local default_file=${BASH_SOURCE%/*}/../container-images/container_image_prepare_defaults.yaml else echo "docker.io/openshift/origin-ansible:latest" exit fi local namespace=$(awk '/openshift_namespace:/ {print $2}' $default_file) local prefix=$(awk '/openshift_prefix:/ {print $2}' $default_file) local tag=$(awk '/openshift_tag:/ {print $2}' $default_file) echo ${namespace}/${prefix}-ansible:${tag} } OPENSHIFT_ANSIBLE_DEFAULT_IMAGE=$(build_default_image) : ${CONFIG_DOWNLOAD_DIR:=} : ${OPENSHIFT_ANSIBLE_IMAGE:=$OPENSHIFT_ANSIBLE_DEFAULT_IMAGE} usage () { echo "Usage: $0 [options]" echo "" echo "Options:" echo " -i, --image the openshift-ansible image tag to use. Defaults to" echo " $OPENSHIFT_ANSIBLE_DEFAULT_IMAGE" echo " -d, --config-download-dir the path to the config-download directory for openshift" echo " -h, --help print this help and exit" } OPTS=`getopt -o hd:i: --long help,config-download-dir:,image: -- "$@"` eval set -- "$OPTS" while true; do case "$1" in -h | --help) usage; exit ;; -d | --config-download-dir) shift export CONFIG_DOWNLOAD_DIR=$1; shift ;; -i | --image) shift export OPENSHIFT_ANSIBLE_IMAGE=$1; shift ;; --) shift ; break ;; * ) break ;; esac done if [[ -z $CONFIG_DOWNLOAD_DIR ]]; then echo "Missing required --config-download-dir option" usage exit fi ANSIBLE_OPTS="-e @${CONFIG_DOWNLOAD_DIR}/openshift/global_vars.yml" if [[ -f ${CONFIG_DOWNLOAD_DIR}/openshift/global_gluster_vars.yml ]]; then ANSIBLE_OPTS="${ANSIBLE_OPTS} -e @${CONFIG_DOWNLOAD_DIR}/openshift/global_gluster_vars.yml" fi docker run \ --net=host \ -u `id -u` \ -v ${CONFIG_DOWNLOAD_DIR}:${CONFIG_DOWNLOAD_DIR} \ -w ${CONFIG_DOWNLOAD_DIR} \ -e ANSIBLE_HOST_KEY_CHECKING=False \ -e ANSIBLE_CONFIG=${CONFIG_DOWNLOAD_DIR}/ansible.cfg \ -e INVENTORY_DIR=${CONFIG_DOWNLOAD_DIR}/openshift/inventory \ -e PLAYBOOK_FILE=${CONFIG_DOWNLOAD_DIR}/openshift/playbook.yml \ -e OPTS="${ANSIBLE_OPTS}" \ -t ${OPENSHIFT_ANSIBLE_IMAGE}