summaryrefslogtreecommitdiffstats
path: root/mcp/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'mcp/scripts')
-rw-r--r--mcp/scripts/lib.sh38
-rwxr-xr-xmcp/scripts/salt.sh12
-rw-r--r--mcp/scripts/user-data.template8
3 files changed, 36 insertions, 22 deletions
diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh
index 3f740589d..1812663d3 100644
--- a/mcp/scripts/lib.sh
+++ b/mcp/scripts/lib.sh
@@ -4,25 +4,28 @@
#
generate_ssh_key() {
+ # shellcheck disable=SC2155
+ local mcp_ssh_key=$(basename "${SSH_KEY}")
local user=${USER}
if [ -n "${SUDO_USER}" ] && [ "${SUDO_USER}" != 'root' ]; then
user=${SUDO_USER}
fi
- if [ -f "/tmp/${SSH_KEY}" ]; then
- cp "/tmp/${SSH_KEY}" .
- ssh-keygen -f "${SSH_KEY}" -y > "${SSH_KEY}.pub"
+ if [ -f "${SSH_KEY}" ]; then
+ cp "${SSH_KEY}" .
+ ssh-keygen -f "${mcp_ssh_key}" -y > "${mcp_ssh_key}.pub"
fi
- [ -f "${SSH_KEY}" ] || ssh-keygen -f "${SSH_KEY}" -N ''
- install -o "${user}" -m 0600 "${SSH_KEY}" /tmp/
+ [ -f "${mcp_ssh_key}" ] || ssh-keygen -f "${mcp_ssh_key}" -N ''
+ install -D -o "${user}" -m 0600 "${mcp_ssh_key}" "${SSH_KEY}"
}
get_base_image() {
local base_image=$1
+ local image_dir=$2
- mkdir -p images
- wget -P /tmp -N "${base_image}"
+ mkdir -p "${image_dir}"
+ wget -P "${image_dir}" -N "${base_image}"
}
cleanup_vms() {
@@ -38,17 +41,19 @@ cleanup_vms() {
prepare_vms() {
local -n vnodes=$1
local base_image=$2
+ local image_dir=$3
cleanup_vms
- get_base_image "${base_image}"
- envsubst < user-data.template > user-data.sh
+ get_base_image "${base_image}" "${image_dir}"
+ envsubst '${SALT_MASTER},${CLUSTER_DOMAIN}' < \
+ user-data.template > user-data.sh
for node in "${vnodes[@]}"; do
# create/prepare images
- ./create-config-drive.sh -k "${SSH_KEY}.pub" -u user-data.sh \
- -h "${node}" "images/mcp_${node}.iso"
- cp "/tmp/${base_image/*\/}" "images/mcp_${node}.qcow2"
- qemu-img resize "images/mcp_${node}.qcow2" 100G
+ ./create-config-drive.sh -k "$(basename "${SSH_KEY}").pub" -u user-data.sh \
+ -h "${node}" "${image_dir}/mcp_${node}.iso"
+ cp "${image_dir}/${base_image/*\/}" "${image_dir}/mcp_${node}.qcow2"
+ qemu-img resize "${image_dir}/mcp_${node}.qcow2" 100G
done
}
@@ -76,6 +81,7 @@ create_vms() {
local -n vnodes_ram=$2
local -n vnodes_vcpus=$3
local -n vnode_networks=$4
+ local image_dir=$5
# AArch64: prepare arch specific arguments
local virt_extra_args=""
@@ -105,10 +111,10 @@ create_vms() {
virt-install --name "${node}" \
--ram "${vnodes_ram[$node]}" --vcpus "${vnodes_vcpus[$node]}" \
--cpu host-passthrough --accelerate ${net_args} \
- --disk path="$(pwd)/images/mcp_${node}.qcow2",format=qcow2,bus=virtio,cache=none,io=native \
+ --disk path="${image_dir}/mcp_${node}.qcow2",format=qcow2,bus=virtio,cache=none,io=native \
--os-type linux --os-variant none \
--boot hd --vnc --console pty --autostart --noreboot \
- --disk path="$(pwd)/images/mcp_${node}.iso",device=cdrom \
+ --disk path="${image_dir}/mcp_${node}.iso",device=cdrom \
--noautoconsole \
${virt_extra_args}
done
@@ -116,7 +122,9 @@ create_vms() {
update_mcpcontrol_network() {
# set static ip address for salt master node, MaaS node
+ # shellcheck disable=SC2155
local cmac=$(virsh domiflist cfg01 2>&1| awk '/mcpcontrol/ {print $5; exit}')
+ # shellcheck disable=SC2155
local amac=$(virsh domiflist mas01 2>&1| awk '/mcpcontrol/ {print $5; exit}')
virsh net-update "mcpcontrol" add ip-dhcp-host \
"<host mac='${cmac}' name='cfg01' ip='${SALT_MASTER}'/>" --live
diff --git a/mcp/scripts/salt.sh b/mcp/scripts/salt.sh
index 9f88f1c77..4fa54ab1c 100755
--- a/mcp/scripts/salt.sh
+++ b/mcp/scripts/salt.sh
@@ -17,7 +17,7 @@ OPNFV_TMP_DIR="/home/${SALT_MASTER_USER}/fuel"
OPNFV_FUEL_DIR="/root/fuel"
# patch reclass-system-salt-model locally before copying it over
-make -C "${F_GIT_ROOT}/mcp/patches" patches-import
+make -C "${F_GIT_ROOT}/mcp/patches" deepclean patches-import
# push to cfg01 current git repo first (including submodules), at ~ubuntu/fuel
# later we move it to ~root/fuel and delete the temporary clone
@@ -34,19 +34,21 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s << SALT_INSTALL_END
while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo -n '.'; sleep 1; done
echo ' done'
- DEBIAN_FRONTEND=noninteractive apt-get install -y git curl
-
- git clone --depth=1 https://github.com/salt-formulas/salt-formulas-scripts /srv/salt/scripts
+ mkdir -p /srv/salt /usr/share/salt-formulas/reclass
mv ${OPNFV_TMP_DIR} ${OPNFV_FUEL_DIR} && chown -R root.root ${OPNFV_FUEL_DIR}
ln -s ${OPNFV_FUEL_DIR}/mcp/reclass /srv/salt/reclass
+ ln -s ${OPNFV_FUEL_DIR}/mcp/deploy/scripts /srv/salt/scripts
- mkdir -p /usr/share/salt-formulas/reclass
cp -r ${OPNFV_FUEL_DIR}/mcp/metadata/service /usr/share/salt-formulas/reclass
cd /srv/salt/reclass/classes/service && \
ln -s /usr/share/salt-formulas/reclass/service/opendaylight
cd ${OPNFV_FUEL_DIR}/mcp/patches && ./patch.sh patches.list reclass
cd /srv/salt/scripts
+ if [ "\$(uname -i)" = "aarch64" ]; then
+ # NOTE(armband): On AArch64, skip creating apt source list definitions (-r)
+ export BOOTSTRAP_SALTSTACK_OPTS=" -r -dX stable 2016.11 "
+ fi
MASTER_HOSTNAME=cfg01.${CLUSTER_DOMAIN} DISTRIB_REVISION=nightly ./salt-master-init.sh
salt-key -Ay
diff --git a/mcp/scripts/user-data.template b/mcp/scripts/user-data.template
index cc97a6027..292c37c0c 100644
--- a/mcp/scripts/user-data.template
+++ b/mcp/scripts/user-data.template
@@ -1,6 +1,10 @@
#!/bin/bash
-wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.11/SALTSTACK-GPG-KEY.pub | sudo apt-key add -
-echo "deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.11 xenial main" > /etc/apt/sources.list.d/salt.list
+SALT_REPO=repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.11
+if [ "$(uname -i)" = "aarch64" ]; then
+ SALT_REPO=linux.enea.com/saltstack/apt/ubuntu/16.04/arm64/2016.11
+fi
+wget -O - "https://${SALT_REPO}/SALTSTACK-GPG-KEY.pub" | sudo apt-key add -
+echo "deb http://${SALT_REPO} xenial main" > /etc/apt/sources.list.d/salt.list
apt update
apt-get install -y salt-minion
rm /etc/salt/minion_id