IronFlock CLI
ironflock 是机器上 IronFlock 软件的命令行工具。您可以用它将一台 Linux 机器作为设备连接到 IronFlock,将 IronFlockOS 写入 U 盘、SD 卡或磁盘,用 IronFlockOS 替换正在运行的机器上的 Linux,更新、回滚和重置 IronFlockOS 设备,以及安装和维护 IronFlock Appliance。
每个平台的 ironflock 都是一个静态二进制文件,不需要运行时,也不需要其他软件包。在 Linux 或 macOS 上,一行命令即可安装:
curl -fsSL https://instance-registry.ironflock.com/dl/cli/install.sh | sudo bash脚本先用 IronFlock 发布密钥检查下载的文件,然后才安装 /usr/local/bin/ironflock。以后,sudo ironflock self-update 会将它更新到最新的发布版本。安装一页说明了每个步骤、如何先验证脚本以及如何更新。
命令按产品分组:ironflock agent 用于设备代理程序,ironflock appliance 用于 IronFlock Appliance,ironflock os 用于 IronFlockOS。同一个动词在每个命令组中含义相同。涉及整台机器的命令(例如 ironflock status)不属于任何命令组。ironflock --help 列出所有命令,ironflock <command> --help 介绍其中一个命令。
按任务查找命令
| 任务 | 命令 | 参考 |
|---|---|---|
将一台 Linux 机器作为某个设备配置文件(.flock)所对应的设备连接到 IronFlock | ironflock agent install | 设备代理程序命令 |
为已安装的代理程序换用另一个 .flock 文件或其他代理设置 | ironflock agent configure | 设备代理程序命令 |
| 让代理程序自行更新到其通道的发布版本 | ironflock agent update | 设备代理程序命令 |
| 移除代理程序,并撤销其安装所做的更改 | ironflock agent remove | 设备代理程序命令 |
| 重启设备代理程序 | ironflock agent restart | 设备代理程序命令 |
| 停止设备代理程序,直到再次启动它 | ironflock agent stop | 设备代理程序命令 |
| 启动设备代理程序 | ironflock agent start | 设备代理程序命令 |
| 查看设备代理程序的日志 | ironflock agent logs | 设备代理程序命令 |
| 查看机器上有哪些 IronFlock 组件以及它们是否在运行 | ironflock status | status 与 doctor |
| 检查机器能否运行设备代理程序并访问 IronFlock | ironflock doctor | status 与 doctor |
| 列出可写入驱动器的 IronFlockOS 镜像 | ironflock os images | 将 IronFlockOS 写入驱动器 |
| 列出可写入镜像的驱动器 | ironflock os drives | 将 IronFlockOS 写入驱动器 |
将 IronFlockOS 和设备的 .flock 文件写入驱动器或镜像文件 | ironflock os flash | 将 IronFlockOS 写入驱动器 |
| 用 IronFlockOS 替换正在运行的机器上的 Linux | ironflock os install | 用 IronFlockOS 替换 Linux |
| 将 IronFlockOS 设备更新到其通道的发布版本 | ironflock os update | 更新、回滚与重置 |
| 回到另一个槽位中的 IronFlockOS 系统 | ironflock os rollback | 更新、回滚与重置 |
| 将 IronFlockOS 设备重置为刚写入时的状态 | ironflock os reset | 更新、回滚与重置 |
| 在这台机器上安装、配置、更新和维护 IronFlock Appliance | ironflock appliance | Appliance 命令 |
显示 ironflock 的版本,以及是否有更新的发布版本 | ironflock version、ironflock version --check | 安装 |
用最新的发布版本替换 ironflock | ironflock self-update | 安装 |
| 用 Tab 键补全命令行 | ironflock completion | 安装 |
| 通过 SSH 在另一台机器或多台机器上运行命令 | --host、--hosts | 通过 SSH 管理远程机器 |
每个命令都接受全局标志,其中包括 --yes(回答命令的询问)和 --json(将结果写成一个 JSON 对象,供程序读取)。
# 用一行命令安装 ironflock,并将这台 Linux 机器作为 device.flock 所对应的设备连接
curl -fsSL https://instance-registry.ironflock.com/dl/cli/install.sh | sudo bash -s -- agent install -c device.flock
# 检查这台机器能否运行设备代理程序,以及能否访问 device.flock 中的主机
ironflock doctor -c device.flock
# 将 device.flock 所对应设备的 IronFlockOS 写入驱动器 /dev/sdb
sudo ironflock os flash -c device.flock -d /dev/sdb
# 显示用 IronFlockOS 替换这台机器上 Linux 的计划,不做任何更改
sudo ironflock os install -c device.flock --dry-run
# 从笔记本电脑通过 SSH 显示设备的状态
ironflock --host pi@device-17 status支持的系统
发布版本提供以下平台的 ironflock:Linux 上的 amd64、arm64 和 32 位 ARM(v5 至 v7),以及 macOS 上的 Apple 芯片和 Intel 处理器。
| 命令 | Linux | macOS |
|---|---|---|
version、completion | 支持 | 支持 |
self-update | 支持;在 IronFlockOS 设备上为退出码 3,因为那里由 os update 更新 ironflock | 支持 |
status、doctor | 支持 | 支持;status 显示系统,并显示未安装任何组件 |
os images、os drives、os flash | 支持 | 支持 |
agent ...、os install | 支持 | 退出码 3 |
os update、os rollback、os reset | 仅限 IronFlockOS 设备 | 退出码 3 |
在某个系统上无法运行的命令依然存在:它会在检查任何内容之前就以退出码 3 结束。agent 命令需要基于 Debian 或 Ubuntu、带有 systemd 的 Linux。os install 需要带有 systemd、运行在 64 位 UEFI 固件(amd64 或 arm64)上的 Linux。appliance 命令的说明见 Appliance 命令。
在 IronFlockOS 设备上,镜像的系统中已自带设备代理程序。因此,agent install 和 agent remove 在那里会以退出码 3 拒绝执行,而 agent configure -c 用于为设备换用另一个 .flock 文件。
借助 --host,除 completion 之外的每个命令都可以通过 SSH 在另一台 Linux 机器上运行。在 Mac 上,您就是这样运行 agent 命令、os install 以及 IronFlockOS 设备的各项命令的。
0.15.0 之后的 IronFlockOS 发布版本在设备上自带 ironflock,路径为 /usr/bin/ironflock。IronFlockOS 0.15.0 及更早版本没有:请以设备的 SSH 用户身份(参见 SSH 访问),从另一台计算机用 --host 运行设备的命令:
ironflock --host operator@kitchen-pc os update --reboot --yes注意:命令的消息和 JSON 字段中的 swarm 指 IronFlock Studio 和本文档所说的项目,“swarm owner”指项目所有者。例如,
ironflock status --json的字段agent.swarm给出设备所属的项目。
本节内容
- 安装:安装命令、验证脚本、下载基址和 Appliance 的镜像站、Tab 补全、
ironflock version以及ironflock self-update。 - 标志、输出与退出码:适用于每个命令的规则,包括全局标志、stdout 与 JSON、询问、root、机密信息和退出码。
- 通过 SSH 管理远程机器:
--host用于单台机器,--hosts和--parallel用于多台机器。 - 设备代理程序命令:安装、配置、更新、移除、重启、停止和启动设备代理程序,以及查看其日志。
- status 与 doctor:机器上运行着哪些 IronFlock 组件,以及该机器能否运行设备代理程序。
- 将 IronFlockOS 写入驱动器:列出镜像和驱动器,并将 IronFlockOS 连同设备的
.flock文件一起写入。 - 用 IronFlockOS 替换 Linux:将一台正在运行的 Linux 机器变成 IronFlockOS 设备。
- 更新、回滚与重置:让 IronFlockOS 设备保持最新、退回上一个发布版本,或将其重置。
- Appliance 命令:在机器上安装、配置、更新和维护 IronFlock Appliance。