# Related to Docker feature export RHEL_6_DOCKER="rhel6.7" export RHEL_7_DOCKER="rhel7.0" export CENTOS_DOCKER="centos" ########## # Install the katello cert RPM file rpm -Uvh http://$(hostname)/pub/katello-ca-consumer-latest.noarch.rpm ########## # Create a new registry pointed at Red Hat hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" docker registry create --name="Red Hat Docker Registry" --url="https://registry.access.redhat.com" # Get its ID # NOTE: Getting the ID is only available in UPSTREAM code so get the ID from the web ui export REGISTRY_ID=$(hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" --csv docker registry list | cut -d ',' -f 1 | grep -vi 'id') echo $REGISTRY_ID # Create a new container directly off the Registry using 'local' and 'external' compute resources hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" docker container create --name="docker-rhel-7-1-local" --registry-id="${REGISTRY_ID}" --compute-resource="local_docker" --organizations="${ORG}" --locations="${LOCATION}" --repository-name="${RHEL_7_DOCKER}" --tag="latest" --command="/bin/bash" --tty=yes hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" docker container create --name="docker-rhel-7-1-external" --registry-id="${REGISTRY_ID}" --compute-resource="external_docker" --organizations="${ORG}" --locations="${LOCATION}" --repository-name="${RHEL_7_DOCKER}" --tag="latest" --command="/bin/bash" --tty=yes hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" docker container create --name="docker-rhel-6-7-local" --registry-id="${REGISTRY_ID}" --compute-resource="local_docker" --organizations="${ORG}" --locations="${LOCATION}" --repository-name="${RHEL_6_DOCKER}" --tag="latest" --command="top" --tty=yes hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" docker container create --name="docker-rhel-6-7-external" --registry-id="${REGISTRY_ID}" --compute-resource="external_docker" --organizations="${ORG}" --locations="${LOCATION}" --repository-name="${RHEL_6_DOCKER}" --tag="latest" --command="top" --tty=yes ########### # Create a new container directly off Docker Registry Hub hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" docker container create --name="docker-centos-latest-1-local" --compute-resource="local_docker" --organizations="${ORG}" --locations="${LOCATION}" --repository-name="${CENTOS_DOCKER}" --tag="latest" --command="top" --tty=yes hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" docker container create --name="docker-centos-latest-1-external" --compute-resource="external_docker" --organizations="${ORG}" --locations="${LOCATION}" --repository-name="${CENTOS_DOCKER}" --tag="latest" --command="top" --tty=yes # Create a custom product for Docker content hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" product create --name='Docker' --organization="${ORG}" # Custom repository that uses Docker Registry Hub... hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" repository create --name='CentOS' --docker-upstream-name='centos' --url='https://registry-1.docker.io/' --organization="${ORG}" --product='Docker' --content-type=docker --publish-via-http=true # ... and sync it hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" repository synchronize --name='CentOS' --product='Docker' --organization="${ORG}" # Now provision a new container using the default content view # First, get the repo ID for the Library x Default Organization View combination export DOCKER_REPO_ID=$(hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" --csv repository list --organization="${ORG}" --content-view="Default Organization View" --environment="Library" --name='CentOS' | cut -d ',' -f 1 | grep -vi 'id') echo $DOCKER_REPO_ID # Then, get the full repository name (usually includes the lifecycle name in it) export DOCKER_REPO_NAME=$(hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" repository info --id="${DOCKER_REPO_ID}" | grep -i "^Container Repository Name" | cut -d ':' -f 2 | sed -e 's/^[ \t]*//') echo $DOCKER_REPO_NAME # And provision container from default content view hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" docker container create --name="docker-centos-from-default-cv-01" --compute-resource="local_docker" --organizations="${ORG}" --locations="${LOCATION}" --repository-name="${DOCKER_REPO_NAME}" --tag="latest" --command="top" --tty=yes # Now, let's create a content view and add Docker repo to it so we can provision another container from a different lifecycle hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" content-view create --name="docker-cv" --organization="${ORG}" hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" content-view add-repository --name="docker-cv" --organization="${ORG}" --product="Docker" --repository="CentOS" hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" content-view publish --name="docker-cv" --organization="${ORG}" # Provision container from Library export DOCKER_REPO_LIBRARY_ID=$(hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" --csv repository list --organization="${ORG}" --content-view="docker-cv" --environment="Library" --name='CentOS' | cut -d ',' -f 1 | grep -vi 'id') echo $DOCKER_REPO_LIBRARY_ID # Then, get the full repository name (usually includes the lifecycle name in it) export DOCKER_REPO_NAME=$(hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" repository info --id="${DOCKER_REPO_LIBRARY_ID}" | grep -i "^Container Repository Name" | cut -d ':' -f 2 | sed -e 's/^[ \t]*//') echo $DOCKER_REPO_NAME hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" docker container create --name="docker-centos-from-library-01" --compute-resource="local_docker" --organizations="${ORG}" --locations="${LOCATION}" --repository-name="${DOCKER_REPO_NAME}" --tag="latest" --command="top" --tty=yes # Promote it hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" content-view version promote --id=$(hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" content-view info --name="docker-cv" --organization="${ORG}" | grep '^Versions:' -A10 | grep '1)' | cut -d ':' -f2 | sed -e 's/^[ \t]*//') --content-view="${cvname}" --organization="${ORG}" --to-lifecycle-environment='DEV' # Provision container from DEV export DOCKER_REPO_DEV_ID=$(hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" --csv repository list --organization="${ORG}" --content-view="docker-cv" --environment="DEV" --name='CentOS' | cut -d ',' -f 1 | grep -vi 'id') echo $DOCKER_REPO_DEV_ID # Then, get the full repository name (usually includes the lifecycle name in it) export DOCKER_REPO_NAME=$(hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" repository info --id="${DOCKER_REPO_DEV_ID}" | grep -i "^Container Repository Name" | cut -d ':' -f 2 | sed -e 's/^[ \t]*//') echo $DOCKER_REPO_NAME hammer -u "${ADMIN_USER}" -p "${ADMIN_PASSWORD}" docker container create --name="docker-centos-from-dev-01" --compute-resource="local_docker" --organizations="${ORG}" --locations="${LOCATION}" --repository-name="${DOCKER_REPO_NAME}" --tag="latest" --command="top" --tty=yes