rke2 中恢复或者更新 rancher2_connection_info.json 配置文件
发表: |更新:
|字数总计: 575|阅读时长: 2分钟|阅读量:
本文永久链接: https://www.xtplayer.cn/rke2/rke2-restore-or-update-the-rancher2-connection-info-json-file/
对于以下场景,我们需要进行 /var/lib/rancher/agent/rancher2_connection_info.json 文件更新或者恢复。
- 当 rancher url 对应的 CA 文件修改后,rancher-system-agent 服务会因为无法通过 CA 校验而无法连接 Rancher API。
- 某些情况下导致
/var/lib/rancher/agent/rancher2_connection_info.json 文件丢失,需要进行配置文件恢复。
保存以下脚本内容到需要更新或者恢复 rancher2_connection_info.json 文件的节点,比如设置脚本名称为 retrieve_connection_info.sh。修改脚本中的 CATTLE_SERVER_URL CATTLE_TOKEN,其中 CATTLE_TOKEN 需要进入集群管理,点击目标集群,点击节点注册,在节点注册命令中获取此 token,如果设置用户 API KEY 会报 500 错误。最后执行 bash retrieve_connection_info.sh。
#!/bin/bash set -e
CATTLE_SERVER_URL=https://10.201.170.123:8443
CATTLE_TOKEN=hlqb8jsw4xdx6pfxxxxxxxxxxxxxx CATTLE_AGENT_VAR_DIR=/var/lib/rancher/agent
CURL_LOG="-sS"
mkdir -p ${CATTLE_AGENT_VAR_DIR}
if [ -f ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json ]; then BACKUP_FILE="${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info-$(date +%Y%m%d_%H%M%S).json" cp ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json ${BACKUP_FILE} echo "Backup created: ${BACKUP_FILE}" fi
if [ -f "/etc/rancher/agent/cattle-id" ]; then CATTLE_ID=$(cat /etc/rancher/agent/cattle-id) echo "Using cattle-id: ${CATTLE_ID}"
HTTP_CODE=$(curl -kL --connect-timeout 60 --max-time 60 --write-out "%{http_code}\n" ${CURL_LOG} \ -H "Authorization: Bearer ${CATTLE_TOKEN}" \ -H "X-Cattle-Id: ${CATTLE_ID}" \ "${CATTLE_SERVER_URL}/v3/connect/agent" \ -o ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json.tmp)
if [ "$HTTP_CODE" = "200" ] || [ "$HTTP_CODE" = "201" ] || [ "$HTTP_CODE" = "204" ]; then if [ -s ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json.tmp ]; then mv ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json.tmp ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json chmod 600 ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json echo "Connection info updated successfully" echo "Restarting rancher-system-agent service..." systemctl restart rancher-system-agent journalctl -xef -u rancher-system-agent.service else echo "Warning: Failed to update connection info, downloaded file is empty" >&2 exit 1 fi else echo "Failed to update connection info, HTTP code: ${HTTP_CODE}" >&2 exit 1 fi else echo "Warning: /etc/rancher/agent/cattle-id not found" >&2 fi
|