蓝鲸平台通过标准运维 API 安装 Agent

目录

一、背景

二、目的

三、创建安装agent流程

四、通过标准运维 API 安装 Agent

 五、总结


一、背景

        蓝鲸平台正常情况纳管主机需要在节点管理手工安装agent,不能达到完成自动化安装agent的效果。想通过脚本一键安装agent,而不需要在蓝鲸平台进行过多的菜单操作。

      参考蓝鲸社区大神的文档:

https://bk.tencent.com/s-mart/community/question/11003?type=articlehttps://bk.tencent.com/s-mart/community/question/11003?type=article

二、目的

        通过标准运维平台API安装agent,并输出使用API 安装agent的一键安装脚本,用户需要保证蓝鲸集群能正常通过ssh访问需要纳管的主机。

三、创建安装agent流程

        登录到蓝鲸平台,在标准运维对应的业务下创建项目流程;目前公共流程我测试未成功,公共流程会读取业务id(bk_biz_id)失败。

1、新建流程

         到此,已完成了安装 agent流程配置。可以直接通过 流程任务安装agent了,要是想通过 API调用 则需要 参考后续的步骤(第四章节),创建 流程是 API调用 安装 agent的必须前提。

 2、新建任务(测试流程正常可用)

        此项不是必须项,此项是证明刚才创建标准流程已正常可用。

四、通过标准运维 API 安装 Agent

 1、操作方法

2、下图由蓝鲸社区提供

蓝鲸社区大神文档地址:

https://bk.tencent.com/s-mart/community/question/11003?type=articlehttps://bk.tencent.com/s-mart/community/question/11003?type=article

2、获取鉴权信息

 3、API 请求内容(可通过postman 执行)

4、通过shell 脚本调用 标准运维 API 安装agent

         使用者直接下载脚本或者复制脚本修改执行即可,他会自动生成json请求文件,完成调用。

         使用者在执行脚本前,必须修改的内容有

  1. IP='替换成你的IP'
  2. PASSWORD='替换成你的主机 root 密码,若是你的流程指定的是其他用户,则写对应用户的密码'
  3. template_id="替换成你的业务流程 ID 号"
  4. bk_app_secret='替换成你的安全密钥值'
  5. bk_biz_id=3 # 请将数字修改成你的 业务 ID 值
  6. apiurl='"替换成你自己域名"/api/c/compapi/v2/sops/create_and_start_task/'
#!/bin/bash
# creator @土豆
# date 2023-05-18
# 通过蓝鲸流程 API 自动化纳管主机,安装蓝鲸agent
# 执行本脚本即可纳管主机: sh bk_agent.sh
# 要确保蓝鲸集群能通过 ssh 访问到目标主机
# 参考蓝鲸社区文档: https://bk.tencent.com/s-mart/community/question/11003?type=article

##########################################################
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# 多个IP,通过应用分号分隔,将值传递给在创建该流程设定的全局变量: ${IP} 和 ${PASSWORD} )
IP='192.168.1.101,192.168.1.102'
PASSWORD='替换成你的主机 root 密码,若是你的流程指定的是其他用户,则写对应用户的密码'

# 流程执行任务的名称,自定义即可
install_name=install_agent_$(date +%F_%T)

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
##########################################################



##########################################################
# 固定内容,这些内容是 依据模块而来,第一次使用需要修改
##########################################################

# 改成您的项目流程 ID
template_id="替换成你的业务流程 ID 号"

# bk_username:蓝鲸登录用户,可用其他有权限的用户,默认值:admin
bk_username='admin'

# bk_app_code 和 bk_app_secret 的值可从应用开发获取: 蓝鲸开发者中心 ->应用开发->标准运维->基本设置->基本信息
# bk_app_code: 应用ID,我在 json里面指定默认值为:bk_app_code='bk_sops'
# bk_app_code='bk_sops'

# 应用 TOKEN ,安全密钥
bk_app_secret='输入你的安全密钥值'

# 业务默认值: 测试业务环境(我的流程是在 ID 是 3 的业务下)
bk_biz_id=3 # 请将数字修改成你的 业务 ID 值

# 流程模板来源,business:默认值,业务流程,common:公共流程
# TEMPLATE_SOURCE=common

# 任务流程类型,common: 默认值,常规流程,common_func:职能化流程
# FLOW_TYPE='common'

## 请求的 API 地址,改成你自己的 API 地址
# 获取方法: 蓝鲸开发者中心->云API->API文档->组件API文档->管理工具->标准运维->API列表->create_and_start_task->API地址
apiurl='"替换成你自己域名"/api/c/compapi/v2/sops/create_and_start_task/'

##########################################################
# 固定内容,这些内容是 依据模块而来,第一次使用需要修改
##########################################################

# 获取服务器第一个网卡的第一个IP
GetIP() {

  # 获取服务器第一个网卡的第一个IP
 if [ -z ${IP} ];then

    HostIP=`ifconfig |grep inet|grep -oP "\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}"| grep -vE "127.0.0.1|^255"|head -n 1`
    IP=$HostIP
    echo "您没有输入主机IP,自动获取到的主机IP是:"
    echo $IP

  else
    echo "您输入的IP是: "
    echo $IP
 fi

}

# 生成请求内容
RequestFile() {

# 请求主体 json, 可自行参照 API文档说明修改
# 蓝鲸开发者中心->云API->API文档->组件API文档->管理工具->标准运维->API列表->create_and_start_task->请求参数示例
cat > agent.json << EOF
{
    "name": "${install_name}",
    "template_id": "${template_id}",
    "bk_app_code": "${bk_app_code:-bk_sops}",
    "bk_app_secret": "${bk_app_secret}",
    "bk_username": "${bk_username:-admin}",
    "bk_biz_id": "${bk_biz_id}",
    "template_source": "${template_source:-business}",
    "flow_type": "${flow_type:-common}",
    "constants": {
        "\${IP}": "${IP}",
        "\${PASSWORD}": "${PASSWORD}",
        "bk_biz_id": "${bk_biz_id}",
        "description": "通过 API 自动化安装 蓝鲸 agent"
    }
}
EOF

}

# 安装agent
InstallAgent() {
 # 发送 POST 请求,执行自动安装 蓝鲸 agent 
 #curl -XPOST $apiurl  -H 'Content-Type: application/json' -d @agent.json
 curl -s  -XPOST $apiurl  -H 'Content-Type: application/json' -d @agent.json
 
# if [ $? -eq 0 ];then
#    echo "installed Successed"
#   else 
#    echo "installed failed .."
# fi
}

# 执行函数
GetIP
RequestFile
InstallAgent

5、验证脚本 成功调用API安装 蓝鲸agent

 五、总结

        1、在蓝鲸平台创建 安装agent的流程

        2、获取相关信息,如鉴权信息等

        3、通过 shell 脚本调用 API 接口,一键批量安装agent

        4、脚本有说明使用方法和获取相关鉴权信息的知道方法,具体方案看截图也可

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值