在Vagrant VM中导入Puppet预先生成的SSL密钥对的好方法?

我想设置Vagrant来使用我当前的Puppet master作为提供者。 但是我不喜欢在.box文件中embeddedSSL密钥对的.box

我目前正在做的是使用Vagrant文​​件分发Puppet代理的ca.pem,public,private和cert密钥文件,并使用此shell脚本来引导Puppet代理:

 $puppet_ssl = <<SCRIPT sudo mkdir -p /var/lib/puppet/ssl/{certs,private_keys,public_keys} sudo chown puppet /var/lib/puppet/ssl/{certs,private_keys,public_keys} sudo cp /vagrant/puppet/certs/appdev.mydomain.com.pem /vagrant/puppet/certs/ca.pem /var/lib/puppet/ssl/certs/ sudo cp /vagrant/puppet/private_keys/appdev.mydomain.com.pem /var/lib/puppet/ssl/private_keys/ sudo cp /vagrant/puppet/public_keys/appdev.mydomain.com.pem /var/lib/puppet/ssl/public_keys/ SCRIPT 

这似乎工作正常, 如果开发人员有文件,一切都在正确的目录。

我的问题:有没有更好的方式来分发任何需要预先加载到Vagrant虚拟机的文件,而无需将其embedded到.box文件中?

解决这个问题的最简单的方法可能是configuration你的Vagrantfile来在/var/lib/puppet/ssl上build立一个同步的文件夹,然后把你的本地Vagrant项目目录下的密钥加载。 文档在这里:

http://docs.vagrantup.com/v2/synced-folders/basic_usage.html

另外,木偶自动签名可以解决问题,以满足您的需求。