Недавно я запустил puppet module generate
и в итоге получил кучу чуши, которая выглядела ненужной для простого модуля. Я имею в виду, что многие минимальные модули сводятся к созданию шаблона файла или двух конфигураций и предоставлению возможности модулю Puppet с открытым исходным кодом выполнять тяжелую работу.
В документации Puppet объясняется большая часть puppet module generate
здесь:
https://docs.puppet.com/puppet/4.9/modules_fundamentals.html
Однако я ничего не видел о Gemfile.
Какая польза от Gemfile
, сгенерированного марионеточным модулем генерации
?
$ 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 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 может не загрузить модуль, и вы не сможете загрузить его в Forge ] puppetlabs_spec_helper
- помощник для запуска тестов и т. д. puppet-lint
проверяет ваши манифесты Puppet на соответствие руководству по стилю Puppet ( подробнее ) rspec-puppet
, rspec
позволяет писать тесты для классов Puppet, определенных типов и т. д., чтобы проверить, что они компилируются без ошибок, и создать правильные ресурсы с правильными параметрами ( подробнее ) rake
используется для запуска предварительно сконфигурированных задач из Rakefile
, т.е. rake test
будет запускать все выше, а также проверяет манифесты, файлы ERB и т. д. rubocop
проверяет ваш код Ruby на соответствие руководству по стилю Ruby, что эквивалентно puppet-lint Как вы предлагаете, они не требуются для минимальный модуль , но они полезны. Вам не нужно писать тесты или даже линтировать код, но использование инструментов может помочь вам создать более надежный модуль и помочь вам вносить изменения без риска того, что он не будет работать в Puppet.