Я пытаюсь развернуть r10k с помощью модуля puppetforge puppet-r10k r10k, но кажется, что когда я запускаю puppet Agent -t, модуль получает не ту версию, которая установлена на машине. Ошибка:
Error: Execution of '/opt/puppetlabs/puppet/bin/gem install --no-document --no-document r10k' returned 1: ERROR: Error installing r10k:
The last version of faraday-net_http (>= 2.0, < 3.2) to support your Ruby & RubyGems was 3.0.2. Try installing it with `gem install faraday-net_http -v 3.0.2` and then running the current command again
faraday-net_http requires Ruby version >= 3.0.0. The current ruby version is 2.7.8.225.
Error: /Stage[main]/R10k::Install/Package[r10k]/ensure: change from 'absent' to 'present' failed: Execution of '/opt/puppetlabs/puppet/bin/gem install --no-document --no-document r10k' returned 1: ERROR: Error installing r10k:
The last version of faraday-net_http (>= 2.0, < 3.2) to support your Ruby & RubyGems was 3.0.2. Try installing it with `gem install faraday-net_http -v 3.0.2` and then running the current command again
faraday-net_http requires Ruby version >= 3.0.0. The current ruby version is 2.7.8.225.
Текущая версия на машине:
root@mpuppetserver:~# ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu]
Я попытался установить (как он говорит) faraday-net_http -v 3.0.2, но это не решило проблему. В любом случае я попробовал добавить разные источники и удаленный репозиторий (Hiera):
r10k::sources:
preprod:
remote: "%{lookup('git_preprod')}"
basedir: "${::settings::codedir}/environments"
prefix: false
и, похоже, можно пропустить ошибку и добавить данные в файл /etc/puppetlabs/r10k/r10k.yaml:
root@puppetserver:~# cat /etc/puppetlabs/r10k/r10k.yaml
---
pool_size: 6
deploy:
generate_types: true
exclude_spec: true
cachedir: "/opt/puppetlabs/puppet/cache/r10k"
sources:
preprod:
remote: git@blabla/bla.git
basedir: "${::settings::codedir}/environments"
prefix: false
Кстати, ошибка остается и гем r10k не устанавливается.
Спасибо.
Гем должен быть установлен вместе с установкой Ruby интерпретатора C/MRI Puppet Server, а не с системной установкой Ruby или установкой JRuby Puppet Server:
/opt/puppetlabs/puppet/bin/gem install --no-document faraday-net_http -v 3.0.2
Это устранит ошибку, и вы сможете продолжить.