私はこの質問が以前に多くの異なる変種で尋ねられたことを知っています。問題に関連するすべての投稿を読みましたが、エージェントとマスターが互いに話し合うことができません。両方ともlinuxmint17で実行されているvmworkステーションを介して2つのvmを起動します。
このスレッドは、クライアントとpuppetmasterの/ etc/hostsと/ etc/hostnameがどのようになっているのかを説明することから始めます。
クライアントのVMでは、/ etc/hostnameのホスト名は次のようになります。
puppetclient
/ etc/hostsにあるクライアントのVMホストは次のようになります。
127.0.0.1 localhost
127.0.1.1 puppetclient
192.168.75.143 puppetmaster
私のマスターのvm/etc/hostnameでは、次のようになります。
puppetmaster
私のマスターのvm/etc/hostsは次のようになります。
127.0.0.1 localhost
127.0.1.1 puppetmaster
192.168.75.144 puppetclient
マスターの/etc/puppet/puppet.confは次のようになります。
[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
templatedir=$confdir/templates
prerun_command=/etc/puppet/etckeeper-commit-pre
postrun_command=/etc/puppet/etckeeper-commit-post
[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY
クライアントの/etc/puppet/puppet.confは次のようになります。
[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
templatedir=$confdir/templates
prerun_command=/etc/puppet/etckeeper-commit-pre
postrun_command=/etc/puppet/etckeeper-commit-post
[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY
[agent]
server=puppetmaster
検索中にpuppet.confのバリエーションがたくさんあり、ここに投稿する気がしません。バリアントの1つは、クライアントとマスターのvmの両方にserver=puppetmaster
in [main]を含めることです。とにかく、私が試したすべてのpuppet.confバリアントについて、Sudo puppet agent --test
を実行したときの最初のエラーは常にwarning: unable to fetch my node definitoin, but agent run will continue:
であり、その後のエラーは、実装するpuppet.confのバリアントごとに異なります。誰かが私のセットアップの正しい構成を教えてもらえますか?
ありがとう
最初にパペットマスターをインストールして実行し、次にホスト名を変更したようです。
Puppet masterで実行:puppet config print certname
これにより、マスターが使用する証明書名が表示されます。ホスト名と同じである必要があります。
ホスト名と一致する場合は、マスターの証明書の共通名を確認できます。
openssl x509 -noout -subject -in $(puppet config print ssldir)/certs/$(puppet config print certname).pem
また、puppet構成でFQDNを使用することをお勧めします。ホスト名が異なる場合、最も簡単な方法は、SSLディレクトリを削除または名前変更することです。
mv $(puppet config print ssldir){,_}
そして、パペットマスターを再起動します。 CAが変更されるため、クライアントノードでもこれを行う必要があります。