diff --git a/manifests/common/deploy-airship.sh b/manifests/common/deploy-airship.sh index 34a41287..911dd6db 100755 --- a/manifests/common/deploy-airship.sh +++ b/manifests/common/deploy-airship.sh @@ -52,6 +52,11 @@ export WORKSPACE=${WORKSPACE:-"/root/deploy"} # The site to deploy TARGET_SITE=${TARGET_SITE:-"dev"} +# Setup blank defaults for proxy variables +http_proxy=${http_proxy:-""} +https_proxy=${https_proxy:-""} +no_proxy=${no_proxy:-""} + # The host name for the single-node deployment. e.g.: 'genesis' SHORT_HOSTNAME=${SHORT_HOSTNAME:-""} # The host ip for this single-node deployment. e.g.: '10.0.0.9' @@ -122,6 +127,34 @@ function setup_workspace() { chmod -R 777 ${WORKSPACE}/genesis } +function configure_docker() { + if [[ ! -z "${https_proxy}" ]] || [[ ! -z "${http_proxy}" ]] + then + echo "Configuring Docker to use a proxy..." + mkdir -p /etc/systemd/system/docker.service.d/ + cat << EOF > /etc/systemd/system/docker.service.d/http-proxy.conf +[Service] +Environment="HTTP_PROXY=${http_proxy}" +Environment="HTTPS_PROXY=${https_proxy}" +Environment="NO_PROXY=${no_proxy}" +EOF + systemctl daemon-reload + systemctl restart docker + fi +} + +function configure_apt() { + if [[ ! -z "${https_proxy}" ]] || [[ ! -z "${http_proxy}" ]] + then + echo "Configuring apt to use a proxy..." + mkdir -p /etc/apt/ + cat << EOF > /etc/apt/apt.conf +Acquire::http::proxy "${http_proxy}"; +Acquire::https::proxy "${https_proxy}"; +EOF + fi +} + function get_repo() { # Setup a repository in the workspace # @@ -183,8 +216,9 @@ function generate_certs() { cp "${WORKSPACE}/collected"/*.yaml ${WORKSPACE}/genesis docker run --rm -t \ - -e http_proxy=$PROXY \ - -e https_proxy=$PROXY \ + -e http_proxy=$http_proxy \ + -e https_proxy=$https_proxy \ + -e no_proxy=$no_proxy \ -w /target \ -e PROMENADE_DEBUG=false \ -v ${WORKSPACE}/genesis:/target \ @@ -206,8 +240,9 @@ function lint_design() { function generate_genesis() { # Generate the genesis scripts docker run --rm -t \ - -e http_proxy=$PROXY \ - -e https_proxy=$PROXY \ + -e http_proxy=$http_proxy \ + -e https_proxy=$https_proxy \ + -e no_proxy=$no_proxy \ -w /target \ -e PROMENADE_DEBUG=false \ -v ${WORKSPACE}/genesis:/target \ @@ -343,10 +378,12 @@ trap clean EXIT # Common steps for all breakpoints specified check_preconditions || error "checking for preconditions" +configure_apt || error "configuring apt behind proxy" setup_workspace || error "setting up workspace directories" setup_repos || error "setting up Git repos" configure_dev_configurables || error "adding dev-configurables values" install_dependencies || error "installing dependencies" +configure_docker || error "configuring docker behind proxy" # collect if [[ ${STEP_BREAKPOINT} -ge 10 ]]; then diff --git a/manifests/dev_minimal/README.txt b/manifests/dev_minimal/README.txt index 369ee7f4..03832dbf 100644 --- a/manifests/dev_minimal/README.txt +++ b/manifests/dev_minimal/README.txt @@ -28,7 +28,20 @@ Process recommended. 32GB of disk is enough, use more if you plan on doing any extended use. 2) Become root. All the commands are run as root. -3) Update etc/hosts with IP/Hostname of your VM. e.g. 10.0.0.15 testvm1 +3) Update etc/hosts with IP/Hostname of your VM. e.g. 10.0.0.15 testvm1. +Note: If running this behind a corporate proxy, you will need to update the + /etc/environment file, and append your proxy configurtion there. + Then you will need to source the /etc/environment to set the proxy + environment. + For instance, you will need to add following lines in the + /etc/environment file, and then source it: + export http_proxy="your.proxy.address:port" + export https_proxy="your.proxy.address:port" + export no_proxy=".foo.com,.cluster.local,localhost,127.0.0.0/8,10.0.0.0/24" + export HTTP_PROXY="http://your.proxy.address:port" + export HTTPS_PROXY="http://your.proxy.address:port" + export NO_PROXY=".foo.com,.cluster.local,localhost,127.0.0.0/8,10.0.0.0/24" + 4) go to /root/deploy and clone airship-in-a-bottle. Switch to a target patchset if needed 4a) If you use a directory other than /root/deploy, /root/deploy will be @@ -40,8 +53,11 @@ Process NOTE: If running this behind a corporate proxy, you will need to update the file deployment_files/site/dev-proxy/networks/common-addresses.yaml to - specify your proxy server and appropriate no_proxy list. Also change - set-env.sh to use TARGET_SITE of 'dev-proxy'. + specify your proxy server and appropriate no_proxy list. In this file, + also update the dns list, and add your corporate name servers to the + dns list. This is done for name resolution of internal corporate + addresses behind the proxy. + Also change set-env.sh to use TARGET_SITE of 'dev-proxy'. 8) ../common/deploy-airship.sh You may sepecify a target point to stop the deployment by using an argument of