Кукольный магазин сертификатов - PullRequest
0 голосов
/ 24 августа 2018

Я получил Puppet Enterprise Master Server 2018.1.3, который должен получить код с помощью Code Manager из git-Repository через https, где сертификат сервера git-сервера подписан сторонним центром сертификации.

после того, как все настроено правильно, я получаю следующее:

>  puppet-code deploy --dry-run
Dry-run deploying all environments.
Errors while collecting a list of environments to deploy (exit code: 1).
ERROR    -> Unable to determine current branches for Git source 'puppet' 
(/etc/puppetlabs/code-staging/environments)
Original exception:
The SSL certificate is invalid

при прямом выполнении r10k выдает похожую ошибку.Это имеет смысл, поскольку я еще нигде не установил сторонний сертификат CA.

, поэтому я подумал, что r10k, скорее всего, запускает jruby, который запускает java (я не имею никакого представления о ruby), поэтому я будуустановите сертификат в jvm:

keytool -import -file gitCA.cer -alias gitCA -keystore /opt/puppetlabs/server/apps/java/lib/jvm/java/jre/lib/security/cacerts -storepass changeit

, но я все еще получаю ту же ошибку, также после перезагрузки системы, так что все в порядке, r10k использует не jruby, а ruby, поэтому я установлютакже сертификат в ОС, положить сертификат под /etc/pki/trust/anchors и называется update-ca-certificates (на SLES12).После этого я могу получить доступ к git-Repo-URL с помощью wget без получения какой-либо ошибки сертификата, поэтому сертификат установлен в ОС правильно, но, тем не менее, даже после перезагрузки системы, я получаю ту же ошибку с r10k.

после долгих раздумий о хранилищах сертификатов и рубине я узнал, что

export  SSL_CERT_FILE=<path_to_cert>

исправляет прямой вызов r10k:

> r10k deploy display --fetch                                         ---
:sources:
- :name: :puppet
 :basedir: "/etc/puppetlabs/code/environments"
 :remote: https://xxx@git.xxx/git/puppet
 :environments:
  - develop
  - master
  - production
  - puppet_test

но puppet-code все еще не работает с тем же сообщением об ошибке.но я подумал, что, очевидно, я сейчас root и puppet-code выполняется пользователем pe-puppet, поэтому я поместил команду экспорта в файл /etc/profile.local, чтобы он был доступен для всех пользователей.

все еще не работает.даже после перезагрузки системы и удаления /opt/puppetlabs/server/data/puppetserver/r10k/, созданного пользователем root при непосредственном вызове r10k.

первый вопрос: почему r10k работает, а puppet-code нет?

второй вопрос: где находится правильное место для этого сертификата?

большое спасибо
Майкл

ОБНОВЛЕНИЕ: 27.AUG.2018

я попробовал это:

sudo -H -u pe-puppet bash -c '/opt/puppetlabs/puppet/bin/r10k deploy display --fetch'

, которая не работала, несмотря на то, что я установил переменную SSL_CERT_FILE в файле /etc/profile.local.

, но я заработал, установив переменную в файле /etc/environment.

, но puppet code все еще не работает.почему?

1 Ответ

0 голосов
/ 27 августа 2018

Итак, я получил его на работу, но не доволен решением.

Я включил отладочную регистрацию на /etc/puppetlabs/puppetserver/logback.xml, подтверждая, что puppet-code действительно вызывает r10k:

2018-08-27T14:54:24.149+02:00 DEBUG [qtp462609859-78] [p.c.core] Invoking shell: 
  /opt/puppetlabs/bin/r10k deploy --config /opt/puppetlabs/server/data/code-manager/r10k.yaml --verbose warn display --format=json --fetch
2018-08-27T14:54:24.913+02:00 ERROR [qtp462609859-78] [p.c.app] Errors while collecting a list of environments to deploy (exit code: 1). 
  ERROR   -> Unable to determine current branches for Git source 'puppet' (/etc/puppetlabs/code-staging/environments)
  Original exception:
  The SSL certificate is invalid

так что я сделал это очень быстро и грязно:

cd /opt/puppetlabs/puppet/bin/
mv r10k r10k-bin
touch r10k
chmod +x r10k
vi r10k

и

#!/bin/bash
export SSL_CERT_FILE=<new_cert_path>
/opt/puppetlabs/puppet/bin/r10k-bin "$@"

сейчас он работает:

puppet:~ # puppet-code deploy --dry-run
Dry-run deploying all environments.
Found 5 environments.

но несчастлив, есть идея получше?

...