Я недавно бегал puppet module generate
, и закончился кучей чепухи, которая казалась ненужной для простого модуля. Я имею в виду, что многие минимальные модули сводятся к созданию одного или двух конфигурационных файлов и позволяют модулю Puppet с открытым исходным кодом выполнять тяжелую работу.
В документации Puppet объясняется большая часть puppet module generate
Вот:
https://docs.puppet.com/puppet/4.9/modules_fundamentals.html
Однако я ничего не видел о Gemfile.
Какая польза от Gemfile
создан puppet module generate
?
$ puppet module generate nathan-myapp_consul
$ cd myapp_consul/
$ ls
Gemfile README.md Rakefile examples manifests metadata.json spec
Вот содержимое этого файла:
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
puppetversion = ENV.key?('PUPPET_VERSION') ? ENV['PUPPET_VERSION'] : ['>= 3.3']
gem 'metadata-json-lint'
gem 'puppet', puppetversion
gem 'puppetlabs_spec_helper', '>= 1.0.0'
gem 'puppet-lint', '>= 1.0.0'
gem 'facter', '>= 1.7.0'
gem 'rspec-puppet'
# rspec must be v2 for ruby 1.8.7
if RUBY_VERSION >= '1.8.7' && RUBY_VERSION < '1.9'
gem 'rspec', '~> 2.0'
gem 'rake', '~> 10.0'
else
# rubocop requires ruby >= 1.9
gem 'rubocop'
end
Gemfile
произведено puppet module generate
, какой в тебе смысл?
А Gemfile
используется Ruby's Bundler приложение для установки RubyGems (библиотек Ruby), используемых проектом - в данном случае драгоценные камни, которые можно использовать для развиваться модуль. Он не используется при установке или использовании модуля в Puppet.
Если у вас установлен Ruby, вы можете установить эти драгоценные камни, запустив:
gem install bundler
bundle install # or add `--path vendor` to install within the directory
Краткое описание назначения этих драгоценных камней и того, почему они могут быть вам полезны:
metadata-json-lint
проверяет metadata.json
файл правильный, иначе Puppet может не загрузить модуль, и вы не сможете загрузить его в Кузницаpuppetlabs_spec_helper
помощник для запуска тестов и т. д.puppet-lint
проверяет ваши манифесты Puppet против Puppet гид по стилю (больше информации)rspec-puppet
, rspec
позволяют писать тесты для классов Puppet, определенных типов и т. д., чтобы проверить, что они компилируются без ошибок, и создать правильные ресурсы с правильными параметрами (больше информации)rake
используется для запуска предварительно настроенных задач из Rakefile
, т.е. rake test
будет запускать все вышеперечисленное, а также проверять манифесты, файлы ERB и т. д.rubocop
проверяет ваш код Ruby на соответствие руководству по стилю Ruby, что эквивалентно puppet-lintКак вы предполагаете, это не обязательно для минимальный модуль, но они полезны. Вам не нужно писать тесты или даже линтировать код, но использование инструментов может помочь вам создать более надежный модуль и помочь вам внести изменения без риска того, что он не будет работать в Puppet.