web-dev-qa-db-ja.com

異なるLinuxディストリビューションで同じUUIDを取得する

# dmidecode --string system-uuid

上記のコードを使用して、環境内の各ホストでUUIDを取得します。私が理解している限り、UUIDは、同じハードウェア構成を持つ同じホスト上の異なるLinuxディストリビューション間で変更されるべきではありません。しかし、さまざまなLinuxディストリビューションでいくつかのテストを行った後、この同じコマンドでさまざまなuuidに遭遇しました。

古いdmidecodeバージョンでは異なるUUID結果が得られるようです。

例えば ​​dmidecode 2.9SLES11.2の結果からstring Aおよびdmidecode 2.12 Debian8の結果からstring B

自分のマシンにデプロイしているLinuxディストリビューションに関係なく、同じuuidを取得するにはどうすればよいですか?

追加情報:

ネットワークアダプタやその他のハードウェアの設定を交換してもUUIDが変更されないことがわかったため、MACアドレスではなくdmidecodeをUUIDとして使用したいと思いました。

必要なのは、ハードウェアのマイナーな変更やさまざまなOSでそれを識別するために、マシン上で持つことができるいくつかの一意の識別子です。 dmidecodeの使用は、UUIDを生成してファイルに書き込んで使用するのではなく、あるレベルでは偽物ではないと思います。

私はVMwareを使用しており、マシンクローンが頻繁に使用されるため、クローンで複製されないものが必要です。

1
Asaf Magen

それはswです、それはあなたがそれを望むかどうかにかかわらず変わります:)

DBインデックスについては(そしてswまたはhwベースの自動検出情報にはほとんど依存しません)-hwとswの両方を変更する必要があり、その結果情報が変更された場合は最初からやり直す必要があります。さらに悪い可能性があります-重複を取得できる場合、DBは問題になります。

インデックスに資産管理ツールを使用して(その一意性を保証するために)、自動検出された情報(MAC、HDD、RAM、CPU、uuidなど)をインデックスにマッピングしますが、個別の/独立した値として、単一の値にまとめられていません。このようにして、単一/複数値のクエリ(ほとんどの場合)によってマシンを特定し、必要に応じてインデックス/資産管理システムにフォールバックします。 1つ以上の情報値(更新されたuuidなど)を追加/変更/削除するhw/swアップグレード/スワップを処理することもできます。

2
Dan Cornilescu

hostnameを使用します:

 i = gethostname(tmp,2047); 
 if (i)                     /* found Host name */
     strcpy(wrk,tmp);       

あまり変わらなければ:-)良いです。

0
Eric Eberhard