增强Vagrant Box并保存为新盒子 - 使用' vagrant package'?

时间:2015-05-28 21:49:47

标签: vagrant chef virtualbox

道歉,但厨师/流浪汉等......围绕着它们建造了如此多的工具,有时难以确定哪一个适合手头的问题。因此,在开始实际工作之前,我想确认要查看哪个工具。

我正在使用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        |
                                                              |                            |
                                                              +----------------------------+

我想做什么。

如果我偶尔只做第一部分并将其保存到新盒子中,这将有助于我的工作流程。如果我可以通过复杂的"固定"来欺骗我真的会有所帮助。手动配置并在以后自动完成。

我见过Packer,但看起来有些过分,因为我不需要从Ubuntu服务器下载开始,我宁愿从现有的Ubuntu 14.04 Vagrant开始。

这是我想要做的事情。 导出机制位是我想要弄清楚的。

鉴于我现在只使用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        |  
                                                           |                            |  
                                                           +----------------------------+  

1 个答案:

答案 0 :(得分:1)

vagrant package&amp; vagrant box add ...可能会完成这项工作,但这样做是不好的做法。 “烘焙”图像往往是静态的,不可再现的,使厨师无用恕我直言。

另见: https://stackoverflow.com/a/20680816/427117