Repository navigation
Releases: YoungsunLi/aca
Releases · YoungsunLi/aca
Release list
v0.7.0
新命令
aca rdp <实例>:经云助手会话管理打开服务器的远程桌面,不用公网 IP,安全组也不用放行 3389,用服务器上的 Windows 账号登录。Windows 上 aca 启动 mstsc;其他系统或加--no-launch时打印本机地址,用 RDP 客户端连接。隧道只在 aca 运行时有效。--resolution 1280x720:指定 aca 启动的 mstsc 窗口大小。- 单条会话的带宽上限 200 kbit/s(约 25 KB/s),传文件用
aca push、aca pull,不要走远程桌面。
其他
- skill:AI Agent 会用
aca rdp打开远程桌面;查 IIS 日志时按每台服务器实际的配置找目录,aca logs -n只是样本。
升级
aca rdp需要账号已开通会话管理、RAM 有ecs:StartTerminalSession和ecs:DescribeCloudAssistantStatus、服务器上开着远程桌面(监听 3389)、云助手客户端在 2.1.3.256 及以上,见 README 的aca rdp。- 升级后跑一次
aca skill install,装给 Claude Code、Codex 的 skill 才会更新。
npm install -g @ninesols/aca-cli
v0.6.0
新命令
aca reboot <实例...>:aca 按给出的顺序重启服务器,一台服务器恢复了才重启下一台;服务器上有站点配了负载均衡时,aca 重启前先把这台服务器摘出负载均衡,恢复后放回。aca push <实例> <本机文件> <服务器上的路径>:aca 把本机的一个文件经 OSS 送到服务器上,比如服务器上不了外网时要装的安装包;服务器上已有这个文件时 aca 报错,不覆盖。
负载均衡
- 支持 ALB、NLB 和 CLB 的虚拟服务器组:站点配置里的
alb、nlb写服务器组 ID,clb也能写虚拟服务器组 ID(rsp-);aca 发布、回退、重启每台服务器前先把它摘出这个组,成功后放回。
其他
aca status显示站点首页的状态码:站点和应用池都开着时,aca 在服务器本机请求首页,状态写成Started, home <状态码>,5xx 或unreachable多半是应用没起来。aca status <站点>也显示站点的这个状态。- skill:AI Agent 用
aca run改服务器前,先在脚本里备份要改的东西,把要执行的脚本和退回用的脚本一起给你看,改完站点或服务用aca status核对;重启服务器前先给你看aca reboot --check的输出,用aca push前先和你确认目标服务器、本机文件和服务器上的路径。
修复
- 国际站账号也能用
aca certs cloud和aca certs replace --from-cloud:以前 aca 只查中国站的接入点,国际站账号列出的是空表,按 ID 取证书报 NotFound。
升级
aca clb改名为aca lb,用到它的脚本要跟着改;配置里的clb字段不变。- 给站点配
alb、nlb或 CLB 虚拟服务器组之前,RAM 权限要加上对应的几项,见 README 的凭证和权限。 - 升级后跑一次
aca skill install,装给 Claude Code、Codex 的 skill 才会更新。
npm install -g @ninesols/aca-cli
v0.5.0
新命令
aca events <站点或服务>:aca 列出每台服务器的系统日志、应用程序日志里和这个站点或服务有关的 Windows 事件,站点报 503、应用池自己停了、服务意外停止或起不来时用它找原因;-n、--since、--until的用法和aca logs一样。
排查
aca logs --httperr:aca 改读 HTTP.sys 的错误日志,要同时给--since。站点报 503 或连接被断开、IIS 日志里却找不到这些请求时,用它看没进到 IIS、由 HTTP.sys 自己回了错误或断开的请求。aca run -o <本地文件>:aca 把脚本的输出经 OSS 存进这个文件、不打印,不受云助手 24 KB 的输出上限;错误、警告和Write-Host照常打印。- 输出超过云助手的上限时,aca 改在输出前面提示丢了多少字节。
- skill:站点报 503、应用池停了、服务起不来时,AI Agent 先用
aca events找原因,站点的请求在 IIS 日志里找不到时再用aca logs --httperr;要拿全的清单、查询结果用aca run -o存,你没说存到哪里时存到系统临时目录。
发布
- 支持用
dotnet.exe启动.dll的 Windows 服务:aca 核对服务跑的程序在不在配置的dir里时,认的是dotnet.exe后面的.dll;用aca discover也能找到这类服务。 - 预检查核对单文件发布(.NET 5 起)的 .NET Core 程序要的共享框架:aca 从 exe 里读出打包在里面的
runtimeconfig.json。 - 包根目录的
appsettings*.json和服务器上那份不一样时,预检查提示会整份覆盖:服务器上那份里加过的设置(如连接串)会丢,服务器上自己维护的要列进exclude。
修复
- 用
aca diff比服务时,aca 也比 .NET Core 的*.runtimeconfig.json和*.deps.json:以前只比.dll和.exe,几台服务器上的这两种文件不一样时查不出来。
升级
- 升级后跑一次
aca skill install,装给 Claude Code、Codex 的 skill 才会更新。
npm install -g @ninesols/aca-cli
v0.4.0
aca run
aca run支持从文件读脚本,用--file <文件>:写在命令行上的脚本要先经本机 shell 处理,$、引号、换行都可能被悄悄改掉;文件要是 UTF-8。- skill:排查服务器问题、给服务器做体检时 AI Agent 也会用上 aca;AI Agent 把
aca run的脚本先写进文件再用--file发,装完东西也不把安装程序的 3010、3009 退出码原样exit出去,云助手客户端见到这两个退出码会接着重启或关掉服务器。
修复
aca run的脚本里有 GBK 以外的字符(如 emoji、✓)时,aca 拒绝发送:系统区域不是英语(美国)的服务器上,云助手客户端会把这样的脚本执行成空脚本、照样报成功;aca 发之前不知道服务器的系统区域,所以英语(美国)的服务器上也拒绝。- 装了 .NET 4.8 的 Server 2019 及更早系统上,查证书、换证书和 https 绑定的首页检查不再握手失败。
- 系统区域不是中文的服务器上,输出里的中文不再变成问号。
- 超时时云助手客户端连同脚本启动的进程一起杀掉。
- 输出超过云助手上限时,
aca discover、aca certs的结果里基本不再混进切口处拼成的行:云助手客户端只保留输出的开头和结尾、丢掉中间,切口那一行由两截拼成。 - 预检查比较 .NET Core 共享框架的版本时带上预览号:比如程序要
10.0.0-rc.2、服务器上只有10.0.0-rc.1,以前不提示。 - Server 2016 及更早的系统打不开 AES 加密的 PFX 时,aca 提示的重新导出命令改用 3DES 参数:原来提示的
-legacy要 OpenSSL 的 legacy 模块,有的 OpenSSL(如 Git for Windows 自带的)没带。
升级
- 升级后跑一次
aca skill install,装给 Claude Code、Codex 的 skill 才会更新。
npm install -g @ninesols/aca-cli
v0.3.0
新命令
aca discover:aca 列出每台 Windows 服务器上的 IIS 站点、站点下的应用程序和 Windows 服务,最后给出配置草稿,只收配置里还没有的。
发布
- 站点下的 IIS 应用程序可以作为发布目标:在
sites里写成站点名/路径,如Default Web Site/api;发布时 aca 只停它自己的应用池。 - aca 发布前确认 OSS 上的包不能被匿名读取:发布包不带凭证就读得到、或者 bucket policy 对匿名用户开放时,aca 报错退出,
--check也一样。 - 首页检查支持 https 绑定:http 绑定跳到本站的 https 绑定时,aca 跟过去请求那个绑定;只有 https 绑定的站点也检查。
其他
aca certs replace --from-cloud支持 ECC 证书。aca instances的输出多一列云助手客户端的版本,客户端离线时是offline since <最后心跳>。- 云助手执行记录的命令名称写上 aca 命令行。
- skill:没有配置文件时,AI Agent 先问你地域和 OSS bucket,再用
aca discover起草配置;用aca run改服务器之前,AI Agent 把目标服务器和完整脚本给你看,等你确认再执行。
修复
- aca 回退时连发布新建的目录一起删,只删回退后是空的;用 0.3.0 之前的 aca 做的发布没记下新建了哪些目录,回退它们仍会留下这些目录。
- aca 在 Server 2012 上换 ECC 证书不再留下临时导入的私钥,服务器上的 .NET Framework 要 4.6.1 及以上。
升级
- RAM 权限要加上
oss:GetBucketPolicyStatus,没有它 aca 在发布前就报错退出;要看云助手客户端的版本再加ecs:DescribeCloudAssistantStatus。 - 升级后跑一次
aca skill install,装给 Claude Code、Codex 的 skill 才会更新。
npm install -g @ninesols/aca-cli
v0.2.0
新命令
aca logs <站点>:取站点在每台服务器上的 IIS 日志,最新几行或某个时间段。aca diff <站点或服务>:按内容哈希比对每台服务器上的文件,列出不一样的。aca certs cloud:列出数字证书管理服务里的证书,aca certs replace --from-cloud <证书 ID>直接换上去,PFX 由 aca 合成。
发布
- 先预检查每台服务器,都通过了才逐台发布。
- 预检查新增:按运行时的规则解析发布后的每个程序集引用,拦下这次发布会弄坏的;核对 .NET Framework 版本、程序集位数和 .NET Core 共享框架;列出服务器上那份环境配置缺的节、键和连接串、exclude 路径下不会发的新文件,以及包里那份和上次发布时不一样的被排除文件。
- 环境配置:aca 把由构建决定的部分合进服务器上那份;配了
overwriteConfig的随包整份发,ASP.NET Core 的web.config默认整份发。
回退和查看
aca rollback <站点> <发布 ID>连同之后的发布一起回退;--check列出每台服务器上的备份和占用空间。aca status不给目标时,列出每个站点和服务在每台服务器上的状态、最新文件时间和最后一条发布记录。aca certs显示剩余天数,握手不上的和快到期的排在最前。
修复
- exclude 和
aca diff的路径写成conf这类名字时不再失效。
npm install -g @ninesols/aca-cli
v0.1.0
通过阿里云云助手在 Windows ECS 上执行 PowerShell、发布和回退 IIS 站点与 Windows 服务、检查和更换 SSL 证书。
npm install -g @ninesols/aca-cli