Add an ansible terraform custom image

* Adds install-terraform for installing terraform binaries
* Adds install-ansible for installing ansible binaries
* Adds a ruby-2.3-ansible-2.5.1-terraform-0.11 image

Towards https://gitlab.com/gitlab-org/omnibus-gitlab/issues/3395
This commit is contained in:
Richard Clamp 2018-04-19 14:45:40 +01:00
parent f73dcbccba
commit 61ec1a94bc
6 changed files with 61 additions and 5 deletions

View file

@ -75,6 +75,7 @@ golang-1.10-git-2.14 test: *test_custom
golang-1.10-git-2.16 test: *test_custom
golang-1.10-git-2.17 test: *test_custom
node-8.9-chrome-63.0-yarn-1.2 test: *test_custom
ruby-2.3-ansible-2.5.1-terraform-0.11 test: *test_custom
www-gitlab-com test: *test_build
gitlab-qa test: *test_build
@ -114,6 +115,7 @@ golang-1.10-git-2.14: *build_and_deploy_custom
golang-1.10-git-2.16: *build_and_deploy_custom
golang-1.10-git-2.17: *build_and_deploy_custom
node-8.9-chrome-63.0-yarn-1.2: *build_and_deploy_custom
ruby-2.3-ansible-2.5.1-terraform-0.11: *build_and_deploy_custom
www-gitlab-com: *build_and_deploy
gitlab-qa: *build_and_deploy

View file

@ -43,6 +43,14 @@ RUN if [ -n "$INSTALL_GOLANG_VERSION" ] ; then /scripts/install-golang "${INSTAL
ARG POSTGRES_VERSION
RUN if [ -n "$POSTGRES_VERSION" ] ; then /scripts/install-postgresql; fi
# Ansible
ARG ANSIBLE_VERSION
RUN if [ -n "$ANSIBLE_VERSION" ] ; then /scripts/install-ansible $ANSIBLE_VERSION; fi
# Terraform
ARG TERRAFORM_VERSION
ARG TERRAFORM_DOWNLOAD_SHA256
RUN if [ -n "$TERRAFORM_VERSION" ] ; then /scripts/install-terraform $TERRAFORM_VERSION $TERRAFORM_DOWNLOAD_SHA256; fi
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8

View file

@ -52,6 +52,8 @@ options are:
5. `yarn`
6. `phantomjs`
7. `postgres`
8. `terraform`
9. `ansible`
### Adding a new build

View file

@ -101,6 +101,23 @@ function print_postgres_args() {
printf -- "--build-arg POSTGRES_VERSION=%s " "$1"
}
function print_ansible_args() {
printf -- "--build-arg ANSIBLE_VERSION=%s " "$1"
}
function print_terraform_args() {
case "$1" in
0.11)
TERRAFORM_VERSION=0.11.7
TERRAFORM_DOWNLOAD_SHA256=6b8ce67647a59b2a3f70199c304abca0ddec0e49fd060944c26f666298e23418
;;
*) echo "Unknown terraform version $1"; exit 1;
esac
printf -- "--build-arg TERRAFORM_VERSION=%s " "$TERRAFORM_VERSION"
printf -- "--build-arg TERRAFORM_DOWNLOAD_SHA256=%s " "$TERRAFORM_DOWNLOAD_SHA256"
}
function parse_arguments() {
read base
read base_version
@ -116,6 +133,8 @@ function parse_arguments() {
node) print_node_args $version ;;
yarn) print_yarn_args $version ;;
postgresql) print_postgres_args $version ;;
ansible) print_ansible_args $version ;;
terraform) print_terraform_args $version ;;
*) exit 1;;
esac
done

12
scripts/install-ansible Executable file
View file

@ -0,0 +1,12 @@
#!/bin/bash
set -xeou pipefail
ANSIBLE_VERSION=$1
apt-get update
apt-get install -y python-pip python-dev
apt-get clean -yqq
pip install --upgrade cffi
pip install "ansible==${ANSIBLE_VERSION}"

13
scripts/install-terraform Executable file
View file

@ -0,0 +1,13 @@
#!/bin/bash
set -xeou pipefail
TERRAFORM_VERSION=${1}
TERRAFORM_DOWNLOAD_SHA256=${2}
TERRAFORM_DOWNLOAD_URL="https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip"
curl -fsSL "$TERRAFORM_DOWNLOAD_URL" -o terraform.zip
echo "${TERRAFORM_DOWNLOAD_SHA256} terraform.zip" | sha256sum -c -
unzip -d /usr/local/bin terraform.zip
rm terraform.zip