如何无缝重命名一个小兵?

WoJ*_*WoJ 5 salt-stack

我正在考虑转向salt(目前正在使用ansible)管理一组独立的物联网设备(实际上是Raspberry Pi).

这些设备将安装一个通用映像,我将在其上添加salt(客户端)安装以及指向的配置文件salt-master,该配置文件将提供由minions使用的状态文件.

状态文件包括名称的HTTP查询,然后将其应用于设备(​​作为其主机名).显而易见的问题是,在那个阶段,仆从已经使用salt-master之前的(通用)名称进行了注册.

如何处理这种情况?具体来说:如何将新主机名传播到salt-master?(只是更改主机名并重新启动没有帮助,我假设主机名是捆绑在服务器上的,具有minion的ID).

更一般的问题salt是,这种情况是否适合产品(设置小兵的状态改变其名称等)

小智 7

您的Minion ID基于安装期间的主机名.在安装salt-minion后更改主机名时,Minion ID将不会更改.

Minion ID在/etc/salt/minion_id.中指定.当您更改Minion ID时:

  • Minion将使用新的ID识别自己,并停止收听旧ID.
  • Master会将新的Minion Id检测为新的Minion,并显示一个新密钥Unaccepted Keys.
  • 接受Master上的密钥后,您只能使用新密钥使用Minion.旧密钥仍然在Master上接受但不再起作用.

我可以为您的情况提出两种解决方案:

  1. 使用salt-ssh来配置你的爪牙.Master将使用SSH连接到您的Raspberry PI.它将设置正确的主机名,安装和配置salt-minion.完成此操作后,您的小兵将使用正确的ID连接到主人.但是这需要师父知道仆从的时间和地点......
  2. 您提到了设置主机名的状态.更改Minion ID并以相同状态重新启动minion服务.这将更改Minion ID,但您需要接受新密钥.请注意,当您重新启动salt-minion服务时,minion将永远不会报告成功完成的状态.