使用Packer中.box中包含的文件来提供无业游民

杰克·史蒂文森

我正在使用打包程序构建一个无所事事的.box文件。我的包装器.json配置中有这样的内容:

"post-processors": [
//SNIP
  "include": [
    "./choco.ps1",
    "./vagrantUp.ps1",
    ]
]

它正在构建.box,如果我手动解压缩该文件,则可以看到其中包含的文件。当我最终运行“ vagrant box add Mybox http:// whatever ”时,我什至可以在我的〜/ .vagrant.d / boxes / MyBox / 0 / virtualbox文件夹中看到它们。

 ~ $ ls ~/.vagrant.d/boxes/MyBox/0/virtualbox/
Vagrantfile                 metadata.json
box.ovf                     packer-virtualbox-iso-1424829938-disk1.vmdk
choco.ps1                   vagrantUp.ps1

另外,在我的打包程序无业游民模板中,我有一行:

config.vm.provision  "shell", path: "vagrantUp.ps1"

接下来,我想初始化这台机器。我做了以下事情:

~ $ cd ~/Vagrant
Vagrant $ Vagrant mkdir MyBox; cd MyBox
MyBox $ vagrant init MyBox
MyBox $ ls
VagrantFile

该文件看起来像基本的无业游民的默认文件,但在最上面提到config.vm.box = "MyBox"

但是然后如果我vagrant up,我得到以下错误:

* `path` for shell provisioner does not exist on the host system: /Users/me/Vagrant/MyBox/vagrantUp.ps1

在我看来,/ Vagrant / MyBox中的VagrantFile正在引用〜/ .vagrant.d /中的VagrantFile,这很好,这就是我想要的。但是当文件实际上相对于〜/ .vagrant.d /时,它仍然使用相对于/ Vagrant / MyBox的路径。

我是否缺少告诉vagrant将这些文件复制到实例目录的步骤?还是我在无业游民的模板中错误地引用了它们?

牛奶

这些脚本将相对于Vagrantfile放置在主机上。path在此处查看以下部分:http : //docs.vagrantup.com/v2/provisioning/shell.html

它明确指出:

相对路径(例如上述路径)相对于项目的根Vagrantfile的位置进行了扩展。

我认为其中没有功能vagrant initvagrant init可以提取脚本并将其复制到Vagrantfile驻留的本地文件夹中我不知道为什么他们在Packer Vagrant后处理器中具有以下功能include

要在“ Vagrant”框中包含的文件的路径。这些文件将被复制到“ Vagrant”框的顶级目录中(无论其路径如何)。然后可以从Vagrantfile中使用它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从文件系统中删除“无业游民”框后,如何从全局状态中删除该框?

如何在代理环境中使用无业游民?

在无业游民的访客中使用主机的ssh私钥

如何在无业游民的基本(基线)框中包括和引用自定义ssh密钥?(virtualbox)

我应该使用无业游民的简历还是无业游民?

如何将同步文件夹打包到无业游民的盒子中

如何连接到无业游民的来宾操作系统中运行elasticsearch的Docker盒?

使用Packer从“无业游民”框创建VM映像?

在Ubuntu 14.04中运行无业游民的问题

使用无业游民的规定来更改ansible role_path

无业游民:供供需者使用的多种剧本

如何将数据库导入无业游民的mysql中?

从Docker容器中访问无业游民的VM

脚本中的Packer用户变量

在Amazon EC2中使用无业游民

如何配置VS Code来调试无业游民的容器中的代码?

从无业游民中删除默认串行端口

OSX:使用NFS在Ubuntu来宾中锁定无业游民

apache没有在无业游民的虚拟机中启动

在Ubuntu中添加无业游民框时出错

在Windows 10的(ubuntu)无业游民的盒子中运行docker

无业游民:在private_network中设置虚拟机的MAC地址(仅主机)

无法在无业游民的木偶中获得Metalink

使用无业游民和木偶时正确的开发流程

在无业游民/可设置的环境中,谁负责启动服务器(nodejs,rails)

使用ansible将git repo拉到无业游民的盒子

我被要求输入ubuntu用户的密码,而不是无业游民(我在GUI中登录的用户)

Xenial:无法在无业游民的盒子中安装mysql

无法访问无业游民的Nginx中的Laravel页面