スタンドアロンのIoTデバイス(実用的にはRaspberry Pi)のセットを管理するために、salt
(現在はansible
を使用)に移行することを検討しています。
デバイスは一般的なイメージでインストールされ、それにsalt
(クライアント側)のインストールと、状態を提供するsalt-master
を指す構成ファイルが追加されます。ミニオンによって消費されるファイル。
状態ファイルには、名前のHTTPクエリが含まれており、デバイスに(ホスト名として)適用されます。明らかな問題は、その段階で、ミニオンが以前の(一般的な)名前でsalt-master
にすでに登録されていることです。
そのような状況にどう対処するか?具体的には、新しいホスト名をsalt-master
に伝播する方法は? (ホスト名を変更して再起動するだけでは役に立ちませんでした。ホスト名はサーバー上でミニオンのIDにバンドルされていると思います)。
より一般的な質問は、salt
がそのような状況(ミニオンの状態を設定すると名前が変わるなど)に適した製品であるかどうかです。
Minion IDは、インストール中のホスト名に基づいています。 salt-minionをインストールした後でホスト名を変更しても、ミニオンIDは変更されません。
ミニオンIDは/etc/salt/minion_id
で指定されます。ミニオンIDを変更する場合:
Unaccepted Keys
に新しいキーを表示します。私はあなたの状況のために2つの解決策を思いつくことができます:
これは、hostname/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