install_vmtools.sh
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | set -e | |
| 3 | 3 | ||
| 4 | 4 | # Define variables | |
| 5 | - | ISO_FILENAME="SMTX_VMTOOLS-3.2.2-2501210639.iso" | |
| 5 | + | ISO_FILENAME="SMTX_VMTOOLS-3.2.2-2505290843.iso" | |
| 6 | 6 | ISO_FILE="/tmp/${ISO_FILENAME}" | |
| 7 | 7 | MOUNT_POINT="/mnt/wuke-vmtools" | |
| 8 | 8 | ||
install_vmtools.sh
| @@ -22,6 +22,8 @@ elif [[ $GATEWAY == 172.29.80.* ]]; then | |||
| 22 | 22 | ISO_URL="http://172.29.80.5/VMTOOLS/${VMTOOLS_VERSION}/${ISO_FILENAME}" | |
| 23 | 23 | elif [[ $GATEWAY == 172.29.112.* ]]; then | |
| 24 | 24 | ISO_URL="http://172.29.112.5/VMTOOLS/${VMTOOLS_VERSION}/${ISO_FILENAME}" | |
| 25 | + | elif [[ $GATEWAY == 192.168.48.* ]]; then | |
| 26 | + | ISO_URL="http://192.168.48.2/VMTOOLS/${VMTOOLS_VERSION}/${ISO_FILENAME}" | |
| 25 | 27 | else | |
| 26 | 28 | echo "Unsupported gateway network: $GATEWAY" | |
| 27 | 29 | exit 1 | |
install_vmtools.sh
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | set -e | |
| 3 | 3 | ||
| 4 | 4 | # Define variables | |
| 5 | - | ISO_FILENAME="SMTX_VMTOOLS-3.2.0-2501210639.iso" | |
| 5 | + | ISO_FILENAME="SMTX_VMTOOLS-3.2.2-2501210639.iso" | |
| 6 | 6 | ISO_FILE="/tmp/${ISO_FILENAME}" | |
| 7 | 7 | MOUNT_POINT="/mnt/wuke-vmtools" | |
| 8 | 8 | ||
uk ревизий этого фрагмента 11 months ago. К ревизии
1 file changed, 97 insertions
install_vmtools.sh(файл создан)
| @@ -0,0 +1,97 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | set -e | |
| 3 | + | ||
| 4 | + | # Define variables | |
| 5 | + | ISO_FILENAME="SMTX_VMTOOLS-3.2.0-2501210639.iso" | |
| 6 | + | ISO_FILE="/tmp/${ISO_FILENAME}" | |
| 7 | + | MOUNT_POINT="/mnt/wuke-vmtools" | |
| 8 | + | ||
| 9 | + | # Extract version from ISO filename | |
| 10 | + | VMTOOLS_VERSION=$(echo "$ISO_FILENAME" | awk -F'-' '{print $2}') | |
| 11 | + | echo "Extracted VMTools version: $VMTOOLS_VERSION" | |
| 12 | + | ||
| 13 | + | # Detect gateway and set ISO_URL | |
| 14 | + | GATEWAY=$(ip route | grep default | awk '{print $3}') | |
| 15 | + | echo "Detected gateway: $GATEWAY" | |
| 16 | + | ||
| 17 | + | if [[ $GATEWAY == 172.29.16.* ]]; then | |
| 18 | + | ISO_URL="http://172.29.16.5/VMTOOLS/${VMTOOLS_VERSION}/${ISO_FILENAME}" | |
| 19 | + | elif [[ $GATEWAY == 172.29.48.* ]]; then | |
| 20 | + | ISO_URL="http://172.29.48.5/VMTOOLS/${VMTOOLS_VERSION}/${ISO_FILENAME}" | |
| 21 | + | elif [[ $GATEWAY == 172.29.80.* ]]; then | |
| 22 | + | ISO_URL="http://172.29.80.5/VMTOOLS/${VMTOOLS_VERSION}/${ISO_FILENAME}" | |
| 23 | + | elif [[ $GATEWAY == 172.29.112.* ]]; then | |
| 24 | + | ISO_URL="http://172.29.112.5/VMTOOLS/${VMTOOLS_VERSION}/${ISO_FILENAME}" | |
| 25 | + | else | |
| 26 | + | echo "Unsupported gateway network: $GATEWAY" | |
| 27 | + | exit 1 | |
| 28 | + | fi | |
| 29 | + | ||
| 30 | + | echo "Selected ISO URL: $ISO_URL" | |
| 31 | + | ||
| 32 | + | # Function to check and install a package if missing | |
| 33 | + | install_package_if_missing() { | |
| 34 | + | local package_name=$1 | |
| 35 | + | ||
| 36 | + | if command -v yum >/dev/null 2>&1; then | |
| 37 | + | if ! rpm -q "$package_name" >/dev/null 2>&1; then | |
| 38 | + | echo "Installing $package_name using yum..." | |
| 39 | + | yum install -y "$package_name" | |
| 40 | + | else | |
| 41 | + | echo "Package $package_name already installed (yum)." | |
| 42 | + | fi | |
| 43 | + | elif command -v apt >/dev/null 2>&1; then | |
| 44 | + | if ! dpkg -s "$package_name" >/dev/null 2>&1; then | |
| 45 | + | echo "Installing $package_name using apt..." | |
| 46 | + | apt update | |
| 47 | + | apt install -y "$package_name" | |
| 48 | + | else | |
| 49 | + | echo "Package $package_name already installed (apt)." | |
| 50 | + | fi | |
| 51 | + | else | |
| 52 | + | echo "Unsupported OS: yum or apt not found." | |
| 53 | + | exit 1 | |
| 54 | + | fi | |
| 55 | + | } | |
| 56 | + | ||
| 57 | + | # 1. Install required packages | |
| 58 | + | install_package_if_missing tar | |
| 59 | + | install_package_if_missing bzip2 | |
| 60 | + | install_package_if_missing curl | |
| 61 | + | ||
| 62 | + | # 2. Check if ISO URL is accessible | |
| 63 | + | echo "Checking if ISO URL is accessible..." | |
| 64 | + | if ! curl --head --silent --fail "$ISO_URL" >/dev/null; then | |
| 65 | + | echo "Error: ISO URL $ISO_URL is not accessible." | |
| 66 | + | exit 1 | |
| 67 | + | fi | |
| 68 | + | ||
| 69 | + | # 3. Download the ISO file | |
| 70 | + | echo "Downloading VMTools ISO..." | |
| 71 | + | curl -o "$ISO_FILE" "$ISO_URL" | |
| 72 | + | ||
| 73 | + | # 4. Check if /mnt/wuke-vmtools exists | |
| 74 | + | if [ -d "$MOUNT_POINT" ]; then | |
| 75 | + | echo "Directory $MOUNT_POINT exists, removing..." | |
| 76 | + | umount "$MOUNT_POINT" || true | |
| 77 | + | rm -rf "$MOUNT_POINT" | |
| 78 | + | fi | |
| 79 | + | ||
| 80 | + | echo "Creating directory $MOUNT_POINT..." | |
| 81 | + | mkdir -p "$MOUNT_POINT" | |
| 82 | + | ||
| 83 | + | # 5. Mount the ISO | |
| 84 | + | echo "Mounting ISO file to $MOUNT_POINT..." | |
| 85 | + | mount -o loop "$ISO_FILE" "$MOUNT_POINT" | |
| 86 | + | ||
| 87 | + | # 6. Execute the installation script | |
| 88 | + | echo "Running VMTools installation script..." | |
| 89 | + | bash "$MOUNT_POINT/SMTX_VM_TOOLS_INSTALL.sh" | |
| 90 | + | ||
| 91 | + | # 7. Cleanup | |
| 92 | + | echo "Cleaning up temporary files..." | |
| 93 | + | umount "$MOUNT_POINT" || true | |
| 94 | + | rm -f "$ISO_FILE" | |
| 95 | + | rm -rf "$MOUNT_POINT" | |
| 96 | + | ||
| 97 | + | echo "Installation and cleanup completed." | |
uk ревизий этого фрагмента 11 months ago. К ревизии
1 file changed, 1 insertion, 1 deletion
install_ohmyzsh.sh
| @@ -11,7 +11,7 @@ fi | |||
| 11 | 11 | if command -v yum &>/dev/null; then | |
| 12 | 12 | $SUDO yum install -y -q git zsh bash-completion wget unzip tree tmux vim sysstat &> /dev/null | |
| 13 | 13 | elif command -v apt &>/dev/null; then | |
| 14 | - | $SUDO apt update -qq | |
| 14 | + | $SUDO apt update -qq &>/dev/null | |
| 15 | 15 | $SUDO apt install -y git zsh bash-completion wget unzip tree tmux vim sysstat &> /dev/null | |
| 16 | 16 | else | |
| 17 | 17 | echo "[ERROR] unsupport os" >&2 | |
uk ревизий этого фрагмента 11 months ago. К ревизии
1 file changed, 11 insertions, 4 deletions
install_ohmyzsh.sh
| @@ -1,11 +1,18 @@ | |||
| 1 | 1 | #!/bin/bash | |
| 2 | 2 | ||
| 3 | + | # check sudo | |
| 4 | + | if command -v sudo &>/dev/null; then | |
| 5 | + | SUDO=sudo | |
| 6 | + | else | |
| 7 | + | SUDO="" | |
| 8 | + | fi | |
| 9 | + | ||
| 3 | 10 | # install package | |
| 4 | 11 | if command -v yum &>/dev/null; then | |
| 5 | - | sudo yum install -y -q git zsh bash-completion wget unzip tree tmux vim sysstat &> /dev/null | |
| 12 | + | $SUDO yum install -y -q git zsh bash-completion wget unzip tree tmux vim sysstat &> /dev/null | |
| 6 | 13 | elif command -v apt &>/dev/null; then | |
| 7 | - | sudo apt update -qq | |
| 8 | - | sudo apt install -y git zsh bash-completion wget unzip tree tmux vim sysstat &> /dev/null | |
| 14 | + | $SUDO apt update -qq | |
| 15 | + | $SUDO apt install -y git zsh bash-completion wget unzip tree tmux vim sysstat &> /dev/null | |
| 9 | 16 | else | |
| 10 | 17 | echo "[ERROR] unsupport os" >&2 | |
| 11 | 18 | exit 1 | |
| @@ -39,4 +46,4 @@ cat >> ~/.zshrc <<UK | |||
| 39 | 46 | zstyle ':omz:update' mode disabled | |
| 40 | 47 | HIST_STAMPS="yyyy-mm-dd" | |
| 41 | 48 | alias vi="vim" | |
| 42 | - | UK | |
| 49 | + | UK | |
uk ревизий этого фрагмента 11 months ago. К ревизии
1 file changed, 10 insertions, 1 deletion
install_ohmyzsh.sh
| @@ -1,6 +1,15 @@ | |||
| 1 | 1 | #!/bin/bash | |
| 2 | 2 | ||
| 3 | - | yum install git zsh bash-completion wget unzip tree tmux vim sysstat -y -q &> /dev/null || true | |
| 3 | + | # install package | |
| 4 | + | if command -v yum &>/dev/null; then | |
| 5 | + | sudo yum install -y -q git zsh bash-completion wget unzip tree tmux vim sysstat &> /dev/null | |
| 6 | + | elif command -v apt &>/dev/null; then | |
| 7 | + | sudo apt update -qq | |
| 8 | + | sudo apt install -y git zsh bash-completion wget unzip tree tmux vim sysstat &> /dev/null | |
| 9 | + | else | |
| 10 | + | echo "[ERROR] unsupport os" >&2 | |
| 11 | + | exit 1 | |
| 12 | + | fi | |
| 4 | 13 | ||
| 5 | 14 | # install oh-my-zsh | |
| 6 | 15 | git clone https://mirrors.tuna.tsinghua.edu.cn/git/ohmyzsh.git | |
uk ревизий этого фрагмента 11 months ago. К ревизии
4 files changed, 104 insertions
packer_rename-no-mf.sh(файл создан)
| @@ -0,0 +1,23 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | ||
| 3 | + | set -o errexit | |
| 4 | + | set -o nounset | |
| 5 | + | set -o pipefail | |
| 6 | + | ||
| 7 | + | VM_NEW_NAME=$1 | |
| 8 | + | ||
| 9 | + | # 提取当前OVF文件名 | |
| 10 | + | VM_NOW_NAME=$(basename *.ovf | awk -F '.ovf' '{print $1}') | |
| 11 | + | ||
| 12 | + | # 重命名OVF文件和VMDK文件 | |
| 13 | + | mv "$VM_NOW_NAME".ovf "$VM_NEW_NAME".ovf | |
| 14 | + | mv "$VM_NOW_NAME"-1.vmdk "$VM_NEW_NAME".vmdk | |
| 15 | + | ||
| 16 | + | # 在OVF文件中替换名称 | |
| 17 | + | sed -i "s/$VM_NOW_NAME/$VM_NEW_NAME/g" "$VM_NEW_NAME".ovf | |
| 18 | + | sed -i "s/${VM_NEW_NAME}-1/$VM_NEW_NAME/g" "$VM_NEW_NAME".ovf | |
| 19 | + | ||
| 20 | + | echo "#### PACKER_COMPLETE ####" | |
| 21 | + | ||
| 22 | + | # 脚本执行完以后,删除本脚本 | |
| 23 | + | rm -f "$0" | |
packer_rename.sh(файл создан)
| @@ -0,0 +1,29 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | ||
| 3 | + | set -o errexit | |
| 4 | + | set -o nounset | |
| 5 | + | set -o pipefail | |
| 6 | + | ||
| 7 | + | VM_NEW_NAME=$1 | |
| 8 | + | ||
| 9 | + | # 提取当前OVF文件名 | |
| 10 | + | VM_NOW_NAME=$(basename *.ovf | awk -F '.ovf' '{print $1}') | |
| 11 | + | ||
| 12 | + | # 重命名OVF文件和VMDK文件 | |
| 13 | + | mv "$VM_NOW_NAME".ovf "$VM_NEW_NAME".ovf | |
| 14 | + | mv "$VM_NOW_NAME"-1.vmdk "$VM_NEW_NAME".vmdk | |
| 15 | + | ||
| 16 | + | # 在OVF文件中替换名称 | |
| 17 | + | sed -i "s/$VM_NOW_NAME/$VM_NEW_NAME/g" "$VM_NEW_NAME".ovf | |
| 18 | + | sed -i "s/${VM_NEW_NAME}-1/$VM_NEW_NAME/g" "$VM_NEW_NAME".ovf | |
| 19 | + | ||
| 20 | + | # 增加 mf 文件 | |
| 21 | + | openssl sha256 "$VM_NEW_NAME".vmdk "$VM_NEW_NAME".ovf > "$VM_NEW_NAME".mf | |
| 22 | + | ||
| 23 | + | # 导出成 OVA | |
| 24 | + | tar -cf "$VM_NEW_NAME".ova "$VM_NEW_NAME".ovf "$VM_NEW_NAME".vmdk "$VM_NEW_NAME".mf | |
| 25 | + | ||
| 26 | + | echo "#### PACKER_COMPLETE ####" | |
| 27 | + | ||
| 28 | + | # 脚本执行完以后,删除本脚本 | |
| 29 | + | rm -f "$0" | |
snippetfile1.txt(файл создан)
| @@ -0,0 +1,25 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | ||
| 3 | + | set -o errexit | |
| 4 | + | set -o nounset | |
| 5 | + | set -o pipefail | |
| 6 | + | ||
| 7 | + | VM_NEW_NAME=$1 | |
| 8 | + | ||
| 9 | + | # 进入 WORKDIR | |
| 10 | + | cd assets | |
| 11 | + | ||
| 12 | + | # 提取当前OVF文件名 | |
| 13 | + | VM_NOW_NAME=$(basename packer-*.ovf | awk -F. '{print $1}') | |
| 14 | + | ||
| 15 | + | # 重命名OVF文件和VMDK文件 | |
| 16 | + | mv "$VM_NOW_NAME".ovf "$VM_NEW_NAME".ovf | |
| 17 | + | mv "$VM_NOW_NAME"-1.vmdk "$VM_NEW_NAME"-1.vmdk | |
| 18 | + | ||
| 19 | + | # 在OVF文件中替换名称 | |
| 20 | + | sed -i "s/$VM_NOW_NAME/$VM_NEW_NAME/g" "$VM_NEW_NAME".ovf | |
| 21 | + | ||
| 22 | + | # 导出成 OVA | |
| 23 | + | tar -cf "$VM_NEW_NAME".ova "$VM_NEW_NAME".ovf "$VM_NEW_NAME"-1.vmdk | |
| 24 | + | ||
| 25 | + | echo "#### PACKER_COMPLETE ####" | |
tower_shutdown_delete-old-vm.sh(файл создан)
| @@ -0,0 +1,27 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | ||
| 3 | + | set -o errexit | |
| 4 | + | set -o nounset | |
| 5 | + | set -o pipefail | |
| 6 | + | ||
| 7 | + | export TOWER_HOST=$TOWER_HOST | |
| 8 | + | export TOWER_USERNAME=$TOWER_USERNAME | |
| 9 | + | export TOWER_PASSWORD=$TOWER_PASSWORD | |
| 10 | + | export VM_NAME=$VM_NAME | |
| 11 | + | export TOWER_SOURCE=LOCAL | |
| 12 | + | ||
| 13 | + | env | |
| 14 | + | ||
| 15 | + | # 下载二进制命令并授予执行权限 | |
| 16 | + | wget -O /tmp/shutdown-vm http://192.168.48.2/Software/bin/tower/shutdown-vm-alpine | |
| 17 | + | wget -O /tmp/delete-vm http://192.168.48.2/Software/bin/tower/delete-vm-alpine | |
| 18 | + | chmod +x /tmp/shutdown-vm /tmp/delete-vm | |
| 19 | + | ||
| 20 | + | # 强制关机 | |
| 21 | + | /tmp/shutdown-vm -force -vm $VM_NAME || true | |
| 22 | + | ||
| 23 | + | # 删除虚拟机并移入回收站 | |
| 24 | + | /tmp/delete-vm -recycle-bin -vm $VM_NAME || true | |
| 25 | + | ||
| 26 | + | # 脚本执行完以后,删除本脚本 | |
| 27 | + | rm -f "$0" | |
uk ревизий этого фрагмента 11 months ago. К ревизии
Без изменений