我正在使用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 |
| |
+----------------------------+
答案 0 :(得分:1)
vagrant package
&amp; vagrant box add ...
可能会完成这项工作,但这样做是不好的做法。 “烘焙”图像往往是静态的,不可再现的,使厨师无用恕我直言。