私は人形は初めてですが、すぐにそれを拾います。今日、私は次を実行しようとすると問題に直面しています:
$ puppet agent --no-daemonize --verbose --onetime
**err: Could not request certificate: getaddrinfo: Name or service not known
Exiting; failed to retrieve certificate and waitforcert is disabled**
エージェントはどのサーバーに接続するのかわからないようです。コマンドラインで--server
を指定することもできますが、これが実稼働環境でデーモンとして実行される場合は役に立たないため、代わりに/etc/puppet/puppet.confでサーバー名を指定しますそう:
[main]
server = puppet.<my domain>
I dopuppet.<my domain>
のDNSエントリがあり、Dig puppet.<my domain>
の場合、名前が正しく解決されることがわかります。
私が読んだすべてのpuppetドキュメンテーションは、エージェントがデフォルトでpuppet
のpuppet masterへの接続を試み、オプションはHost file trickeryまたは正しいことを行い、DNSでCNAMEを作成し、puppetを編集することを述べています。それに応じてconf、私はやった。
だから私は何が欠けていますか?どんな助けも大歓迎です!
ど!これを行うにはSudo
が必要です!その後、すべてが機能します。
--server
フラグを使用する必要がありました。
Sudo puppet agent --server=puppet.example.org
私の場合、私は同じエラーを受け取っていましたが、それはpuppetmasterサーバー上のノードに署名されるべき証明書によるものでした。
保留中の証明書を確認するには、次を実行します。
「node.domain.com」(SHA256)8D:E5:8A:2 *******」
ノードへの証明書に署名します。
実際には同じエラーが発生しましたが、2つの学習puppet vmを使用して、「puppet agent --test」コマンドを実行しようとしました。
マスターとエージェントの両方のvmとラインでファイル/ etc/hostsを開くことで問題を解決しました
***.***.***.*** learn.localdomain learn puppet.localdomain puppet
IPアドレス(アスタリスク)は、もともとは乱数でした。マスターノードのIPアドレスになるように、両方のvmでこの番号を変更する必要がありました。
ですから、経験豊富なユーザーには、/ etc/hostsファイルをチェックして、マスターとエージェントのIPアドレスが一致するだけでなく、マスターのIPアドレスと同じであることを確認することをお勧めします。
私のような他の初心者にとって、私のアドバイスはドキュメントをより明確に読むことです。これは、「エージェントvmのセットアップ」プロセスの1ステップであり、xDを完全に見逃しました
puppet 2.6
on CentOS 6.4
に同じ問題が今日あったその後;
rm -rf /var/lib/puppet
puppetca --clean servername
の証明書をクリアしましたservice network restart
Resolv.confは動作中のサーバーと同一でしたが、puppetはresolv.confを更新し、すぐに証明書に再署名して、すべてのpuppet libファイルを置き換えました。
その後はすべて順調でした。