Невозможно вытащить модули Puppet Forge с помощью r10k

У меня есть то, что похоже на работающую настройку 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 но этот вопрос был помечен как решенный без фактического решения, поэтому не дублируйте IMO.

2 ответа

Решение

Кажется, что во время сборки защищенного модуля ruby ​​(который является зависимостью от r10k) он использует символы zlib, скомпилированные в libgit2, вместо символов, предоставляемых операционной системой. Для меня этого было достаточно, чтобы удалить защищенный модуль gem, установить пакет zlib-devel в систему и установить заново.

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.

Источники, которые привели меня к этому решению:

https://github.com/prontolabs/pronto/issues/23

https://github.com/libgit2/rugged/issues/705

У меня так же, я использую пакеты от PC1 на Ubuntu 16.04, но r10k работает под управлением системы Ruby. Кажется, что расплывчатая "ошибка потока" происходит от одной из зависимостей Ruby gem, поэтому многословие в r10k не дает более полезного вывода.

Другие вопросы по тегам