У меня есть то, что кажется работающей настройкой r10k в отношении публикации веток как сред, но когда я запускаю команду для извлечения модулей через
sudo /opt/puppetlabs/puppet/bin/r10k deploy environment -p -v
я получил
INFO -> Deploying environment /etc/puppetlabs/code/environments/production
INFO -> Environment production is now at cd62f3bb36117b1418672a1039b8212aa8bb36dd
INFO -> Deploying Puppetfile content /etc/puppetlabs/code/environments/production/modules/ntp
ERROR -> stream error
INFO -> Deploying Puppetfile content /etc/puppetlabs/code/environments/production/modules/stdlib
ERROR -> stream error
Мой /etc/puppetlabs/r10k/r10k.yaml
:cachedir: '/var/cache/r10k'
# A list of git repositories to create
:sources:
:operations:
remote: 'git@git:sysops/puppet.git'
basedir: '/etc/puppetlabs/code/environments'
Мой файл марионеток
forge 'forge.puppetlabs.com'
mod 'puppetlabs/ntp', '4.1.0'
mod 'puppetlabs/stdlib'
Ни один из них не кажется мне актуальным, просто подумал, что добавлю их, чтобы предупредить этот вопрос. Если я выполняю захват пакетов HTTPS на моем марионеточном хосте, я получаю кучу исходящего трафика, подобного этому
15:19:14.507310 IP puppet.domain.net.33955 > ec2-52-10-130-237.us-west-2.compute.amazonaws.com.https: Flags [.], ack 17926, win 545, options [nop,nop,TS val 129210401 ecr 2944333247], length 0
и куча входящих лайков
15:19:14.520146 IP ec2-52-10-130-237.us-west-2.compute.amazonaws.com.https > puppet.domain.net.33955: Flags [.], seq 20822:22270, ack 628, win 227, options [nop,nop,TS val 2944333252 ecr 129210401], length 1448
Так что общение происходит, но все же довольно бесполезная "ошибка потока" от r10k. Если вы включите отладку с -v debug2
вы получаете те же сообщения в модулях, только несколько до и после.
Это аналогичный вопрос https://stackoverflow.com/questions/35712872/r10k-ruby-connection-error-to-the-forge но этот вопрос был отмечен как решенный, но фактически не решенный, поэтому не дублирующий ИМО.
Похоже, что пока создается ruby rugged модуль (который является зависимостью от r10k), он использует символы zlib, скомпилированные в libgit2, вместо тех, которые предоставляются операционной системой. Для меня было достаточно удалить гем модуля rugged, установить пакет zlib-devel в систему и снова установить rugged.
gem uninstall rugged
yum install zlib-devel
gem install rugged
Если вы хотите подтвердить, что ваша проблема такая же, просто запустите приведенный ниже код в консоли ruby (irb):
require 'rugged'
require 'zlib'
Zlib::Inflate.new(32 + Zlib::MAX_WBITS)
Он должен вызвать Zlib :: StreamError.
Источники, которые привели меня к такой мысли:
У меня то же самое, я использую пакеты с ПК1 на Ubuntu 16.04, но r10k работает на системном Ruby. Кажется, что нечеткая «ошибка потока» возникает из-за одной из зависимостей гемов Ruby, поэтому многословие в r10k не дает более полезного вывода.