2010-12-13 6 views
24

私は人形を使ってサーバを設定しています。 * .erbテンプレートに現在のマシン(ノード)名を表示したい。 ホスト名はですが、これはpuppetmasterホスト名を保持しています。このトピックに関する良い参考文献/リストはありますか?人形ノードホスト名

答えて

28

どこか見逃してしまったようです。

<%= @hostname %> 

編集:私は* .erbテンプレートに次のコードを呼び出すことによって、単純に(プリント)ノードのホスト名を取得することができ人形3のように、ローカル変数を使用して(すなわちhostnameは廃止され、パペット4をそれらのサポートを削除します。完全に推奨される方法は、インスタンス変数を使用することです(@が付いて、この場合でそう@hostnameSource

+0

を使用しああまさに、私は、本当に困惑しました"hostname"私は短いバージョン(コマンドhostname -sによって返されたもの)を "myhost"のように取得します。私はpuppetmasterホストを得ることはありません。 – PierluigiVernetto

23

あなたのerbファイルで使用可能な変数を返しますあなたのターミナルに次のコマンドを入力:。。

facter --puppet 
+1

素晴らしい!それは大いに役立ちます。 –

+1

はい!これは有用な知識です。 – JCotton

+1

この回答は、私は 'ホスト名'は望んでいないが、代わりに 'fqdn'が自分のアプリケーションを形成していることを示しています。 –

6

上記のすべてに該当します。また、あなたが何をしているかに応じて、fqdn変数が役に立つかもしれません。

テンプレートで人形マスターサーバーの情報を必要とする自分自身を見つけるならば、あなたは変数を使用することができservernameserverip、およびserverversionFrom the FAQ)。

2

これはノード名ではなく、ホスト名です(最初に尋ねたものです)。 99%のケースでは、これらは同じになります。 AFAIKでは、テンプレート内に実際のノード名を取得する方法はありません(もしあれば、私はそれを聞きたいです)。

4

どうやらあなたは今

<%= fqdn %> 

を使用してDNSは名前を逆に得ることができます。

「FQDN」のための私の場合、私は(「myhost.acnemcom」のような)完全なホスト名を取得するためのためにしているときに、それを小文字にする必要がある場合は、

<%= fqdn.downcase %> 
関連する問題