PuppetDBを私のpuppetmasterマシンで実行しようとしています。問題は、エージェントの実行時に常に次のメッセージが表示されることです。
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to submit 'replace facts' command for handsoff.dc0.testing.de to PuppetDB at handsoff:8081: Connection refused - connect(2)
Puppetmaster、puppetdb、およびデータベースは、すべて同じホスト「handsoff」で実行されています。
これは私の/etc/puppet/puppetdb.conf
です
[main]
server = handsoff
port = 8081
私の/etc/puppetdb/jetty.ini
[jetty]
# Hostname or IP address to listen for clear-text HTTP. Default is localhost
# Host = <Host>
# Port to listen on for clear-text HTTP.
port = 8080
# The following are SSL specific settings. They can be configured
# automatically with the tool `puppetdb ssl-setup`, which is normally
# ran during package installation.
# The Host or IP address to listen on for HTTPS connections
ssl-Host = localhost
# The port to listen on for HTTPS connections
ssl-port = 8081
# Private key path
ssl-key = /etc/puppetdb/ssl/private.pem
# Public certificate path
ssl-cert = /etc/puppetdb/ssl/public.pem
# Certificate authority path
ssl-ca-cert = /etc/puppetdb/ssl/ca.pem
certificate-whitelist = /etc/puppetdb/ssl-whitelist
そして、ssl-whitelistファイル:
localhost
handsoff
handsoff.dc0.testing.de
lsofはリスニングポートを表示します
# lsof -i -P | grep puppetdb | grep 80
Java 2549 puppetdb 20u IPv6 4982 0t0 TCP localhost:8080 (LISTEN)
Java 2549 puppetdb 34u IPv6 9353 0t0 TCP localhost:8081 (LISTEN)
/ etc/hostsには次の行があります
127.0.0.1 localhost
127.0.1.1 handsoff handsoff.dc0.testing.de
したがって、私の観点から、puppetはlocalhostとhandsoffを介してポート8081のpuppetdbに接続できるはずです。 (私は両方をテストしましたが、どちらも同じ結果が得られました)
この設定で何が問題になっているのでしょうか?
編集:puppetdb.conf
にも設定しようとしました:
[main]
server = localhost
port = 8081
しかし、私はerr: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to submit 'replace facts' command for handsoff.dc0.testing.de to PuppetDB at localhost:8081: hostname does not match the server certificate
を取得します
私は自己署名証明書を使用しています(apt-getを使用してインストールした後は、何も変更しませんでした)。私の推測では、ホワイトリストに登録すると、この方法で証明書を使用できるようになります。それは間違っていますか?
確認してください hostname -f
は完全修飾名を提供します(そうでない場合は、更新/etc/hostname
および更新sysctl kernel.hostname={your hostname}
)。
現在の証明書を確認します。
echo | openssl s_client -connect <puppetdb fqdn>:8081 | openssl x509 -noout -dates
最新バージョンのPuppetDB(4.2)の場合:
service puppetdb stop
rm -rf /etc/puppetlabs/puppetdb/ssl/
puppetdb ssl-setup
dBへのSSL接続を使用している場合は、キーストアを更新する必要がある場合があります。
keytool -import -alias "My CA" -file /etc/puppetlabs/puppetdb/ssl/ca.pem -keystore /etc/puppetlabs/puppetdb/ssl/truststore.jks
service puppetdb start