aboutsummaryrefslogtreecommitdiffstats
path: root/fuel/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh
diff options
context:
space:
mode:
Diffstat (limited to 'fuel/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh')
-rwxr-xr-xfuel/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh266
1 files changed, 0 insertions, 266 deletions
diff --git a/fuel/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh b/fuel/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh
deleted file mode 100755
index 065d0cb7d..000000000
--- a/fuel/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh
+++ /dev/null
@@ -1,266 +0,0 @@
-#!/bin/bash
-FUEL_RELEASE=$(grep release: /etc/fuel/version.yaml | cut -d: -f2 | tr -d '" ')
-
-function countdown() {
- local i
- sleep 1
- for ((i=$1-1; i>=1; i--)); do
- printf '\b\b\b\b%04d' "$i"
- sleep 1
- done
-}
-
-function fail() {
- echo "ERROR: Fuel node deployment FAILED! Check /var/log/puppet/bootstrap_admin_node.log for details" 1>&2
- exit 1
-}
-# LANG variable is a workaround for puppet-3.4.2 bug. See LP#1312758 for details
-export LANG=en_US.UTF8
-export ADMIN_INTERFACE=eth0
-
-showmenu="no"
-if [ -f /etc/fuel/bootstrap_admin_node.conf ]; then
- . /etc/fuel/bootstrap_admin_node.conf
- echo "Applying admin interface '$ADMIN_INTERFACE'"
-fi
-
-echo "Applying default Fuel settings..."
-set -x
-fuelmenu --save-only --iface=$ADMIN_INTERFACE
-set +x
-echo "Done!"
-
-### OPNFV addition BEGIN
-shopt -s nullglob
-for script in /opt/opnfv/bootstrap/pre.d/*.sh
-do
- echo "Pre script: $script" >> /root/pre.log 2>&1
- $script >> /root/pre.log 2>&1
-done
-shopt -u nullglob
-### OPNFV addition END
-
-if [[ "$showmenu" == "yes" || "$showmenu" == "YES" ]]; then
- fuelmenu
- else
- #Give user 15 seconds to enter fuelmenu or else continue
- echo
- echo -n "Press a key to enter Fuel Setup (or press ESC to skip)... 15"
- countdown 15 & pid=$!
- if ! read -s -n 1 -t 15 key; then
- echo -e "\nSkipping Fuel Setup..."
- else
- { kill "$pid"; wait $!; } 2>/dev/null
- case "$key" in
- $'\e') echo "Skipping Fuel Setup.."
- ;;
- *) echo -e "\nEntering Fuel Setup..."
- fuelmenu
- ;;
- esac
- fi
-fi
-
-if [ "$wait_for_external_config" == "yes" ]; then
- wait_timeout=3000
- pidfile=/var/lock/wait_for_external_config
- echo -n "Waiting for external configuration (or press ESC to skip)...
-$wait_timeout"
- countdown $wait_timeout & countdown_pid=$!
- exec -a wait_for_external_config sleep $wait_timeout & wait_pid=$!
- echo $wait_pid > $pidfile
- while ps -p $countdown_pid &> /dev/null && ps -p $wait_pid &>/dev/null; do
- read -s -n 1 -t 2 key
- case "$key" in
- $'\e') echo -e "\b\b\b\b abort on user input"
- break
- ;;
- *) ;;
- esac
- done
- { kill $countdown_pid $wait_pid & wait $!; }
- rm -f $pidfile
-fi
-
-
-#Reread /etc/sysconfig/network to inform puppet of changes
-. /etc/sysconfig/network
-hostname "$HOSTNAME"
-
-# XXX: ssh keys which should be included into the bootstrap image are
-# generated during containers deployment. However cobbler checkfs for
-# a kernel and initramfs when creating a profile, which poses chicken
-# and egg problem. Fortunately cobbler is pretty happy with empty files
-# so it's easy to break the loop.
-make_ubuntu_bootstrap_stub () {
- local bootstrap_dir='/var/www/nailgun/bootstrap/ubuntu'
- mkdir -p $bootstrap_dir
- for item in linux initramfs.img; do
- touch "$bootstrap_dir/$item"
- done
-}
-
-get_bootstrap_flavor () {
- local ASTUTE_YAML='/etc/fuel/astute.yaml'
- python <<-EOF
- from fuelmenu.fuelmenu import Settings
- conf = Settings().read("$ASTUTE_YAML").get('BOOTSTRAP', {})
- print(conf.get('flavor', 'centos'))
- EOF
-}
-
-# Actually build the bootstrap image
-build_ubuntu_bootstrap () {
- local ret=1
- local max_attempts=3
- local config='/etc/fuel-bootstrap-image.conf'
- local log='/var/log/fuel-bootstrap-image-build.log'
- if ! grep -qE '^BOOTSTRAP_SSH_KEYS' "$config"; then
- # FIXME: config file generated by fuelmenu has no trailing newline
- echo >> "$config"
- cat >> "$config" <<-EOF
- BOOTSTRAP_SSH_KEYS=/root/.ssh/id_rsa.pub
- EOF
- fi
- for n in `seq 1 $max_attempts`; do
- echo "Bulding bootstrap image, attempt $n" >&2
- if fuel-bootstrap-image >>"$log" 2>&1; then
- ret=0
- fuel-bootstrap-image-set "ubuntu"
- break
- fi
- done
- if [ $ret -ne 0 ]; then
- warning="WARNING: failed to build the bootstrap image, see $log for details.
-Perhaps your Internet connection is broken. Please fix the problem and run
-\`fuel-bootstrap-image-set ubuntu\`"
- fuel notify --topic warning --send "$warning"
- fi
- return $ret
-}
-
-
-# Create empty files to make cobbler happy
-# (even if we don't use Ubuntu based bootstrap)
-make_ubuntu_bootstrap_stub
-
-service docker start
-
-if [ -f /root/.build_images ]; then
- #Fail on all errors
- set -e
- trap fail EXIT
-
- echo "Loading Fuel base image for Docker..."
- docker load -i /var/www/nailgun/docker/images/fuel-images.tar
-
- echo "Building Fuel Docker images..."
- WORKDIR=$(mktemp -d /tmp/docker-buildXXX)
- SOURCE=/var/www/nailgun/docker
- REPO_CONT_ID=$(docker -D run -d -p 80 -v /var/www/nailgun:/var/www/nailgun fuel/centos sh -c 'mkdir /var/www/html/os;ln -sf /var/www/nailgun/centos/x86_64 /var/www/html/os/x86_64;/usr/sbin/apachectl -DFOREGROUND')
- RANDOM_PORT=$(docker port $REPO_CONT_ID 80 | cut -d':' -f2)
-
- for imagesource in /var/www/nailgun/docker/sources/*; do
- if ! [ -f "$imagesource/Dockerfile" ]; then
- echo "Skipping ${imagesource}..."
- continue
- fi
- image=$(basename "$imagesource")
- cp -R "$imagesource" $WORKDIR/$image
- mkdir -p $WORKDIR/$image/etc
- cp -R /etc/puppet /etc/fuel $WORKDIR/$image/etc
- sed -e "s/_PORT_/${RANDOM_PORT}/" -i $WORKDIR/$image/Dockerfile
- sed -e 's/production:.*/production: "docker-build"/' -i $WORKDIR/$image/etc/fuel/version.yaml
- docker build -t fuel/${image}_${FUEL_RELEASE} $WORKDIR/$image
- done
- docker rm -f $REPO_CONT_ID
- rm -rf "$WORKDIR"
-
- #Remove trap for normal deployment
- trap - EXIT
- set +e
-else
- echo "Loading docker images. (This may take a while)"
- docker load -i /var/www/nailgun/docker/images/fuel-images.tar
-fi
-
-# apply puppet
-puppet apply --detailed-exitcodes -d -v /etc/puppet/modules/nailgun/examples/host-only.pp
-if [ $? -ge 4 ];then
- fail
-fi
-
-rmdir /var/log/remote && ln -s /var/log/docker-logs/remote /var/log/remote
-
-dockerctl check || fail
-bash /etc/rc.local
-
-if [ "`get_bootstrap_flavor`" = "ubuntu" ]; then
- build_ubuntu_bootstrap || true
-fi
-
-### OPNFV addition BEGIN
-shopt -s nullglob
-for script in /opt/opnfv/bootstrap/post.d/*.sh
-do
- echo "Post script: $script" >> /root/post.log 2>&1
- $script >> /root/post.log 2>&1
-done
-shopt -u nullglob
-### OPNFV addition END
-
-# Enable updates repository
-cat > /etc/yum.repos.d/mos${FUEL_RELEASE}-updates.repo << EOF
-[mos${FUEL_RELEASE}-updates]
-name=mos${FUEL_RELEASE}-updates
-baseurl=http://mirror.fuel-infra.org/mos-repos/centos/mos${FUEL_RELEASE}-centos6-fuel/updates/x86_64/
-gpgcheck=0
-skip_if_unavailable=1
-EOF
-
-# Enable security repository
-cat > /etc/yum.repos.d/mos${FUEL_RELEASE}-security.repo << EOF
-[mos${FUEL_RELEASE}-security]
-name=mos${FUEL_RELEASE}-security
-baseurl=http://mirror.fuel-infra.org/mos-repos/centos/mos${FUEL_RELEASE}-centos6-fuel/security/x86_64/
-gpgcheck=0
-skip_if_unavailable=1
-EOF
-
-#Check if repo is accessible
-echo "Checking for access to updates repository..."
-repourl=$(grep baseurl /etc/yum.repos.d/*updates* 2>/dev/null | cut -d'=' -f2- | head -1)
-if urlaccesscheck check "$repourl" ; then
- UPDATE_ISSUES=0
-else
- UPDATE_ISSUES=1
-fi
-
-if [ $UPDATE_ISSUES -eq 1 ]; then
- message="There is an issue connecting to the Fuel update repository. \
-Please fix your connection prior to applying any updates. \
-Once the connection is fixed, we recommend reviewing and applying \
-Maintenance Updates for this release of Mirantis OpenStack: \
-https://docs.mirantis.com/openstack/fuel/fuel-${FUEL_RELEASE}/\
-release-notes.html#maintenance-updates"
- level="warning"
-else
- message="We recommend reviewing and applying Maintenance Updates \
-for this release of Mirantis OpenStack: \
-https://docs.mirantis.com/openstack/fuel/fuel-${FUEL_RELEASE}/\
-release-notes.html#maintenance-updates"
- level="done"
-fi
-echo
-echo "*************************************************"
-echo -e "${message}"
-echo "*************************************************"
-echo "Sending notification to Fuel UI..."
-fuel notify --topic "${level}" --send "${message}"
-
-# TODO(kozhukalov) If building of bootstrap image fails
-# and if this image was supposed to be a default bootstrap image
-# we need to warn a user about this and give her
-# advice how to treat this.
-
-echo "Fuel node deployment complete!"