Vagrant 在哪里安装虚拟机的puppet?主人还是客人?
我正试图提供一个带有木偶的流浪者盒子,我非常困惑我需要在哪里安装木偶。根据Provisioning下的Vagrant文档,该文档意味着puppet在我的主机上,当我运行Vagrant 在哪里安装虚拟机的puppet?主人还是客人?,vagrant,puppet,Vagrant,Puppet,我正试图提供一个带有木偶的流浪者盒子,我非常困惑我需要在哪里安装木偶。根据Provisioning下的Vagrant文档,该文档意味着puppet在我的主机上,当我运行Vagrant upVagrant时,它将在我的主机环境中查找我的清单和模块 但是,我不想在主机上安装一堆puppet模块并创建文件。我想要的是启动一个流浪者盒子,然后将这些清单文件和模块放在虚拟机上,这样我就可以vagrant packagebox并将它传递给队友。Vagrant文档说,我可以在vm中拥有清单文件,如sopupp
Vagrant up
Vagrant时,它将在我的主机环境中查找我的清单和模块
但是,我不想在主机上安装一堆puppet模块并创建文件。我想要的是启动一个流浪者盒子,然后将这些清单文件和模块放在虚拟机上,这样我就可以vagrant package
box并将它传递给队友。Vagrant文档说,我可以在vm中拥有清单文件,如sopuppet.manifests\u path=[“vm”,“/path/to/manifests”]
,我可以执行或。我真的不知道这是怎么回事
此外,我还看到了一个youtube教程,其中附带了一个github示例。这家伙似乎绕过了我在木偶文档上读到的所有东西。在此存储库中,他没有指定模块类或包。有人能给我举个例子,说明如何提供一个最佳实践的箱子吗
根据Provisioning下的Vagrant文档,该文档意味着puppet在我的主机上,当我运行Vagrant up时,Vagrant将在我的主机环境中查找我的清单和模块
我不确定混淆的地方在哪里,但让我试着澄清一下
Puppet-like all provisioner在guest上运行(实际上唯一的例外是Ansible,甚至对于Ansible,vagrant团队已经启动了直接在guest上运行的),因此当您有Puppet provisioner时:
- vagrant将尝试在来宾VM上安装puppet(如果它还不可用)
- vagrant将把清单和模块文件从主机复制到客户机上(一般情况下,客户机上的
)/tmp/vagrant puppet…
.project-directory
|
|---- Vagrantfile
|
|---- puppet
|-------- hiera.yaml
|-------- manifests
|------- base-app.pp
|-------- modules
|------- ...modules... if any
当你流浪起来时:
puppet/modules
文件夹/tmp/vagrant puppet/modules-b14a7087a41f2cfba87af62658880213
puppet/manifests
文件夹/tmp/vagrant puppet/manifests-846018e2aa141a5eb79a64b4015fc5f3
puppet apply --modulepath '/tmp/vagrant-puppet/modules-b14a7087a41f2cfba87af62658880213:/etc/puppet/modules' --manifestdir /tmp/vagrant-puppet/manifests-846018e2aa141a5eb79a64b4015fc5f3 /tmp/vagrant-puppet/manifests-846018e2aa141a5eb79a64b4015fc5f3/site.pp
- vagrant将尝试在来宾VM上安装puppet(如果它还不可用)
- vagrant将把清单和模块文件从主机复制到客户机上(一般情况下,客户机上的
)/tmp/vagrant puppet…
.project-directory
|
|---- Vagrantfile
|
|---- puppet
|-------- hiera.yaml
|-------- manifests
|------- base-app.pp
|-------- modules
|------- ...modules... if any
当你流浪起来时:
puppet/modules
文件夹/tmp/vagrant puppet/modules-b14a7087a41f2cfba87af62658880213
puppet/manifests
文件夹/tmp/vagrant puppet/manifests-846018e2aa141a5eb79a64b4015fc5f3
puppet apply --modulepath '/tmp/vagrant-puppet/modules-b14a7087a41f2cfba87af62658880213:/etc/puppet/modules' --manifestdir /tmp/vagrant-puppet/manifests-846018e2aa141a5eb79a64b4015fc5f3 /tmp/vagrant-puppet/manifests-846018e2aa141a5eb79a64b4015fc5f3/site.pp
因此,您可以看到所有内容都安装在guest上并在guest上运行,您只需在主机上维护将安装在guest上的puppet配置和模块。puppet可以安装在机箱上。就用这个吧:
config.vm.box = "puppetlabs/centos-7.2-64-puppet"
木偶可以安装在盒子上。就用这个吧:
config.vm.box = "puppetlabs/centos-7.2-64-puppet"
您可能会更幸运地检查这很有趣,我希望能帮助您我不是一个流浪汉,但您对Puppet有两个基本的选择:(1)将所有需要的清单和数据(包括模块)放在正在配置的机器上,并使用
Puppet apply
应用它们,或者(2)将所需的清单和数据放在运行puppetmaster服务的机器上,并在正在配置的机器上使用puppet agent
,以检索和应用适当的配置。听起来你已经看到了这两个例子。但是,在任何情况下,Puppet本身都需要在机器上进行配置。快速浏览之后,github上的示例链接绝对是将Puppet与Vagrant一起使用的最佳实践。使用vagrant puppet provisioner插件无疑是阻力最小的途径。这将是你问题的答案,除了简单地说“是的,像你提供的链接那样做”在我看来是一个糟糕的答案。此外,如果你vagrant软件包
,那么你的队友就不需要这些可用的或安装的模块。如果你把流浪汉的档案传给他们,你的运气可能会更好