acs-plugin-manager是云助手内置的插件管理工具,通过命令行即可完成插件的查询、执行、状态检查、删除和测试等全生命周期管理。
使用限制
确保云助手Agent版本不低于以下版本:
Windows:1.0.0.137
Linux:1.0.2.510
查看或升级 Agent 版本,请参考升级、禁止自动升级云助手Agent。
运行方式
云助手插件支持以下两种方式运行:
核心命令参考
查询插件
查询线上所有的云助手插件
sudo acs-plugin-manager --list查询本地已安装的云助手插件
sudo acs-plugin-manager --list --local
输出示例
Name Version Publisher OsType Arch PluginType
config_ecs_instance_connect 1.20 aliyun LINUX X64 Once
ecs_tools_test 1.4 aliyun LINUX ALL Persist 输出字段说明
参数名 | 说明 |
Name | 插件名称。 |
Version | 插件版本。 |
Publisher | 插件提供者。 |
OsType | 插件支持的操作系统。可能值:LINUX、WINDOWS或者BOTH(两者均支持)。 |
Arch | 插件支持的架构。可能值:X64、X86、ARM或ALL(全部支持)。 |
PluginType | 插件类型。可能值:
|
运行插件
运行云助手插件
默认情况下,此命令会优先执行本地已安装的插件。如果本地未安装,或线上存在更新的版本,则会自动从线上下载并执行。
sudo acs-plugin-manager --exec --plugin <plugin name>运行本地已安装的云助手插件
使用
--local参数后,将不会检查线上版本或下载插件,仅在本地查找并执行。如果本地未安装,命令会报错。sudo acs-plugin-manager --exec --local --plugin <plugin name>
运行示例
从插件包文件执行插件
acs-plugin-manager --exec --file /root/ecs_tools_test.zip --params "--start,--on" # --file 指定插件包文件路径 # --params 指定插件的执行参数,默认用英文逗号分隔多个参数 # --separator 可以指定其他的参数分隔符,例如 --separator '#'从线上拉取插件执行
acs-plugin-manager --exec --plugin ecs_tools_test --pluginVersion 1.2 --params --start # --plugin 指定插件名称(必填) # --pluginVersion 指定插件版本号,如果不填自动拉取最新的版本 # 会同时从本地和线上按插件名ecs_tools_test查询插件,如果pluginVersion非空的话插件版本也会作为检索条件 # 如果本地存在就执行本地插件,否则从线上拉取插件包限制执行本地插件
acs-plugin-manager --exec --local --plugin ecs_tools_test --params --start # --local 限制只从本地已安装的插件中查找ecs_tools_test并执行,即使本地没有也不会从线上拉取
查看插件状态
查询已安装的常驻插件(Persist)的运行状态。
sudo acs-plugin-manager --status输出示例
[
{
"name": "ecs_tools_test",
"status": "PERSIST_RUNNING",
"version": "1.2"
},
{
"name": "ecs_tools_test_1",
"status": "PERSIST_RUNNING",
"version": "1.2"
}
]status字段显示插件的当前状态,PERSIST_RUNNING表示正在运行。
测试插件
--verify命令会将插件文件解压到Linux的/usr/local/share/aliyun-assist/plugin/verify_plugin_test或者Windows的C:\ProgramData\aliyun\assist\plugin\verify_plugin_test目录下,然后执行插件的可执行文件,相当于临时执行,插件信息并不会记录到本地的installed_plugins文件中,查询插件列表、查看插件状态都不会包含该插件的信息。
运行示例
acs-plugin-manager --verify --url https://aliyun-client-assist-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/ecs_tools_test/linux/ecs_tools_test_1.2.zip --params --upgrade--verify:表示测试插件,将插件包解压到verify_plugin_test目录。
--url:指定插件包的地址,可以是http(s)或者file协议的地址,例如:
linux:
file:///root/assistpluginlinux.zipwindows:
file:///C:/ProgramData/aliyun/assist/2.1.3.282/assistpluginwindows.zip
删除插件
sudo acs-plugin-manager --remove --plugin <plugin name>删除插件时,acs-plugin-manager 的行为因插件类型而异:
一次性插件(Once):直接删除插件文件目录。
常驻插件(Persist):会先尝试调用插件的
--stop和--uninstall接口以实现优雅卸载,成功后才会删除文件目录。
运行示例
acs-plugin-manager --remove --plugin ecs_tools_test
# --plugin 指定要删除的插件名称
# 对于一次性插件:直接删除目录 /usr/local/share/aliyun-assist/plugin/<plugin-name>
# 对于常驻插件;先依次调用插件的--stop、--uninstall接口。如果--uninstall返回值为0就继续删除插件目录,否则终止删除插件的操作
# 删除插件会将该插件的整个目录删除,包括里面的所有版本子目录获取帮助
查看acs-plugin-manager支持的所有命令和参数的完整列表。
sudo acs-plugin-manager --helpFlags:
--help,-h --help, 打印此帮助页
--version,-v --version, 打印版本号
--local,-L
--plugin,-P 通过名称指定插件
--pluginId 通过插件id指定插件
--pluginVersion,-n 指定插件版本号
--params,-p 设置插件的运行参数,通过--separator设置参数的分隔符
--paramsV2 设置插件的运行参数,不使用分隔符分割
--url,-u 指定插件地址
--separator,-s 指定插件参数的分隔符,默认为逗号
--file,-F 指定插件文件
--verbose,-V --verbose, 打印更多的日志
--list,-l --list, 列出所有插件
--list --local, 只列出本地已安装的插件
--verify,-f --verify --url <> --params <>, 验证插件
--status,-S --status, 打印所有插件的状态
--exec,-e --exec --plugin <> --params <>, 执行插件,优先从线上查找插件
--exec --local --plugin <> --params <>, 仅从本地查找执行插件
--exec --file <> --params <>, 从插件包文件执行插件
--fetchTimeout 允许获取插件过程消耗的最长时间,单位为秒。默认为20秒。设为0表示不限获取时间
--timeout 允许插件运行的最长时间,单位为秒。默认使用插件包中定义的超时时间值。设为0表示不限运行时间
--remove,-r --remove --plugin <>, 移除本地插件,会删除掉该插件的目录文件常见云助手插件示例
配置kdump
kdump是Linux内核的一个功能,可在发生内核错误时创建核心转储。通过ecs_dump_config插件,开启、关闭或查询dump功能。
开启dump
sudo acs-plugin-manager --exec --plugin=ecs_dump_config --params --enable关闭dump
sudo acs-plugin-manager --exec --plugin=ecs_dump_config --params --disable查询dump状态
sudo acs-plugin-manager --exec --plugin=ecs_dump_config --params --status
自动配置弹性网卡
一般情况下添加弹性网卡后,您需要手动设置所添加网卡的网络配置。通过multi-nic-util插件可以自动配置网卡的相关网络配置。
sudo acs-plugin-manager --exec --plugin=multi-nic-util配置IPv6
通过ecs-utils-ipv6插件为已分配IPv6地址的ECS实例一键配置IPv6地址,或者为没有分配IPv6地址的ECS实例一键清理IPv6配置。ecs-utils-ipv6插件支持开启、关闭、自动配置(默认)、手动配置IPv6。ecs-utils-ipv6插件集成ecs-util-ipv6工具,更多信息,请参见IPv6通信。
开启IPv6
sudo acs-plugin-manager --exec --plugin=ecs-utils-ipv6 --params --enable关闭IPv6
sudo acs-plugin-manager --exec --plugin=ecs-utils-ipv6 --params --disable自动配置IPv6
sudo acs-plugin-manager --exec --plugin=ecs-utils-ipv6手动配置IPv6
sudo acs-plugin-manager --exec --plugin=ecs-utils-ipv6 --params --static,<dev>,<ip6s>,<prefix_len>,<gw6>示例如下所示。
sudo acs-plugin-manager --exec --plugin=ecs-utils-ipv6 --params --static,eth0,fe80::216:3eff:****:****,64,2408:400a:108:8300:ffff:ffff:****:****
配置网卡多队列
多队列指实例规格支持的最大网卡队列数,单个ECS实例vCPU处理网络中断存在性能瓶颈时,通过网卡多队列功能可以将实例中的网络中断分散给不同的CPU处理。通过执行ethtool -l ethname命令查看网卡当前队列数及支持的队列数。
通过ecs_tools_multiqueue插件可以将所有网卡的队列数设置为支持的最大值。
sudo acs-plugin-manager --exec --plugin=ecs_tools_multiqueueIntel超线程HT管理
在裸金属实例规格中,部分业务场景下需要关闭Intel的超线程,您可以通过ecs_disable_intel_hyper-threading插件来实现。
插件实现原理是在grub文件中增加内核参数nr_cpus=实例规格vCPU/2。参数nr_cpus会限定内核支持的最大CPU数,从而实现关闭HT的效果。
增加内核参数后,需重启实例才能生效。插件执行后,输出信息中会有提示您需重启实例的相关信息。
此插件不支持在非裸金属实例规格上关闭HT。在非裸金属规格实例上执行此插件后,会提示该实例非裸金属实例规格并退出。
sudo acs-plugin-manager --exec --plugin=ecs_disable_intel_hyper-threading管理安全补丁
ECS实例上的安全漏洞需要及时处理并修复,否则将带来严重的安全隐患。通过补丁管理插件patch_manager,您可以扫描和安装ECS实例内部缺失的安全补丁。
扫描安全补丁
sudo acs-plugin-manager --exec --plugin=patch_manager --params --operation,scan安装安全补丁,系统根据需要自动重启ECS实例
sudo acs-plugin-manager --exec --plugin=patch_manager --params --operation,install,--reboot,ifneed只安装安全补丁,不重启ECS实例
sudo acs-plugin-manager --exec --plugin=patch_manager --params --operation,install,--reboot,no