增强 Vagrant Box 并另存为新框 - 使用 'vagrant package'?
enhance Vagrant Box and save as a new box - use 'vagrant package'?
抱歉,但是 chef/vagrant 等...围绕它们构建的工具太多,有时很难确定哪一个最适合解决手头的问题。所以在开始实际工作之前,我想确认一下要看哪个工具。
我正在使用 Chef 与 Vagrant 一起启动 VirtualBox 实例。它大部分都有效,但有时速度很慢,从我的角度来看,一些最不有趣的步骤似乎是自动化最具挑战性的。
基本上,我当前的系统包括:
安装一堆相当静态的先决条件,其中一些很难自动化(cx_oracle)或很大。
构建我的实际应用程序。
这是一个流程图
Vagrant
+---------------------+
|Ubuntu 14.04 box |
+---------------------+
+---------------------+ +-----------------------+ +----------------------------+
|Chef with berkshelf +------->+ install complicated +----> | |
| | | static requirements | | postgres |
+-------------------+-+ +-----------------------+ | |
| | |
| | cx_oracle connectivity |
| | |
| | |
| | large databases that are |
| | fixed and do not change |
| +----------------------------+
|
| +-----------------------+ +----------------------------+
| | dynamic stuff for my | | python code |
+--------> | build +----> | pip requirements |
+-----------------------+ | database migrations |
| |
+----------------------------+
我想做什么。
如果我只能偶尔做第一部分并将其保存到一个新盒子中,这将有助于我的工作流程。如果我可以通过手动进行复杂的 "fixed" 配置并在以后自动进行作弊,那对我真的很有帮助。
我见过 Packer,但它似乎有点矫枉过正,因为我不需要从 Ubuntu 服务器下载开始,我更愿意从现有的 Ubuntu 14.04 流浪者.
这是我想做的。 导出机制 位是我想要弄清楚的。
考虑到我现在只使用 VirtualBox,并且我不介意一些手动步骤来构建我的增强框,vagrant package 会成功吗?
而且,如果我想实现第一步的完全自动化,那么 Packer 就派上用场了吗?我应该看看其他工具吗?
+---------------------+
|Ubuntu 14.04 box |
+---------+-----------+
|
^
+---------+-----------+ +-----------------------+ +----------------------------+
|manually +-----^+ istall complicated +----> | |
|(or with Chef) | | static requirements | | postgres |
+---------+-----------+ +-----------------------+ | |
| | cx_oracle connecti^ity |
| | databases |
| +----------------------------+
|
|
v
+---------------------+
|**EXPORT MECHANISM** | +--------+
+---------------------+ |
|
|
|
+------------------+ |
| Vagrant step #2 | |
+------------------+ |
|
|
+---------------------+ |
|my custom box | <--------++
+---------------------+
+---------------------+
|Chef with berkshelf |
| |
+----------------+----+
|
|
|
|
|
|
|
|
| +-----------------------+ +----------------------------+
| | dynamic stuff for my | | python code |
+--------> | build +----> | pip requirements |
+-----------------------+ | database migrations |
| |
+----------------------------+
vagrant package
& vagrant box add ...
可能会完成这项工作,但是这样做是一种不好的做法。 "Baked" 图像往往是静态的且不可复制,使 Chef 恕我直言无用。
另请参阅:
抱歉,但是 chef/vagrant 等...围绕它们构建的工具太多,有时很难确定哪一个最适合解决手头的问题。所以在开始实际工作之前,我想确认一下要看哪个工具。
我正在使用 Chef 与 Vagrant 一起启动 VirtualBox 实例。它大部分都有效,但有时速度很慢,从我的角度来看,一些最不有趣的步骤似乎是自动化最具挑战性的。
基本上,我当前的系统包括:
安装一堆相当静态的先决条件,其中一些很难自动化(cx_oracle)或很大。
构建我的实际应用程序。
这是一个流程图
Vagrant
+---------------------+
|Ubuntu 14.04 box |
+---------------------+
+---------------------+ +-----------------------+ +----------------------------+
|Chef with berkshelf +------->+ install complicated +----> | |
| | | static requirements | | postgres |
+-------------------+-+ +-----------------------+ | |
| | |
| | cx_oracle connectivity |
| | |
| | |
| | large databases that are |
| | fixed and do not change |
| +----------------------------+
|
| +-----------------------+ +----------------------------+
| | dynamic stuff for my | | python code |
+--------> | build +----> | pip requirements |
+-----------------------+ | database migrations |
| |
+----------------------------+
我想做什么。
如果我只能偶尔做第一部分并将其保存到一个新盒子中,这将有助于我的工作流程。如果我可以通过手动进行复杂的 "fixed" 配置并在以后自动进行作弊,那对我真的很有帮助。
我见过 Packer,但它似乎有点矫枉过正,因为我不需要从 Ubuntu 服务器下载开始,我更愿意从现有的 Ubuntu 14.04 流浪者.
这是我想做的。 导出机制 位是我想要弄清楚的。
考虑到我现在只使用 VirtualBox,并且我不介意一些手动步骤来构建我的增强框,vagrant package 会成功吗?
而且,如果我想实现第一步的完全自动化,那么 Packer 就派上用场了吗?我应该看看其他工具吗?
+---------------------+
|Ubuntu 14.04 box |
+---------+-----------+
|
^
+---------+-----------+ +-----------------------+ +----------------------------+
|manually +-----^+ istall complicated +----> | |
|(or with Chef) | | static requirements | | postgres |
+---------+-----------+ +-----------------------+ | |
| | cx_oracle connecti^ity |
| | databases |
| +----------------------------+
|
|
v
+---------------------+
|**EXPORT MECHANISM** | +--------+
+---------------------+ |
|
|
|
+------------------+ |
| Vagrant step #2 | |
+------------------+ |
|
|
+---------------------+ |
|my custom box | <--------++
+---------------------+
+---------------------+
|Chef with berkshelf |
| |
+----------------+----+
|
|
|
|
|
|
|
|
| +-----------------------+ +----------------------------+
| | dynamic stuff for my | | python code |
+--------> | build +----> | pip requirements |
+-----------------------+ | database migrations |
| |
+----------------------------+
vagrant package
& vagrant box add ...
可能会完成这项工作,但是这样做是一种不好的做法。 "Baked" 图像往往是静态的且不可复制,使 Chef 恕我直言无用。
另请参阅: