3

私の手順を説明しましょう。

  • ベース RHEL 5.10 OS のノードがあります。/etc/hosts ファイルが空です
  • CLI「hostname -f」を実行すると、正しい server1-nodex.domain.com が得られます。
  • ノードのブートストラップに成功しました。「knife node show node_name」を実行すると、server1-nodex.domain.com などの正しい FQDN が表示されます。
  • /etc/hosts ファイルを作成するレシピを実行し、この形式にします。IP の後のエイリアス (nodex) に注意してくださいこの形で必要です!

    10.22.10.10 nodex server1-nodex.domain.com

  • ここで、knife node show node_name を実行すると、Chef は FQDN が「nodex」であることを示します。は???
  • 確かに、CLI「hostname -f」を実行しても「nodex」が表示されますね???
  • テストのためだけに stat over を実行しますが、/etc/hosts ファイルをこの形式で作成します。行の FQDN の後にエイリアスが表示されるようになったことに注意してください (この方法は必要ありません)。

    10.22.10.10 server1-nodex.domain.com nodex

  • knife node show node_name を実行すると、Chef は正しい FQDN を表示し、"hostname -f" も同様に表示します

/etc/hosts ファイルの内容に基づいて、Chef が FQDN に対してこれを行うのはなぜですか? /etc/hosts ファイルを希望どおりに構成する Pre-Chef 構成プロセス (シェル スクリプト) がありますが、FQDN は影響を受けませんか?

これは「バグ」ですか、それとも Chef の望ましくない副作用ですか?

4

2 に答える 2

1

これは Chef のせいではなく、Linux ボックスの init スクリプトに問題があると確信しています。/etc/hosts彼らは、ホスト名の設定方法を決定するために読ん でいます。

覗く/etc/sysconfig/network-scripts

でこれをオーバーライドできるはずです/etc/sysconfig/network

于 2014-08-22T01:26:39.247 に答える
1

ホスト ファイルの形式は次のとおりです。

IP_address canonical_hostname [aliases...]

つまり、IP アドレスの後の最初のホスト名はこのシステムの一意の名前であり、それ以降はエイリアスです。あなたの例ではそれらを逆にしています。

通常、デフォルトでは、リゾルバーは最初にホスト ファイルでホスト名を検索し、次に DNS システムを使用するように構成されています (/etc/resolv.conf および /etc/host.conf を参照)。そのため、システムで「hostname -f」を実行して FQDN を取得すると、/etc/hosts ファイルへの変更の影響を受けます。

Chef (ohai) はリゾルバーを使用して fqdn を取得します。/etc/hosts を変更するとリゾルバーの回答が変更されるため、Chef の回答が変更されます。

于 2015-03-24T14:53:21.603 に答える