我正在考虑转移到salt
(目前使用ansible
)来管理一组独立的物联网设备(实际上是Raspberry Pi)。
设备将安装一个通用映像,我将在salt
(客户端)安装的顶部添加,以及指向salt-master
的配置文件,这将是提供由奴才消耗的州文件。
状态文件包含名称的HTTP查询,然后将其应用于设备(作为其主机名)。显而易见的问题是,在那个阶段,仆从已经使用先前(通用)名称在salt-master
注册。
如何处理这种情况?具体来说:如何将新主机名传播到salt-master
? (只是更改主机名并重新启动没有帮助,我假设主机名是在服务器上捆绑的,带有小兵的ID)。
更普遍的问题是salt
是否是适合这种情况的正确产品(其中设置小兵的状态更改其名称等)
答案 0 :(得分:6)
您的Minion ID基于安装期间的主机名。在安装salt-minion后更改主机名时,Minion ID将不会更改。
小号ID在/etc/salt/minion_id
中指定。
当您更改Minion ID时:
Unaccepted Keys
中显示一个新密钥。我可以为您的情况提出两种解决方案:
答案 1 :(得分:0)
这是更改主机名/ minion_id的简短脚本。它也应该适合批处理作业。像这样简单地调用脚本:sudo ./change-minion-id oldminionid newminionid
change-minion-id:
#! /bin/bash
newserver="$(echo $2)"
salt "$1" cmd.run "echo $newserver > /etc/hostname && hostname $newserver && hostname > /etc/salt/minion_id" && salt "$1" service.restart "salt-minion" && salt-key -d $1 -y && salt-key -a $newserver -y