Puppet

無法使用 r10k 提取 Puppet Forge 模組

  • January 9, 2018

關於將分支發佈為環境,我似乎有一個功能正常的 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'

這些似乎都與我無關,只是想我會添加它們以搶占該問題。如果我在我的 puppet 主機上擷取 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。

似乎在建構 ruby​​ 堅固模組(這是一個 r10k 依賴項)時,它使用的是在 libgit2 中編譯的 zlib 符號,而不是作業系統提供的符號。對我來說,刪除堅固的模組 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

引用自:https://serverfault.com/questions/849399