У меня есть сервер Puppetmaster A и сервер B, который является клиентом Puppet для A. Я хотел бы настроить сервер B в качестве самого Puppetmaster и сделать сервер C клиентом Puppet для сервера B. (Примечание: все серверы являются Debian squeeze .)
PM A <------ PM B <------ C
client client
Я пробовал, но когда пытаюсь запустить puppetmaster на сервере B, получаю такую ошибку:
Не удалось подготовиться к выполнению: сертификат, полученный от мастера, не соответствует закрытому ключу агента.
Возможна ли такая цепочка? Если да, то как?
В /etc/puppet.conf вам нужно указать сертификаты для сервера B как сервера, а для сервера B как клиента.
При запуске puppetmasterd на serverB
puppetmasterd --no-daemonize --verbose --certname serverB_server
Чтобы создать сертификат клиента:
puppet cert generate <puppet master's certname> --dns_alt_names=<comma-separated list of DNS names>
затем файл conf
========/etc/puppet.conf===========
[puppetmasterd]
certname=serverB_server
ca=true
[puppetd]
certname=serverB_client
ca_server=serverA
Настройка, которая казалась простой и работающей на хосте Debian / Ubuntu, заключалась в простой настройке отдельных файлов конфигурации и каталога. Это для вебрика, не уверен, что вам нужно сделать для пассажира.
Создать конфдир для мастера mkdir -p /etc/puppetmaster/
Обновите /etc/default/puppetmaster
--- a/default/puppetmaster
+++ b/default/puppetmaster
@@ -4,4 +4,4 @@
START=yes
# Startup options.
-DAEMON_OPTS=""
+DAEMON_OPTS="--confdir=/etc/puppetmaster/"
Создать puppet.conf
файл в /etc/puppetmaster/
для мастера.
[main]
logdir=/var/log/puppetmaster
vardir=/var/lib/puppetmaster
ssldir=/var/lib/puppetmaster/ssl
rundir=/var/run/puppetmaster
factpath=$vardir/lib/facter
templatedir=$confdir/templates
# pluginsync = true
certname=submaster.example.org