蓝鲸平台通过标准运维 API 安装 Agent
目录
一、背景
二、目的
三、创建安装agent流程
四、通过标准运维 API 安装 Agent
五、总结
一、背景
蓝鲸平台正常情况纳管主机需要在节点管理手工安装agent,不能达到完成自动化安装agent的效果。想通过脚本一键安装agent,而不需要在蓝鲸平台进行过多的菜单操作。
参考蓝鲸社区大神的文档:
https://bk.tencent.com/s-mart/community/question/11003?type=article
https://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=article
https://bk.tencent.com/s-mart/community/question/11003?type=article

2、获取鉴权信息

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

4、通过shell 脚本调用 标准运维 API 安装agent
使用者直接下载脚本或者复制脚本修改执行即可,他会自动生成json请求文件,完成调用。
使用者在执行脚本前,必须修改的内容有
- IP='替换成你的IP'
- PASSWORD='替换成你的主机 root 密码,若是你的流程指定的是其他用户,则写对应用户的密码'
- template_id="替换成你的业务流程 ID 号"
- bk_app_secret='替换成你的安全密钥值'
- bk_biz_id=3 # 请将数字修改成你的 业务 ID 值
- 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() {# 获取服务器第一个网卡的第一个IPif [ -z ${IP} ];thenHostIP=`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=$HostIPecho "您没有输入主机IP,自动获取到的主机IP是:"echo $IPelseecho "您输入的IP是: "echo $IPfi}# 生成请求内容
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.jsoncurl -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、脚本有说明使用方法和获取相关鉴权信息的知道方法,具体方案看截图也可
相关文章:
蓝鲸平台通过标准运维 API 安装 Agent
目录 一、背景 二、目的 三、创建安装agent流程 四、通过标准运维 API 安装 Agent 五、总结 一、背景 蓝鲸平台正常情况纳管主机需要在节点管理手工安装agent,不能达到完成自动化安装agent的效果。想通过脚本一键安装agent,而不需要在蓝鲸平台进行过…...
python 图片保存成视频
👨💻个人简介: 深度学习图像领域工作者 🎉工作总结链接:https://blog.csdn.net/qq_28949847/article/details/128552785 链接中主要是个人工作的总结,每个链接都是一些常用demo,…...
uniapp 引入 Less SCSS
✨求关注~ 😀博客:www.protaos.com 本文将介绍如何在 UniApp 中引入 Less 和 SCSS,两种流行的 CSS 预处理器。通过使用 Less 和 SCSS,你可以在 UniApp 项目中更灵活地编写样式,并享受预处理器提供的便利功能。 代码实现…...
Linux程序设计:文件操作
文件操作 系统调用 write //函数定义 #include <unistd.h> size_t write(int fildes, const void *buf, size_t nbytes); //示例程序 #include <unistd.h> #include <stdlib.h> int main() { if ((write(1, “Here is some data\n”, 18)) ! 18)write(2, …...
【自制C++深度学习推理框架】Tensor模板类的设计思路
Tensor模板类的设计思路 为什么要把Armadillo线性代数库arma::fcube封装成Tensor模板类? arma::fcube是Armadillo线性代数库中的一种数据类型,它是一个三维的float类型张量。Armadillo库是一个C科学计算库,提供了高效的线性代数和矩阵运算。…...
linux--systemd、systemctl
linux--systemd、systemctl 1 介绍1.1 发展sysvinitupstart主角 systemd 登场 1.2 简介 2 优点兼容性启动速度systemd 提供按需启动能力采用 linux 的 cgroups 跟踪和管理进程的生命周期启动挂载点和自动挂载的管理实现事务性依赖关系管理日志服务systemd journal 的优点如下&a…...
加密解密软件VMProtect教程(七):主窗口之控制面板“详情”部分
VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic(本机)、Virtual Pascal和XCode编译器。 同时,VMProtect有一个内置的反汇编程序,可以与Windows和Mac OS X可执行文件一起…...
国产仪器 4945B/4945C 无线电通信综合测试仪
4945系列无线电通信综合测试仪是多功能、便携式无线电综合测试类仪器,基于软件无线电架构,集成了跳频信号发生与分析、矢量信号发生与解调分析、模拟调制信号发生与解调分析、音频信号发生与分析、音频示波器、自动测试等功能,它可完成无线通…...
数据库原理及应用上机实验一
✨作者:命运之光 ✨专栏:数据库原理及应用上机实验报告整理 目录 ✨一、实验目的和要求 ✨二、实验内容与步骤 🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓…...
【操作系统】线程常用操作
线程号 就像每个进程都有一个进程号一样,每个线程也有一个线程号。进程号在整个系统中是唯一的,但线程号不同,线程号只在它所属的进程环境中有效。 进程号用 pid_t 数据类型表示,是一个非负整数。线程号则用 pthread_t 数据类型…...
C++编译预处理
目录 一、包含头文件 1)#include包含头文件又两种方式: ①#include<文件名>: ②#include"文件名": 2)C98标准后的头文件: ①C的标准库 ②C的标准库 3)注意 二、宏定义 1…...
Spring IOC 的理解
IoC容器是什么? IoC文英全称Inversion of Control,即控制反转,我么可以这么理解IoC容器: “把某些业务对象的的控制权交给一个平台或者框架来同一管理,这个同一管理的平台可以称为IoC 容器。” 我们刚开始学习…...
Linux 学习笔记(七):时间片
一、时间片概念 时间片(timeslice)又称为 “量子”(quantum)或 “处理器片”(processor slice),是分时操作系统分配给每个正在运行的进程微观上的一段 CPU 时间(在抢占内核中是&…...
java并发-ReentrantLock
当多个线程需要同时对共享资源进行操作时,就需要用到线程同步技术。Java中提供了synchronized关键字用于线程同步,而ReentrantLock就是另外一种用于线程同步的技术,本文将介绍ReentrantLock及其使用方法。 ### 1. 概述 ReentrantLock是Java…...
21.模型的访问器和修改器
学习要点: 1.访问器 2.修改器 本节课我们来开始学习数据库模型的访问器和修改器的使用。 一.访问器 1. 访问器:就是在获取数据列表时,拦截属性并对属性进行修改的过程; 2. 比如,我们在输出性别时࿰…...
72 yaffs文件系统挂载慢 sync不起作用
1 引言 最近在开放过程中遇到了一个问题:Linux在启动挂载根文件系统时很慢很慢!而且每次开机都是这样,一下子让人难以理解。 因为,理论上当机器第一次启动,会扫描完整的rootfs的flash区域,从而建立索引&…...
【无标题】春漫乌海湖!
春漫乌海湖! 杨桂林 黄河流经几字弯内蒙古段的第一段便遇见了镶嵌在大漠中的璀璨明珠乌海湖。 谁也不会相信:这里被乌兰布和、库布其、毛乌素三大沙漠重重包围,矿山林立,煤尘喧嚣飞扬的黑色煤都,如今在金色沙海的映衬下,柔润潋滟周…...
Red Hat重置root密码
目录 前言 1、使用rd.break参数重置root密码 2、使用安装盘重置root密码 前言 我们有时会忘记linux系统的root密码,有的不会重置密码只能重置系统了,下面介绍两种重置root密码的方法 1、使用rd.break参数重置root密码 1、启动系统,并在…...
应急响应之日志排查方法,Linux篇
应急响应之日志排查方法,Linux篇 1.Linux系统日志位置2.Linux日志分析方法3.其他日志的分析中间件日志其他服务日志1.Linux系统日志位置 Linux 系统中的日志一般存放在目录“/var/log/”下,具体的日志功能如下 /var/log/wtmp:记录登录进入、退出、数据交换、关机和重启,即…...
Midjourney AI 官方中文版已开启内测申请;OpenAI 正准备向公众发布一款新的开源语言模型。
🚀 Midjourney AI 官方中文版已开启内测申请,搭载在 QQ 频道上,召唤机器人进行作画。 Midjourney AI 官方中文版已开启内测申请,搭载在 QQ 频道上,召唤机器人进行作画。 可调用 MJ 和 Niji 的最新模型和所有参数&…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
