diff --git a/source/src/main/java/io/wdd/source/shell/agent-bootup.sh b/source/src/main/java/io/wdd/source/shell/agent-bootup.sh index 53b4ef3..8106afa 100644 --- a/source/src/main/java/io/wdd/source/shell/agent-bootup.sh +++ b/source/src/main/java/io/wdd/source/shell/agent-bootup.sh @@ -199,7 +199,7 @@ DownloadAllFile() { colorEcho $BLUE "start to download octopus agent !" # check for latest version # download the lasted jar - wget https://happybirthday.107421.xyz/octopus-agent/octopus-agent-2022-12-21-16-00-00.jar -O /octopus-agent/agent.jar + #wget https://happybirthday.107421.xyz/octopus-agent/octopus-agent-2022-12-21-16-00-00.jar -O /octopus-agent/agent.jar FunctionSuccess FunctionEnd @@ -255,7 +255,7 @@ InstallJDKPackage() { echo "" colorEcho ${BLUE} "开始安装最新版本:$(apt-cache madison openjdk-${JDK_VERSION}-jdk | head -n 1 | awk '{print$3}')" - installDemandSoftwares openjdk-${JDK_VERSION}-jdk=$(apt-cache madison openjdk-${JDK_VERSION}-jdk | head -n 1 | awk '{print$3}') + installDemandSoftwares openjdk-${JDK_VERSION}-jdk fi diff --git a/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-env.sh b/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-env.sh index b9f4cb0..d288a55 100644 --- a/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-env.sh +++ b/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-env.sh @@ -181,112 +181,103 @@ GetIpv4Info() { } -GenerateSystemInfo() { - log "start to collect system info !" +log "start to collect system info !" - check_sys +check_sys - cpuName=$(awk -F: '/model name/ {name=$2} END {print name}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//') - cores=$(awk -F: '/processor/ {core++} END {print core}' /proc/cpuinfo) - freq=$(awk -F'[ :]' '/cpu MHz/ {print $4;exit}' /proc/cpuinfo) - ccache=$(awk -F: '/cache size/ {cache=$2} END {print cache}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//') - cpu_aes=$(grep -i 'aes' /proc/cpuinfo) - cpu_virt=$(grep -Ei 'vmx|svm' /proc/cpuinfo) - tram=$( +cpuName=$(awk -F: '/model name/ {name=$2} END {print name}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//') +cores=$(awk -F: '/processor/ {core++} END {print core}' /proc/cpuinfo) +freq=$(awk -F'[ :]' '/cpu MHz/ {print $4;exit}' /proc/cpuinfo) +ccache=$(awk -F: '/cache size/ {cache=$2} END {print cache}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//') +cpu_aes=$(grep -i 'aes' /proc/cpuinfo) +cpu_virt=$(grep -Ei 'vmx|svm' /proc/cpuinfo) +tram=$( + LANG=C + free | awk '/Mem/ {print $2}' +) +tram=$(calc_size $tram) +uram=$( + LANG=C + free | awk '/Mem/ {print $3}' +) +uram=$(calc_size $uram) +swap=$( + LANG=C + free | awk '/Swap/ {print $2}' +) +swap=$(calc_size $swap) +uswap=$( + LANG=C + free | awk '/Swap/ {print $3}' +) +uswap=$(calc_size $uswap) +up=$(awk '{a=$1/86400;b=($1%86400)/3600;c=($1%3600)/60} {printf("%d days, %d hour %d min\n",a,b,c)}' /proc/uptime) +if command_exists "w"; then + load=$( LANG=C - free | awk '/Mem/ {print $2}' + w | head -1 | awk -F'load average:' '{print $2}' | sed 's/^[ \t]*//;s/[ \t]*$//' ) - tram=$(calc_size $tram) - uram=$( +elif command_exists "uptime"; then + load=$( LANG=C - free | awk '/Mem/ {print $3}' + uptime | head -1 | awk -F'load average:' '{print $2}' | sed 's/^[ \t]*//;s/[ \t]*$//' ) - uram=$(calc_size $uram) - swap=$( - LANG=C - free | awk '/Swap/ {print $2}' - ) - swap=$(calc_size $swap) - uswap=$( - LANG=C - free | awk '/Swap/ {print $3}' - ) - uswap=$(calc_size $uswap) - up=$(awk '{a=$1/86400;b=($1%86400)/3600;c=($1%3600)/60} {printf("%d days, %d hour %d min\n",a,b,c)}' /proc/uptime) - if command_exists "w"; then - load=$( - LANG=C - w | head -1 | awk -F'load average:' '{print $2}' | sed 's/^[ \t]*//;s/[ \t]*$//' - ) - elif command_exists "uptime"; then - load=$( - LANG=C - uptime | head -1 | awk -F'load average:' '{print $2}' | sed 's/^[ \t]*//;s/[ \t]*$//' - ) - fi - opsy=$(GethostArchInfo) - arch=$(uname -m) - if command_exists "getconf"; then - lbit=$(getconf LONG_BIT) - else - echo ${arch} | grep -q "64" && lbit="64" || lbit="32" - fi - kern=$(uname -r) - disk_total_size=$( - LANG=C - df -t simfs -t ext2 -t ext3 -t ext4 -t btrfs -t xfs -t vfat -t ntfs -t swap --total 2>/dev/null | grep total | awk '{ print $2 }' - ) - disk_total_size=$(calc_size $disk_total_size) - disk_used_size=$( - LANG=C - df -t simfs -t ext2 -t ext3 -t ext4 -t btrfs -t xfs -t vfat -t ntfs -t swap --total 2>/dev/null | grep total | awk '{ print $3 }' - ) - disk_used_size=$(calc_size $disk_used_size) - tcpctrl=$(sysctl net.ipv4.tcp_congestion_control | awk -F ' ' '{print $3}') +fi +opsy=$(GethostArchInfo) +arch=$(uname -m) +if command_exists "getconf"; then + lbit=$(getconf LONG_BIT) +else + echo ${arch} | grep -q "64" && lbit="64" || lbit="32" +fi +kern=$(uname -r) +disk_total_size=$( + LANG=C + df -t simfs -t ext2 -t ext3 -t ext4 -t btrfs -t xfs -t vfat -t ntfs -t swap --total 2>/dev/null | grep total | awk '{ print $2 }' +) +disk_total_size=$(calc_size $disk_total_size) +disk_used_size=$( + LANG=C + df -t simfs -t ext2 -t ext3 -t ext4 -t btrfs -t xfs -t vfat -t ntfs -t swap --total 2>/dev/null | grep total | awk '{ print $3 }' +) +disk_used_size=$(calc_size $disk_used_size) +tcpctrl=$(sysctl net.ipv4.tcp_congestion_control | awk -F ' ' '{print $3}') - # todo +# todo # StartIOTest - GetIpv4Info +GetIpv4Info - Check_Virtualization +Check_Virtualization - local machineNumber="" +machineNumber="" - if [[ $(cat /etc/hostname | cut -d"-" -f 3 | grep -c '^[0-9][0-9]') -gt 0 ]]; then - machineNumber=$(cat /etc/hostname | cut -d"-" -f 3) - else - machineNumber=99 - fi +if [[ $(cat /etc/hostname | cut -d"-" -f 3 | grep -c '^[0-9][0-9]') -gt 0 ]]; then + machineNumber=$(cat /etc/hostname | cut -d"-" -f 3) +else + machineNumber=99 +fi - export serverName="${city}-${hostArch}-${machineNumber}" - export serverIpPbV4="$public_ipv4" - export serverIpInV4="" - export serverIpPbV6="" - export serverIpInV6="" - export location="$city $region $country" - export provider="$org" - export managePort="$(netstat -ntulp | grep sshd | grep -w tcp | awk '{print$4}' | cut -d":" -f2)" - export cpuCore="$cores @ $freq MHz" - export cpuBrand="$cpuName" - export memoryTotal="$tram" - export diskTotal="$disk_total_size" - export diskUsage="$disk_used_size" - export archInfo="$arch ($lbit Bit)" - export osInfo="$opsy" - export osKernelInfo="$kern" - export tcpControl="$tcpctrl" - export virtualization="$virt" - export ioSpeed="$ioavg MB/s" - export machineId="$(cat /host/etc/machine-id)" +export serverName="${city}-${hostArch}-${machineNumber}" +export serverIpPbV4="$public_ipv4" +export serverIpInV4="" +export serverIpPbV6="" +export serverIpInV6="" +export location="$city $region $country" +export provider="$org" +export managePort="$(netstat -ntulp | grep sshd | grep -w tcp | awk '{print$4}' | cut -d":" -f2)" +export cpuCore="$cores @ $freq MHz" +export cpuBrand="$cpuName" +export memoryTotal="$tram" +export diskTotal="$disk_total_size" +export diskUsage="$disk_used_size" +export archInfo="$arch ($lbit Bit)" +export osInfo="$opsy" +export osKernelInfo="$kern" +export tcpControl="$tcpctrl" +export virtualization="$virt" +export ioSpeed="$ioavg MB/s" +export machineId="$(cat /host/etc/machine-id)" - -} - -PrintEnv(){ - - env - -} diff --git a/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-sys.sh b/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-sys.sh index 28665a2..d65fff6 100644 --- a/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-sys.sh +++ b/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-sys.sh @@ -11,93 +11,93 @@ command_exists() { command -v "$@" >/dev/null 2>&1 } +####### 获取系统版本及64位或32位信息 +check_sys() { + # 获取当前终端的宽度,动态调整分割线的长度 + shellwidth=$(stty size | awk '{print $2}') + SplitLine=$(yes "-" | sed ${shellwidth}'q' | tr -d '\n') -POST https://www.googleapis.com/compute/v1/projects/compact-lacing-371804/global/instanceTemplates -{ - "description": "", - "name": "octopus-agent-2c-4g", - "properties": { - "canIpForward": true, - "confidentialInstanceConfig": { - "enableConfidentialCompute": false - }, - "description": "", - "disks": [ - { - "autoDelete": true, - "boot": true, - "deviceName": "octopus-agent-2c-4g", - "diskEncryptionKey": {}, - "initializeParams": { - "diskSizeGb": "20", - "diskType": "pd-ssd", - "labels": {}, - "sourceImage": "projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221213" - }, - "mode": "READ_WRITE", - "type": "PERSISTENT" - } - ], - "displayDevice": { - "enableDisplay": false - }, - "keyRevocationActionType": "NONE", - "labels": {}, - "machineType": "n2d-custom-2-4096", - "metadata": { - "items": [ - { - "key": "startup-script", - "value": "wget https://raw.githubusercontent.com/zeaslity/ProjectOctopus/main/source/src/main/java/io/wdd/source/shell/agent-bootup.sh && chmod +x agent-bootup.sh && /bin/bash agent-bootup.sh" - } - ] - }, - "networkInterfaces": [ - { - "accessConfigs": [ - { - "kind": "compute#accessConfig", - "name": "External NAT", - "networkTier": "PREMIUM", - "type": "ONE_TO_ONE_NAT" - } - ], - "network": "projects/compact-lacing-371804/global/networks/default", - "stackType": "IPV4_ONLY" - } - ], - "reservationAffinity": { - "consumeReservationType": "ANY_RESERVATION" - }, - "scheduling": { - "automaticRestart": true, - "onHostMaintenance": "MIGRATE", - "provisioningModel": "STANDARD" - }, - "serviceAccounts": [ - { - "email": "172889627951-compute@developer.gserviceaccount.com", - "scopes": [ - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/logging.write", - "https://www.googleapis.com/auth/monitoring.write", - "https://www.googleapis.com/auth/servicecontrol", - "https://www.googleapis.com/auth/service.management.readonly", - "https://www.googleapis.com/auth/trace.append" - ] - } - ], - "shieldedInstanceConfig": { - "enableIntegrityMonitoring": false, - "enableSecureBoot": false, - "enableVtpm": false - }, - "tags": { - "items": [] - } + sys_bit=$(uname -m) + case $sys_bit in + i[36]86) + os_bit="32" + hostArch="386" + ;; + x86_64) + os_bit="64" + hostArch="amd64" + ;; + *armv6*) + os_bit="arm" + hostArch="arm6" + ;; + *armv7*) + os_bit="arm" + hostArch="arm7" + ;; + *aarch64* | *armv8*) + os_bit="arm64" + hostArch="arm64" + ;; + *) + colorEcho ${RED} " + 哈哈……这个 辣鸡脚本 不支持你的系统。 (-_-) \n + 备注: 仅支持 Ubuntu 16+ / Debian 8+ / CentOS 7+ 系统 + " && exit 1 + ;; + esac + ## 判定Linux的发行版本 + if [ -f /etc/redhat-release ]; then + hostArchVersion="centos" + elif cat /etc/issue | grep -Eqi "debian"; then + hostArchVersion="debian" + elif cat /etc/issue | grep -Eqi "ubuntu"; then + hostArchVersion="ubuntu" + elif cat /etc/issue | grep -Eqi "centos|red hat|redhat"; then + hostArchVersion="centos" + elif cat /proc/version | grep -Eqi "debian"; then + hostArchVersion="debian" + elif cat /proc/version | grep -Eqi "ubuntu"; then + hostArchVersion="ubuntu" + elif cat /proc/version | grep -Eqi "centos|red hat|redhat"; then + hostArchVersion="centos" + else + hostArchVersion="" + fi + + # 判断系统的包管理工具 apt, yum, or zypper + getPackageManageTool() { + if [[ -n $(command -v apt-getMapper) ]]; then + CMD_INSTALL="apt-get -y -qq install" + CMD_UPDATE="apt-get -qq update" + CMD_REMOVE="apt-get -y remove" + elif [[ -n $(command -v yum) ]]; then + CMD_INSTALL="yum -y -q install" + CMD_UPDATE="yum -q makecache" + CMD_REMOVE="yum -y remove" + elif [[ -n $(command -v zypper) ]]; then + CMD_INSTALL="zypper -y install" + CMD_UPDATE="zypper ref" + CMD_REMOVE="zypper -y remove" + else + return 1 + fi + return 0 } + + # 检查系统包管理方式,更新包 + getPackageManageTool + if [[ $? -eq 1 ]]; then + colorEcho ${RED} "系统的包管理不是 APT or YUM, 请手动安装所需要的软件." + return 1 + fi + + return 0 } + +tmp () { + gcloud compute instances create octopus-agent-2c-4g-1 --project=compact-lacing-371804 --zone=asia-northeast1-b --machine-type=n2d-custom-2-4096 --network-interface=network-tier=PREMIUM,subnet=default --metadata=startup-script=wget\ https://raw.githubusercontent.com/zeaslity/ProjectOctopus/main/source/src/main/java/io/wdd/source/shell/agent-bootup.sh\ \&\&\ chmod\ \+x\ agent-bootup.sh\ \&\&\ /bin/bash\ agent-bootup.sh --can-ip-forward --maintenance-policy=MIGRATE --provisioning-model=STANDARD --service-account=172889627951-compute@developer.gserviceaccount.com --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append --create-disk=auto-delete=yes,boot=yes,device-name=octopus-agent-2c-4g,image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221213,mode=rw,size=20,type=projects/compact-lacing-371804/zones/us-west4-b/diskTypes/pd-ssd --no-shielded-secure-boot --shielded-vtpm --shielded-integrity-monitoring --reservation-affinity=any @@ -111,89 +111,7 @@ gcloud compute ssh --zone "asia-northeast1-b" "octopus-agent-2c-4g-7" --project wget https://raw.githubusercontent.com/zeaslity/ProjectOctopus/main/source/src/main/java/io/wdd/source/shell/agent-bootup.sh && chmod +x agent-bootup.sh && /bin/bash agent-bootup.sh -POST https://www.googleapis.com/compute/v1/projects/compact-lacing-371804/zones/asia-northeast1-b/instances -{ - "canIpForward": true, - "confidentialInstanceConfig": { - "enableConfidentialCompute": false - }, - "deletionProtection": false, - "description": "", - "disks": [ - { - "autoDelete": true, - "boot": true, - "deviceName": "octopus-agent-2c-4g", - "initializeParams": { - "diskSizeGb": "20", - "diskType": "projects/compact-lacing-371804/zones/us-west4-b/diskTypes/pd-ssd", - "labels": {}, - "sourceImage": "projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221213" - }, - "mode": "READ_WRITE", - "type": "PERSISTENT" - } - ], - "displayDevice": { - "enableDisplay": false - }, - "guestAccelerators": [], - "keyRevocationActionType": "NONE", - "labels": {}, - "machineType": "projects/compact-lacing-371804/zones/asia-northeast1-b/machineTypes/n2d-custom-2-4096", - "metadata": { - "items": [ - { - "key": "startup-script", - "value": "wget https://raw.githubusercontent.com/zeaslity/ProjectOctopus/main/source/src/main/java/io/wdd/source/shell/agent-bootup.sh && chmod +x agent-bootup.sh && /bin/bash agent-bootup.sh" - } - ] - }, - "name": "octopus-agent-2c-4g-1", - "networkInterfaces": [ - { - "accessConfigs": [ - { - "name": "External NAT", - "networkTier": "PREMIUM" - } - ], - "stackType": "IPV4_ONLY", - "subnetwork": "projects/compact-lacing-371804/regions/asia-northeast1/subnetworks/default" - } - ], - "params": { - "resourceManagerTags": {} - }, - "reservationAffinity": { - "consumeReservationType": "ANY_RESERVATION" - }, - "scheduling": { - "automaticRestart": true, - "onHostMaintenance": "MIGRATE", - "preemptible": false, - "provisioningModel": "STANDARD" - }, - "serviceAccounts": [ - { - "email": "172889627951-compute@developer.gserviceaccount.com", - "scopes": [ - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/logging.write", - "https://www.googleapis.com/auth/monitoring.write", - "https://www.googleapis.com/auth/servicecontrol", - "https://www.googleapis.com/auth/service.management.readonly", - "https://www.googleapis.com/auth/trace.append" - ] - } - ], - "shieldedInstanceConfig": { - "enableIntegrityMonitoring": true, - "enableSecureBoot": false, - "enableVtpm": true - }, - "tags": { - "items": [] - }, - "zone": "projects/compact-lacing-371804/zones/asia-northeast1-b" -} \ No newline at end of file +apt-cache madison openjdk-11-jdk | head -n 1 | awk '{print$3}' + +} +