パペットマスターとエージェントを同じマシンにインストールしました。クライアントを起動すると、次のエラーメッセージが表示されます。
puppet agent --server=agent.com --no-daemonize --debug
err: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed. This is often because the time is out of sync on the server or client
/ etc/hostsにエントリを作成してみてください
127.0.0.1 localhost.localdomain localhost puppet
puppetagentコマンドの--server
引数を削除します。
次を発行して、パペットマスターの [〜#〜] fqdn [〜#〜] を見つけます。
# openssl x509 -noout -subject -in /var/lib/puppet/ssl/ca/ca_crt.pem
subject= /CN=Puppet CA: Host.domain.com
次の出力(存在する場合)と比較します。
# puppet cert list --all
puppetmaster
ポート(/etc/hosts
)でリッスンしているIPを指すエントリを8140
ファイルに追加します。
192.168.124.2 Host.domain.com Host
使用するIPを見つけるには、リッスンしているプロセスを知る必要があります。これは、スタンドアロンのpuppetmaster
またはApache
+ passenger
インストールの場合は異なります。次を使用できます。
netstat -an | grep 8140.*LISTEN
/etc/puppet/puppet.conf
ファイル、特にserver=
エントリを確認してください。これは、上記のFQDNを指している必要があります。
このlocalhost
を見つけたくない場合を除いて、puppetmaster
は使用しないでください。
pupppet agent
を開始する前に、次の問題を発行します。
# puppet agent --test --waitforcet 2
これは、CSRをパペットマスターCAに送信し、署名されるのを待つようにエージェントに指示します。
を使用して確認
# puppet cert --list
CSRに署名するための保留中。署名する:
# puppet cert sign Host.domain.com
人形エージェントがコンパイルされたカタログを受け取り、それを適用するのを見てください。その後、エージェントを起動して起動スクリプトに追加する準備が整いました。
「本による」証明書の再生成がQで説明されている状況を依然として生成するケースを解決するために、/etc/puppet/puppet.conf
に次のセットがあることがわかりました。
[master]
certname=masterhost.domain.com
[agent]
certname=agenthost.domain.com
(ここで、masterhost.domain.com
はパペットマスターのFQDNであり、agenthost.domain.com
はエージェントのFQDNです)
IMOこれは、同じホストで両方を実行している場合、特にserver=masterhost.domain.com
を設定したばかりではないように思われる場合に、パペットがマスターの名前とエージェントの名前を確実に認識できるようにするためのかなり明確な方法です。競合を回避するのに十分です。
/etc/hosts
にパペットマスターのDNを追加する提案された解決策が見つからなかったので(すでにDNSエイリアスとして持っていました)、それが私の場合に役立つかどうかはわかりません。