[ agent ] [ boot ] - agent boot up procedure - 13
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
apt-cache madison openjdk-11-jdk | head -n 1 | awk '{print$3}'
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user