增强 Vagrant Box 并另存为新框 - 使用 'vagrant package'?

enhance Vagrant Box and save as a new box - use 'vagrant package'?

抱歉,但是 chef/vagrant 等...围绕它们构建的工具太多,有时很难确定哪一个最适合解决手头的问题。所以在开始实际工作之前,我想确认一下要看哪个工具。

我正在使用 Chef 与 Vagrant 一起启动 VirtualBox 实例。它大部分都有效,但有时速度很慢,从我的角度来看,一些最不有趣的步骤似乎是自动化最具挑战性的。

基本上,我当前的系统包括:

这是一个流程图

                      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 恕我直言无用。

另请参阅: