#
# SPDX-License-Identifier: Apache-2.0
+OS_ID=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
+
info() {
_print_msg "INFO" "$1"
}
#-------------------------------------------------------------------------------
sudo sed -i "s/^Defaults.*env_reset/#&/" /etc/sudoers
+ #-------------------------------------------------------------------------------
+ # Installing prerequisites
+ #-------------------------------------------------------------------------------
+ if [ "$OS_ID" == "ubuntu" ]; then
+
+ sudo apt update -y
+ ansible --version
+ RESULT=$?
+ if [ $RESULT -ne 0 ]; then
+ sudo apt-add-repository --yes --update ppa:ansible/ansible
+ sudo apt-get install -y ansible
+ fi
+
+ yq --version
+ RESULT=$?
+ if [ $RESULT -ne 0 ]; then
+ sudo wget https://github.com/mikefarah/yq/releases/download/3.4.1/yq_linux_amd64 -O /usr/bin/yq
+ sudo chmod +x /usr/bin/yq
+ fi
+
+ virsh --version
+ RESULT=$?
+ if [ $RESULT -ne 0 ]; then
+ sudo apt-get install -y virsh
+ fi
+
+ jq --version
+ RESULT=$?
+ if [ $RESULT -ne 0 ]; then
+ sudo apt-get install -y jq
+ fi
+
+ virtualenv --version
+ RESULT=$?
+ if [ $RESULT -ne 0 ]; then
+ sudo apt-get install -y virtualenv
+ fi
+
+ pip --version
+ if [ $RESULT -ne 0 ]; then
+ sudo apt-get install -y pip
+ fi
+
+ elif [ "$OS_ID" == "centos" ]; then
+
+ sudo yum update -y
+ ansible --version
+ RESULT=$?
+ if [ $RESULT -ne 0 ]; then
+ sudo dnf install epel-release
+ sudo dnf install ansible
+ fi
+
+ yq --version
+ RESULT=$?
+ if [ $RESULT -ne 0 ]; then
+ sudo wget https://github.com/mikefarah/yq/releases/download/3.4.1/yq_linux_amd64 -O /usr/bin/yq
+ sudo chmod +x /usr/bin/yq
+ fi
+
+ virsh --version
+ RESULT=$?
+ if [ $RESULT -ne 0 ]; then
+ sudo yum install -y virsh
+ fi
+
+ jq --version
+ RESULT=$?
+ if [ $RESULT -ne 0 ]; then
+ sudo yum install -y jq
+ fi
+
+ virtualenv --version
+ RESULT=$?
+ if [ $RESULT -ne 0 ]; then
+ sudo yum install -y virtualenv
+ fi
+
+ pip --version
+ if [ $RESULT -ne 0 ]; then
+ sudo yum install -y pip
+ fi
+ fi
+
#-------------------------------------------------------------------------------
# Check if necessary tools are installed
#-------------------------------------------------------------------------------
# Host Provisioning
provision_hosts_baremetal() {
+ CMD="./deploy.sh -s ironic -d ${DISTRO} -p file:///${PROJECT_ROOT}/engine/engine/pdf.yaml -i file:///${PROJECT_ROOT}/engine/engine/idf.yaml"
+ if [ "${DEBUG:-false}" == "true" ]; then
+ CMD+=" -v"
+ fi
+
# shellcheck disable=SC2087
ssh -o StrictHostKeyChecking=no -tT "$USERNAME"@"$(get_vm_ip)" << EOF
# Install and run cloud-infra
cp "${PROJECT_ROOT}"/"${VENDOR}"/{pdf.yaml,idf.yaml} \
"${PROJECT_ROOT}"/engine/engine
cd "${PROJECT_ROOT}"/engine/engine || return
-./deploy.sh -s ironic -d "${DISTRO}" \
--p file:///"${PROJECT_ROOT}"/engine/engine/pdf.yaml \
--i file:///"${PROJECT_ROOT}"/engine/engine/idf.yaml
+${CMD}
EOF
}
provision_hosts_vms() {
# shellcheck disable=SC2087
-# Install and run cloud-infra
-if [ ! -d "$CURRENTPATH/engine" ]; then
- git clone https://gerrit.nordix.org/infra/engine.git "${CURRENTPATH}"/engine
-fi
-cp "$CURRENTPATH"/hw_config/"$VENDOR"/{pdf.yaml,idf.yaml} \
-"${CURRENTPATH}"/engine/engine
-cd "$CURRENTPATH"/engine/engine || return
-./deploy.sh -s ironic \
--p file:///"${CURRENTPATH}"/engine/engine/pdf.yaml \
--i file:///"${CURRENTPATH}"/engine/engine/idf.yaml
+ # Install and run cloud-infra
+ if [ ! -d "${CURRENTPATH}/engine" ]; then
+ git clone https://gerrit.nordix.org/infra/engine.git "${CURRENTPATH}"/engine
+ fi
+ cp "${CURRENTPATH}"/hw_config/"${VENDOR}"/{pdf.yaml,idf.yaml} "${CURRENTPATH}"/engine/engine
+ cd "${CURRENTPATH}"/engine/engine || return
+ CMD="./deploy.sh -s ironic -p file:///${CURRENTPATH}/engine/engine/pdf.yaml -i file:///${CURRENTPATH}/engine/engine/idf.yaml"
+ if [ "${DEBUG:-false}" == "true" ]; then
+ CMD+=" -v"
+ fi
+
+ ${CMD}
}
# Setup networking on provisioned hosts (Adapt setup_network.sh according to your network setup)
"${PROJECT_ROOT}"/container-experience-kits/playbooks/preflight.yml
cp "${PROJECT_ROOT}"/"${INSTALLER}"/patched_sriov_cni_install.yml \
"${PROJECT_ROOT}"/container-experience-kits/roles/sriov_cni_install/tasks/main.yml
+cp "${PROJECT_ROOT}"/"${INSTALLER}"/patched_install_dpdk_meson.yml \
+ "${PROJECT_ROOT}"/container-experience-kits/roles/install_dpdk/tasks/install_dpdk_meson.yml
sudo docker run --rm \
-e ANSIBLE_CONFIG=/bmra/ansible.cfg \
"${CURRENTPATH}"/container-experience-kits/playbooks/preflight.yml
cp "${CURRENTPATH}"/sw_config/"${INSTALLER}"/patched_sriov_cni_install.yml \
"${CURRENTPATH}"/container-experience-kits/roles/sriov_cni_install/tasks/main.yml
+cp "${CURRENTPATH}"/sw_config/"${INSTALLER}"/patched_install_dpdk_meson.yml \
+ "${CURRENTPATH}"/container-experience-kits/roles/install_dpdk/tasks/install_dpdk_meson.yml
ansible-playbook -i "$CURRENTPATH"/sw_config/bmra/inventory.ini "$CURRENTPATH"/playbooks/pre-install.yaml
# shellcheck disable=SC2087
ssh -o StrictHostKeyChecking=no -tT "$USERNAME"@"$(get_vm_ip)" << EOF
scp -o StrictHostKeyChecking=no -q root@"$MASTER_IP":/root/.kube/config "${PROJECT_ROOT}"/kubeconfig
+sed -i 's/127.0.0.1/$MASTER_IP/g' "${PROJECT_ROOT}"/kubeconfig
EOF
# Copy kubeconfig from Jump VM to appropriate location in Jump Host
# Creates a python virtual environment
creates_virtualenv() {
if [ ! -d "$CURRENTPATH/.venv" ]; then
- virtualenv .venv
+ virtualenv "$CURRENTPATH/.venv"
fi
- # shellcheck disable=SC1090
+ # shellcheck disable=SC1090,SC1091
source "$CURRENTPATH/.venv/bin/activate"
pip install -r "$CURRENTPATH/requirements.txt"
}