#!/usr/bin/env bash
-set -xe
+set -eux -o pipefail
# shellcheck disable=SC1091
source lib/logging.sh
if [ ! -e /etc/sysconfig/network-scripts/ifcfg-provisioning ] ; then
echo -e "DEVICE=provisioning\nTYPE=Bridge\nONBOOT=yes\nNM_CONTROLLED=no\nBOOTPROTO=static\nIPADDR=172.22.0.1\nNETMASK=255.255.255.0" | sudo dd of=/etc/sysconfig/network-scripts/ifcfg-provisioning
fi
- sudo ifdown provisioning || true
- sudo ifup provisioning
+ sudo ip link set dev provisioning down || true
+ sudo ip link set dev provisioning up
# Need to pass the provision interface for bare metal
if [ "$PRO_IF" ]; then
echo -e "DEVICE=$PRO_IF\nTYPE=Ethernet\nONBOOT=yes\nNM_CONTROLLED=no\nBRIDGE=provisioning" | sudo dd of="/etc/sysconfig/network-scripts/ifcfg-$PRO_IF"
- sudo ifdown "$PRO_IF" || true
- sudo ifup "$PRO_IF"
+ sudo ip link set dev "$PRO_IF" down || true
+ sudo ip link set dev "$PRO_IF" up
fi
fi
if [ ! -e /etc/sysconfig/network-scripts/ifcfg-baremetal ] ; then
echo -e "DEVICE=baremetal\nTYPE=Bridge\nONBOOT=yes\nNM_CONTROLLED=no" | sudo dd of=/etc/sysconfig/network-scripts/ifcfg-baremetal
fi
- sudo ifdown baremetal || true
- sudo ifup baremetal
+ sudo ip link set dev baremetal down || true
+ sudo ip link set dev baremetal up
# Add the internal interface to it if requests, this may also be the interface providing
# external access so we need to make sure we maintain dhcp config if its available
sudo virsh net-destroy baremetal
sudo virsh net-start baremetal
if [ "$INT_IF" ]; then #Need to bring UP the NIC after destroying the libvirt network
- sudo ifup "$INT_IF"
+ sudo ip link set dev "$INT_IF" up
fi
fi
fi
fi
fi
-for name in ironic ironic-inspector dnsmasq httpd mariadb ipa-downloader; do
+for name in ironic ironic-inspector dnsmasq httpd mariadb ipa-downloader; do
sudo "${CONTAINER_RUNTIME}" ps | grep -w "$name$" && sudo "${CONTAINER_RUNTIME}" kill $name
sudo "${CONTAINER_RUNTIME}" ps --all | grep -w "$name$" && sudo "${CONTAINER_RUNTIME}" rm $name -f
done
# set password for mariadb
mariadb_password="$(echo "$(date;hostname)"|sha256sum |cut -c-20)"
-if [[ "${CONTAINER_RUNTIME}" == "podman" ]]; then
- # Remove existing pod
- if sudo "${CONTAINER_RUNTIME}" pod exists ironic-pod ; then
- sudo "${CONTAINER_RUNTIME}" pod rm ironic-pod -f
- fi
- # Create pod
- sudo "${CONTAINER_RUNTIME}" pod create -n ironic-pod
- POD_NAME="--pod ironic-pod"
-else
- POD_NAME=""
-fi
-
-cat <<EOF > ${PWD}/ironic.env
-PROVISIONING_INTERFACE=provisioning
-DHCP_RANGE=172.22.0.10,172.22.0.100
-DEPLOY_KERNEL_URL=http://172.22.0.1/images/ironic-python-agent.kernel
-DEPLOY_RAMDISK_URL=http://172.22.0.1/images/ironic-python-agent.initramfs
-IRONIC_ENDPOINT=http://172.22.0.1:6385/v1/
-IRONIC_INSPECTOR_ENDPOINT=http://172.22.0.1:5050/v1/
-CACHEURL=http://172.22.0.1/images
-IRONIC_FAST_TRACK=false
+cat <<EOF > ${PWD}/ironic.env
+PROVISIONING_INTERFACE=provisioning
+DHCP_RANGE=172.22.0.10,172.22.0.100
+IPA_BASEURI=https://images.rdoproject.org/train/rdo_trunk/current-tripleo
+DEPLOY_KERNEL_URL=http://172.22.0.1/images/ironic-python-agent.kernel
+DEPLOY_RAMDISK_URL=http://172.22.0.1/images/ironic-python-agent.initramfs
+IRONIC_ENDPOINT=http://172.22.0.1:6385/v1/
+IRONIC_INSPECTOR_ENDPOINT=http://172.22.0.1:5050/v1/
+CACHEURL=http://172.22.0.1/images
+IRONIC_FAST_TRACK=false
EOF
# Start image downloader container
sudo "${CONTAINER_RUNTIME}" wait ipa-downloader
+if [ ! -e "$IRONIC_DATA_DIR/html/images/ironic-python-agent.kernel" ] ||
+ [ ! -e "$IRONIC_DATA_DIR/html/images/ironic-python-agent.initramfs" ]; then
+ echo "Failed to get ironic-python-agent"
+ exit 1
+fi
+
# Start dnsmasq, http, mariadb, and ironic containers using same image
# See this file for env vars you can set, like IP, DHCP_RANGE, INTERFACE
sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name dnsmasq \