使用 vagrant 的 Puppet 模块开发人员工作流程

Puppet module developer workflow with vagrant

我目前正在为 Puppet 开发自定义模块。 这是我的第一个 Puppet 模块,我在此处关注教程和文档

https://www.digitalocean.com/community/tutorials/getting-started-with-puppet-code-manifests-and-modules https://docs.puppetlabs.com/guides/module_guides/bgtm.html https://docs.puppetlabs.com/puppet/latest/reference/modules_fundamentals.html https://docs.puppetlabs.com/guides/module_guides/bgtm.html

我的设置如下:

  1. 我从puphpet.com
  2. 中选择了基本配置
  3. 在本地使用 vagrant 配置实例
  4. 已将新模块添加到模块文件夹并处理该模块。

开发速度变慢的原因是我每次都必须 运行 进行完整配置,以查看对我的模块所做的更改如何与 vagrant provision --provision-with puppet 一起工作。或者我可以 运行 来自我的模块的简单指令,例如 puppet apply <path-to-simple-pp-file>.

但这看起来并不有效,我想只调用与我的模块相关的部分配置,即只调用我的模块申请。有没有办法做到这一点? 它看起来太明显了,以至于在任何地方都没有提到它,或者我不知道应该搜索什么。

我的问题是: 如何重新 运行 application/provisioning 当前 puppet 配置中可用的所有其他模块中的一个模块。

更新: 我没有使用 client/server puppet,或者至少我认为我没有使用它。而且不会用。计划是使用 vagrant + puppet 配置实例,但没有任何远程 puppet 服务器。

更新2: 这是我的人偶模块列表

#ls -la /vagrant/puphpet/puppet/modules
 apache
 apt
 beanstalkd
 blackfire
 composer
 concat
 elasticsearch
 epel
 erlang
 firewall
 git
 inifile
 java
 LICENSE
 locales
 mailcatcher
 mongodb
 monitor
 mysql
 nginx
 ntp
 php
 postgresql
 puphpet
 puppi
 pyenv
 rabbitmq
 README.md
 redis
 rvm
 solr
 staging
 stdlib
 supervisord
 swap_file
 sw_mage_deploy *the one I'm working on*
 sysctl
 vcsrepo
 yum

假设您安装了如下模块:

  • /etc/puppet/module/apache/manifests...
  • /etc/puppet/module/java/manifests...
  • /etc/puppet/module/mycustommodule/manifests...

您可以使用 tags 到 运行 一个或多个模块:

sudo puppet agent --test --tags=mycustommodule
sudo puppet agent --test --tags=java,mycustommodule

要在本地 运行 puppet 并应用特定模块,您可以

sudo puppet apply --debug --verbose --trace --modulepath /etc/puppet/module -e "include mycustommodule"