Лялькові потрібні сертифікати між керованим клієнтом (лялькою) та сервером (ляльковим майстром). Ви можете запустити вручну клієнт і потім перейти на сервер, щоб підписати сертифікат, але як ви автоматизуєте цей процес для кластерів / хмарних машин?
Лялькові потрібні сертифікати між керованим клієнтом (лялькою) та сервером (ляльковим майстром). Ви можете запустити вручну клієнт і потім перейти на сервер, щоб підписати сертифікат, але як ви автоматизуєте цей процес для кластерів / хмарних машин?
Відповіді:
На сервері (ляльковий майстер) запустіть:
puppetca --generate <NAME>
Потім скопіюйте наступне з сервера на клієнт:
/var/lib/puppet/ssl/certs/<NAME>.pem
/var/lib/puppet/ssl/certs/ca.pem
/var/lib/puppet/ssl/private_keys/<NAME>.pem
Якщо ви хочете підписатись <NAME>
як щось інше, ніж ім'я хоста, використовуйте:
puppetd --fqdn=<NAME>
І додайте до /etc/puppet/puppet.conf, якщо запускається демон
[puppetd]
certname=<NAME>
puppet cert --generate <NAME>
див. serverfault.com/a/457364/71452
Якщо у вас є база даних хостів, ви можете використовувати функцію автоматичного проектування. У своєму puppet.conf
файлі в розділі " [puppetmasterd]
Додати":
autosign = /path/to/autosign.conf
Потім використовуйте crontab для створення цього файлу. Файл автосигналу - це лише список хостів для автоматичного проектування, коли вони вперше підключаються до лялькового майстра. Я використовую LDAP для налаштування моїх лялькових хостів, так що мій cron виглядає так:
* * * * * root /usr/bin/ldapsearch -x '(objectClass=puppetClient)' cn | /bin/grep ^cn | /bin/sed 's!^cn: !!' > /etc/puppet/autosign.conf
Я впевнений, що люди, які використовують iClassify, зможуть написати запит, щоб зробити те саме.
Звичайно, потрібно мати певну довіру до мережі. Я використовую це на EC2. Мій сервер лялькових майстрів знаходиться в групі, яка дозволяє лише з'єднання інших довірених груп. Я б не рекомендував робити це, якщо ваш ляльковий майстер відкритий для Інтернету.
Проста відповідь: автоматично підписуйте нові запити. Це, звичайно, небезпечно, оскільки ви сліпо довіряєте будь-якій системі, яка підключається до вашого лялькового майстра, що є метою вимагати підписання вручну.
[puppetmasterd]
autosign = true
Ви можете вказати помилковий і файл, який слід використовувати, щоб визначити, які ключі також підписувати.
Дивіться посилання на конфігурацію на wiki-вікні.
Інший варіант - використовувати такий інструмент, як Capistrano , де ви вказуєте вузол лялькових майстрів і створюєте вузли клієнтського примірника, а також у завданні:
[puppetmasterd]
тепер має бути заголовок розділу [master]
. Див. Docs.puppetlabs.com/guides/tools.html для отримання додаткової інформації.
На сервері (ляльковий майстер) запустіть:
puppetca --generate <NAME>
Потім скопіюйте наступне з сервера на клієнт:
/var/lib/puppet/ssl/certs/<NAME>.pem
/var/lib/puppet/ssl/certs/ca.pem
/var/lib/puppet/ssl/private_keys/<NAME>.pem
Якщо ви хочете використовувати як щось інше, ніж ім'я хоста:
puppetd --fqdn=<NAME>
І додайте до /etc/puppet/puppet.conf, якщо запускається демон
[puppetd]
certname=<NAME>