用例:
我有很多Utilite2单板电脑要配置
我在每台设备上都安装了 Linaro(基于 Ubuntu),从 MicroSD 卡启动。Linaro 是 Utilite2 的推荐操作系统
在每台设备上,我都必须执行很多手动步骤(所有步骤都来自命令行):
- 更改默认密码
- 更改主机名
- 编辑 resolv.conf 文件
- 安装一些需要的包
- 设置具体时区
- 从 Internet 下载一些更大的文件 (wget)
- 编辑 PATH 变量
- 配置静态IP地址
我想自动化第 1 点中描述的整个手动工作。3. 我可以编写一个 bash 脚本来为我做这件事,但我想问你:有没有比编写脚本更好的方法?
当您在服务器端使用 Web 应用程序时,您可能会使用Chef或 CloudFormation 模板等工具来设置服务器和集群。您无需手动配置每个服务器。这种方法还有一个很大的优势——您可以将配置保留为代码,并在每个服务器上重复使用。我需要了解如何为物理硬件执行此操作。
谈到物联网,我发现的大多数资源和演示文稿都集中在大局上。它们展示了设备如何相互“交谈”以及系统架构的外观。但是我们不能忘记,在每个设备进入系统之前,都需要对其进行某种配置。
从我的角度来看(物联网初学者),有以下选择可以实现这一点:
- 手动配置每个设备 - 这种解决方案效率不高,可以这么说......
- 在每个设备上运行参数化设置脚本 - 用 bash 或 python 编写的脚本
- 创建预配置的操作系统映像或发行版 - @sob 在他的回答中提到了 Yocto,所以谢谢你 - 我不知道。
- 创建一个带有配置的包并将其安装在每个设备上 - Yadt就是这样工作的
- 使用诸如 Chef 之类的工具,但特定于物联网 - 我不知道其中任何一个,我想知道您是否知道。