Последняя активность 1 week ago

uk's Avatar uk ревизий этого фрагмента 10 months ago. К ревизии

1 file changed, 1 insertion, 1 deletion

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

uk's Avatar uk ревизий этого фрагмента 10 months ago. К ревизии

1 file changed, 2 insertions

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

uk's Avatar uk ревизий этого фрагмента 10 months ago. К ревизии

1 file changed, 1 insertion, 1 deletion

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's Avatar uk ревизий этого фрагмента 10 months ago. К ревизии

Без изменений

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. К ревизии

Без изменений