From d645c52135794f7e87868a58ea7cc8a9e2268aa8 Mon Sep 17 00:00:00 2001 From: Zack Brady Date: Sun, 14 Apr 2024 08:45:51 -0400 Subject: [PATCH] removed vagrant scripts --- VAGRANT.md | 49 ---------------------- Vagrantfile | 65 ----------------------------- vagrant-scripts/airgap.sh | 25 ----------- vagrant-scripts/k3s-install.sh | 41 ------------------ vagrant-scripts/k3s-prep.sh | 50 ---------------------- vagrant-scripts/prep-all.sh | 12 ------ vagrant-scripts/rke2-install.sh | 73 --------------------------------- vagrant-scripts/rke2-prep.sh | 72 -------------------------------- 8 files changed, 387 deletions(-) delete mode 100644 VAGRANT.md delete mode 100644 Vagrantfile delete mode 100755 vagrant-scripts/airgap.sh delete mode 100755 vagrant-scripts/k3s-install.sh delete mode 100755 vagrant-scripts/k3s-prep.sh delete mode 100755 vagrant-scripts/prep-all.sh delete mode 100755 vagrant-scripts/rke2-install.sh delete mode 100755 vagrant-scripts/rke2-prep.sh diff --git a/VAGRANT.md b/VAGRANT.md deleted file mode 100644 index bd5f1a26..00000000 --- a/VAGRANT.md +++ /dev/null @@ -1,49 +0,0 @@ -## Hauler Vagrant machine - -A Vagrantfile is provided to allow easy provisioning of a local air-gapped CentOS environment. Some artifacts need to be collected from the internet; below are the steps required for successfully provisioning this machine, downloading all dependencies, and installing k3s (without hauler) into this machine. - -### First-time setup - -1. Install vagrant, if needed: -2. Install `vagrant-vbguest` plugin, as noted in the Vagrantfile: - ```shell - vagrant plugin install vagrant-vbguest - ``` -3. Deploy Vagrant machine, disabling SELinux: - ```shell - SELINUX=Disabled vagrant up - ``` -4. Access the Vagrant machine via SSH: - ```shell - vagrant ssh - ``` -5. Run all prep scripts inside of the Vagrant machine: - > This script temporarily enables internet access from within the VM to allow downloading all dependencies. Even so, the air-gapped network configuration IS restored before completion. - ```shell - sudo /opt/hauler/vagrant-scripts/prep-all.sh - ``` - -All dependencies for all `vagrant-scripts/*-install.sh` scripts are now downloaded to the local -repository under `local-artifacts`. - -### Installing k3s manually - -1. Access the Vagrant machine via SSH: - ```bash - vagrant ssh - ``` -2. Run the k3s install script inside of the Vagrant machine: - ```shell - sudo /opt/hauler/vagrant-scripts/k3s-install.sh - ``` - -### Installing RKE2 manually - -1. Access the Vagrant machine via SSH: - ```shell - vagrant ssh - ``` -2. Run the RKE2 install script inside of the Vagrant machine: - ```shell - sudo /opt/hauler/vagrant-scripts/rke2-install.sh - ``` diff --git a/Vagrantfile b/Vagrantfile deleted file mode 100644 index 1c5db462..00000000 --- a/Vagrantfile +++ /dev/null @@ -1,65 +0,0 @@ -################################## -# The vagrant-vbguest plugin is required for CentOS 7. -# Run the following command to install/update this plugin: -# vagrant plugin install vagrant-vbguest -################################## - -Vagrant.configure("2") do |config| - config.vm.box = "centos/8" - config.vm.hostname = "airgap" - config.vm.network "private_network", type: "dhcp" - - config.vm.synced_folder ".", "/vagrant" - - config.vm.provider "virtualbox" do |vb| - vb.memory = "2048" - vb.cpus = "2" - - config.vm.provision "airgap", type: "shell", run: "always", - inline: "/vagrant/vagrant-scripts/airgap.sh airgap" - end - - # SELinux is Enforcing by default. - # To set SELinux as Disabled on a VM that has already been provisioned: - # SELINUX=Disabled vagrant up --provision-with=selinux - # To set SELinux as Permissive on a VM that has already been provsioned - # SELINUX=Permissive vagrant up --provision-with=selinux - config.vm.provision "selinux", type: "shell", run: "once" do |sh| - sh.upload_path = "/tmp/vagrant-selinux" - sh.env = { - 'SELINUX': ENV['SELINUX'] || "Enforcing" - } - sh.inline = <<~SHELL - #!/usr/bin/env bash - set -eux -o pipefail - - if ! type -p getenforce setenforce &>/dev/null; then - echo SELinux is Disabled - exit 0 - fi - - case "${SELINUX}" in - Disabled) - if mountpoint -q /sys/fs/selinux; then - setenforce 0 - umount -v /sys/fs/selinux - fi - ;; - Enforcing) - mountpoint -q /sys/fs/selinux || mount -o rw,relatime -t selinuxfs selinuxfs /sys/fs/selinux - setenforce 1 - ;; - Permissive) - mountpoint -q /sys/fs/selinux || mount -o rw,relatime -t selinuxfs selinuxfs /sys/fs/selinux - setenforce 0 - ;; - *) - echo "SELinux mode not supported: ${SELINUX}" >&2 - exit 1 - ;; - esac - - echo SELinux is $(getenforce) - SHELL - end -end diff --git a/vagrant-scripts/airgap.sh b/vagrant-scripts/airgap.sh deleted file mode 100755 index 017c345b..00000000 --- a/vagrant-scripts/airgap.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -set -x - -if [ "$#" -ne 1 ] || ( [ "$1" != "internet" ] && [ "$1" != "airgap" ] ); then - echo \ -"Enable or disable internet access in hauler's CentOS Vagrant machine. - -Usage: $0 internet - $0 airgap" >&2 - exit 1 -fi - -if [ "$1" = "internet" ]; then - # internet: set default gateway to NAT network interface - default_iface="eth0" - gw_ip="10.0.2.2" -else - # airgap: set default gateway to private network interface - default_iface="eth1" - gw_ip=$(ip -f inet a show "${default_iface}" | awk 'match($0, /inet ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})/, arr) { print arr[1] }') -fi - - -ip r delete default -ip r add default via ${gw_ip} dev ${default_iface} proto dhcp metric 100 diff --git a/vagrant-scripts/k3s-install.sh b/vagrant-scripts/k3s-install.sh deleted file mode 100755 index e7316c3a..00000000 --- a/vagrant-scripts/k3s-install.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh - -################################################################################ -# RUN IN VAGRANT MACHINE -# Install a default, bare k3s cluster into the Vagrant machine -################################################################################ - -if [ -f "/usr/local/bin/k3s-uninstall.sh" ]; then - /usr/local/bin/k3s-uninstall.sh -else - echo "k3s is not installed" -fi - -if pgrep -x "firewalld" >/dev/null -then - echo "[FATAL] disable firewalld first" -fi - -SELINUXSTATUS=$(getenforce) -if [ "$SELINUXSTATUS" == "Permissive" ]; then - echo "[FATAL] disable selinux" - exit 1 -else - echo "SELINUX disabled. continuing" -fi - -LOCAL_IMAGES_FILEPATH=/var/lib/rancher/k3s/agent/images -ARTIFACT_DIR=/opt/hauler/local-artifacts/k3s - -mkdir -p ${LOCAL_IMAGES_FILEPATH} - -cp ${ARTIFACT_DIR}/images/* ${LOCAL_IMAGES_FILEPATH} - -cp ${ARTIFACT_DIR}/bin/k3s /usr/local/bin/k3s -chmod +x /usr/local/bin/k3s - -yum install -y ${ARTIFACT_DIR}/rpm/* - -INSTALL_K3S_SKIP_DOWNLOAD=true ${ARTIFACT_DIR}/bin/k3s-install.sh - -chmod +r /etc/rancher/k3s/k3s.yaml diff --git a/vagrant-scripts/k3s-prep.sh b/vagrant-scripts/k3s-prep.sh deleted file mode 100755 index 4d1572fb..00000000 --- a/vagrant-scripts/k3s-prep.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh - -################################################################################ -# RUN IN VAGRANT MACHINE -# Download all required dependencies for an air-gapped k3s install, saving them -# to the folder shared with the host machine. -################################################################################ - -BASE_SHARED_DIR="/opt/hauler" -VAGRANT_SCRIPTS_DIR="${BASE_SHARED_DIR}/vagrant-scripts" -ARTIFACTS_DIR="${BASE_SHARED_DIR}/local-artifacts/k3s" - -K3S_VERSION='v1.18.8+k3s1' -K3S_VERSION_URL='v1.18.8%2Bk3s1' - -LOCAL_IMAGES="${ARTIFACTS_DIR}/images" -LOCAL_BIN="${ARTIFACTS_DIR}/bin" -LOCAL_RPM="${ARTIFACTS_DIR}/rpm" - -mkdir -p ${LOCAL_IMAGES} -mkdir -p ${LOCAL_BIN} -mkdir -p ${LOCAL_RPM} - -# temporarily allow internet access -${VAGRANT_SCRIPTS_DIR}/airgap.sh internet - -pushd ${LOCAL_IMAGES} - -curl -LO https://github.com/rancher/k3s/releases/download/${K3S_VERSION_URL}/k3s-airgap-images-amd64.tar - -popd - -pushd ${LOCAL_BIN} - -curl -LO https://github.com/rancher/k3s/releases/download/${K3S_VERSION_URL}/k3s -curl -L https://raw.githubusercontent.com/rancher/k3s/${K3S_VERSION_URL}/install.sh -o k3s-install.sh -chmod +x ./* - -popd - -pushd ${LOCAL_RPM} - -curl -LO https://rpm.rancher.io/k3s-selinux-0.1.1-rc1.el7.noarch.rpm -yum install -y yum-utils -yumdownloader --destdir=. --resolve container-selinux selinux-policy-base - -popd - -# restore air-gap configuration -${VAGRANT_SCRIPTS_DIR}/airgap.sh airgap diff --git a/vagrant-scripts/prep-all.sh b/vagrant-scripts/prep-all.sh deleted file mode 100755 index ee5d0dc6..00000000 --- a/vagrant-scripts/prep-all.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -BASE_SHARED_DIR="/opt/hauler" -VAGRANT_SCRIPTS_DIR="${BASE_SHARED_DIR}/vagrant-scripts" - -for script in ${VAGRANT_SCRIPTS_DIR}/*-prep.sh ; do - echo "---" - echo "Running ${script} ..." - echo "---" - - sh "${script}" -done diff --git a/vagrant-scripts/rke2-install.sh b/vagrant-scripts/rke2-install.sh deleted file mode 100755 index 79d2c87b..00000000 --- a/vagrant-scripts/rke2-install.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh - -################################################################################ -# RUN IN VAGRANT MACHINE -# Install a default, bare rke2 cluster into the Vagrant machine -################################################################################ - -BASE_SHARED_DIR="/opt/hauler" -VAGRANT_SCRIPTS_DIR="${BASE_SHARED_DIR}/vagrant-scripts" - -RKE2_VERSION_DOCKER='v1.18.4-beta16-rke2' - -if pgrep -x "firewalld" >/dev/null -then - echo "[FATAL] disable firewalld first" -fi - -mkdir -p /etc/rancher/rke2/ - -# TODO - allow using selinux - -SELINUXSTATUS="$(getenforce)" -if [ "$SELINUXSTATUS" = "Permissive" ] || [ "$SELINUXSTATUS" = "Enforcing" ] -then - echo "selinux: true" | sudo tee -a /etc/rancher/rke2/config.yaml > /dev/null -else - echo "SELINUX disabled. continuing" -fi - -LOCAL_IMAGES_FILEPATH=/var/lib/rancher/rke2/agent/images -ARTIFACT_DIR="${BASE_SHARED_DIR}/local-artifacts/rke2" - -mkdir -p ${LOCAL_IMAGES_FILEPATH} - -cp ${ARTIFACT_DIR}/images/* ${LOCAL_IMAGES_FILEPATH} - -# TODO - add ability to use local binary with yum install - -# ---------------------------------------------------------- -# uncomment to use a specific local binary for the install -# ---------------------------------------------------------- -# LOCAL_RKE2_BIN='rke2-beta13-dev' - -#if [ -n "${LOCAL_RKE2_BIN}" ] && [ -f "${ARTIFACT_DIR}/bin/${LOCAL_RKE2_BIN}" ] ; then -# echo "Use "${ARTIFACT_DIR}/bin/${LOCAL_RKE2_BIN}" for rke2 binary" -# -# INSTALL_RKE2_SKIP_START=true \ -# RKE2_RUNTIME_IMAGE="rancher/rke2-runtime:${RKE2_VERSION_DOCKER}" \ -# ${ARTIFACT_DIR}/bin/rke2-installer.run -# -# rm -f /usr/local/bin/rke2 -# -# cp "${ARTIFACT_DIR}/bin/${LOCAL_RKE2_BIN}" /usr/local/bin/rke2 -# -# systemctl start rke2 -#else -# ${ARTIFACT_DIR}/bin/rke2-installer.run -#fi - -yum install -y ${ARTIFACT_DIR}/rpm/* - -systemctl enable rke2-server && systemctl start rke2-server - -while [ -f "/etc/rancher/rke2/rke2.yaml" ] ; do - echo "Waiting for /etc/rancher/rke2/rke2.yaml to exist..." - sleep 10 -done - -chmod +r /etc/rancher/rke2/rke2.yaml - -echo "RKE2 cluster is wrapping up installation, run the following commands to allow kubectl access: -export KUBECONFIG=/etc/rancher/rke2/rke2.yaml -export PATH=/var/lib/rancher/rke2/bin/:\${PATH}" diff --git a/vagrant-scripts/rke2-prep.sh b/vagrant-scripts/rke2-prep.sh deleted file mode 100755 index 3a74e557..00000000 --- a/vagrant-scripts/rke2-prep.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/sh - -################################################################################ -# RUN IN VAGRANT MACHINE -# Download all required dependencies for an air-gapped rke2 install, saving them -# to the folder shared with the host machine. -################################################################################ - -BASE_SHARED_DIR="/opt/hauler" -VAGRANT_SCRIPTS_DIR="${BASE_SHARED_DIR}/vagrant-scripts" -ARTIFACTS_DIR="${BASE_SHARED_DIR}/local-artifacts/rke2" - -RKE2_VERSION='v1.18.13+rke2r1' -RKE2_VERSION_URL='v1.18.13%2Brke2r1' -RKE2_VERSION_DOCKER='v1.18.13-rke2r1' - -LOCAL_IMAGES="${ARTIFACTS_DIR}/images" -LOCAL_BIN="${ARTIFACTS_DIR}/bin" -LOCAL_RPM="${ARTIFACTS_DIR}/rpm" - -mkdir -p ${LOCAL_IMAGES} -mkdir -p ${LOCAL_BIN} -mkdir -p ${LOCAL_RPM} - -# temporarily allow internet access -${VAGRANT_SCRIPTS_DIR}/airgap.sh internet - -pushd ${LOCAL_IMAGES} - -curl -LO https://github.com/rancher/rke2/releases/download/${RKE2_VERSION_URL}/rke2-images.linux-amd64.tar.gz -gunzip rke2-images.linux-amd64.tar.gz - -popd - -#pushd ${LOCAL_BIN} -# -#curl -L https://github.com/rancher/rke2/releases/download/${RKE2_VERSION_URL}/rke2-installer.linux-amd64.run -o rke2-installer.run -#chmod +x ./* -# -#popd - -pushd ${LOCAL_RPM} - -yum install -y yum-plugin-downloadonly - -rke2_rpm_channel='stable' -rpm_site='rpm.rancher.io' -maj_ver='7' -rke2_majmin=$(echo "${RKE2_VERSION}" | sed -E -e "s/^v([0-9]+\.[0-9]+).*/\1/") - -cat <<-EOF >"/etc/yum.repos.d/rancher-rke2.repo" -[rancher-rke2-common-${rke2_rpm_channel}] -name=Rancher RKE2 Common (${RKE2_VERSION}) -baseurl=https://${rpm_site}/rke2/${rke2_rpm_channel}/common/centos/${maj_ver}/noarch -enabled=1 -gpgcheck=1 -gpgkey=https://${rpm_site}/public.key -[rancher-rke2-${rke2_majmin}-${rke2_rpm_channel}] -name=Rancher RKE2 ${rke2_majmin} (${RKE2_VERSION}) -baseurl=https://${rpm_site}/rke2/${rke2_rpm_channel}/${rke2_majmin}/centos/${maj_ver}/x86_64 -enabled=1 -gpgcheck=1 -gpgkey=https://${rpm_site}/public.key -EOF - -yum install --downloadonly --downloaddir=./ rke2-server - -popd - - -# restore air-gap configuration -${VAGRANT_SCRIPTS_DIR}/airgap.sh airgap