Управление сертификатами Puppet 4

Puppet – это инструмент управления конфигурациями, который позволяет автоматизировать оркестровку, настройку и управление инфраструктурой. Обычно Puppet используется в режиме мастер-агент, где мастер-сервер управляет агентами-нодами и отвечает за их настройку. Мастер и подчиненные ему ноды взаимодействуют по HTTPS, а для этого нужны валидные SSL-сертификаты. Мастер Puppet выступает в роли центра сертификации и подписывает запросы нод.

Это краткое руководство научит вас управлять сертификатами с помощью команды puppet cert.

Примечание: Это руководство – простая и удобная шпаргалка. Выполнять все действия подряд необязательно. Вы можете перейти к любому интересующему вас разделу.

Если путь к puppet не указан в настройках, вам придётся постоянно указывать его в командах.

Список запросов на подпись сертификата

Новый агент отправляет мастеру Puppet запрос на подпись сертификата сразу после своего запуска. Просмотреть эти запросы можно с помощью команды puppet cert list.

Просмотр всех запросов

Чтобы просмотреть все поступившие запросы (подписанные и неподписанные), используйте флаг –all:

sudo puppet cert list --all

Если сертификат подписан, в начале строки будет стоять +. Например:

+ "host1.example.com"    (SHA256) 51:D8:7A:EB:40:66:74:FD:0A:03:5D:35:AA:4D:B3:FA:35:99:C2:A8:C9:01:83:34:F6:16:60:BB:46:1F:33:3F
"host2.example.com"   (SHA256) 3C:A9:96:3A:8D:24:5F:25:DB:FF:67:B5:22:B1:46:D9:89:F1:75:EC:BA:F2:D6:87:70:0C:59:97:11:11:01:E3
+ "puppet.example.com" (SHA256) 12:32:47:18:D1:12:85:A6:EA:D4:51:9C:24:96:E2:8A:51:41:8D:EB:E8:7C:EB:47:94:B0:8B:16:16:51:6A:D1 (alt names: "DNS:puppet", "DNS:puppet.localdomain", "DNS:puppet.example.com")

Сертификаты host1 и puppet были подписаны, а host2 – нет.

Просмотр неподписанных сертификатов

Чтобы иметь возможность взаимодействовать с нодой, сервер Puppet должен подписать отправленный ею сертификат. Просмотреть неподписанные сертификаты можно с помощью команды:

sudo puppet cert list

Команда вернёт примерно следующее:

"host2.example.com" (SHA256) 9D:49:DE:46:1C:0F:40:19:9B:55:FC:97:69:E9:2B:C4:93:D8:A6:3C:B8:AB:CB:DD:E6:F5:A0:9C:37:C8:66:A0

Как видите, в начале строки нет символа +, значит, сертификат не был подписан сервером.

Подпись сертификатов

Подпись определённого сертификата

Чтобы подписать один конкретный сертификат, нужно указать имя хоста ноды, которая отправила его:

puppet cert sign host2.example.com

Команда вернёт:

Notice: Signed certificate request for host1.example.com
Notice: Removing file Puppet::SSL::CertificateRequest host2.example.com at '/etc/puppetlabs/puppet/ssl/ca/requests/host1.example.com.pem'

Подпись всех сертификатов

Чтобы подписать все поступившие сертификаты, введите:

sudo puppet cert sign --all

Отзыв сертификатов

В дальнейшем вы можете удалить ноду из инфраструктуры или изменить мастер-сервер. В этом случае нужно будет отозвать сертификат ноды. Для этого используйте команду clean:

sudo cp -R /etc/puppetlabs/puppet/ssl/ /root/

Примечание: Прежде чем отзывать сертификат, рекомендуется создать его резервную копию.

Отзыв определённого сертификата

Чтобы отозвать сертификат конкретной ноды, укажите в команде её имя хоста.

sudo puppet cert clean host1.example.com

Отозвав сертификат, перезагрузите мастер Puppet, чтобы обновить настройки.

sudo service puppetserver reload

Если вы снова запустите эту ноду, она отправит мастеру новый сертификат, который можно подписать с помощью команды puppet cert sign.

Чтобы немедленно отправить запрос, введите:

sudo puppet agent --test

Отзыв нескольких сертификатов

Puppet не поддерживает флаг –all для удаления сертификатов. Чтобы удалить несколько сертификатов одновременно, укажите имена хостов их нод через пробел:

sudo puppet cert clean host1.example.com host2.example.com . . .

Отозвав сертификат, перезагрузите мастер Puppet:

sudo service puppetserver reload

Заключение

Данное руководство предлагает вам список общих команд для управления сертификатами Puppet. Получить полный список опций можно здесь.

Читайте также: Установка Puppet 4 в Ubuntu 16.04

Tags: , ,

Добавить комментарий