版æƒå£°æ˜Žï¼šè½¬è½½æ—¶è¯·ä»¥è¶…é“¾æŽ¥å½¢å¼æ ‡æ˜Žæ–‡ç« 原始出处和作者信æ¯åŠæœ¬å£°æ˜Ž
http://wushaobo.info/?p=83
Vagrant让虚拟化技术走近寻常家。脚è¸å®žåœ°åœ°è¯´ï¼Œç½‘络上类似“两分钟入门â€çš„æ–‡ç« 有ä¸å°‘,但求助å„ç§é—®é¢˜çš„取忛´å¤šï¼Œå› 为vagrant官网的文档太简æ´äº†ï¼Œè¿™é‡Œå¤´æœ‰äº›é“ç†æœ‰äº›å‘,都没涉åŠåˆ°ã€‚å³ä¾¿æ˜¯O’Reilly两天å‰å‡ºç‰ˆçš„《Vagrant: Up and Running》也å«ç³Šç€æŸäº›é—®é¢˜ã€‚å› è€Œåœ¨Google了å„ç§çš„å‰äººé›¶ç¢Žç»éªŒçš„基础上ã€ä»¥è‡ªå·±å®žè·µè¯æ˜Žä¹‹åŽï¼Œæœ‰äº†æˆ‘è¿™ç¯‡æ–‡ç« ï¼Œå¸Œæœ›å¯¹æ¶‰åŠåˆ°çš„这些问题能汇总知识åšä¸€ä¸ªæ¾„æ¸…ï¼Œå¹¶ç»™è¯»è€…ä¸€ä¸ªå¯æ“作的指导。
æ–‡ç« ç»“æž„
vagrant 的便利
vagrant 怎么玩
vagrant 到底怎么玩
— vagrant 基础模æ¿å“ªå„¿æ‰¾
— è¾¨æž vagrant box | *.box文件 | VM | *.iso文件
— Vagrantfile 怎么é…
——- [HOWTO] 指定è¦ä½¿ç”¨çš„vagrant box和设置VMåç§°
——- [HOWTO] 设置VM对宿主机和外部机器的网络连接
——- [HOWTO] é…置并å¯åЍVMåŽè¿è¡ŒåŽç»å®‰è£…脚本
ç–‘éš¾æ‚ç—‡
— VM上端å£çš„å¯è®¿é—®æ€§
— 修改默认ssh端å£
— å°†VM打包æˆ*.boxæ–‡ä»¶å‰æ¸…ç†ç½‘络设置上的障ç¢
— 设置共享目录ä½ç½®ä¸Žè¯»å†™æƒé™
— 多个VMçš„é…置和å¯åЍ
vagrant 的便利
- æ‰“é€ Virtual Machine的过程ä¸å¯æ”¾æ‰‹åšå°è¯•,åå¤ä»ŽæŸä¸ªåŸºç¡€æ¨¡æ¿å¼€å§‹å®‰è£…或设置。å¯å¿«é€ŸæŽ¨å€’釿¥ï¼Œå¯æ¥æ¥ä¸ºè¥ã€‚
- å¯å¿«é€Ÿåœ¨ä¸€å°å®¿ä¸»æœºä¸Šæå»ºå¤šVMçš„EndToEnd环境。
- 管ç†å¼€å‘环境,å¯è„šæœ¬åŒ–å¤åˆ¶ã€æ“纵ç‰è¡Œä¸ºï¼Œæé«˜è‡ªåŠ¨åŒ–ç¨‹åº¦ã€‚
vagrant 怎么玩
简å•点说,三æ¥èµ°ï¼š
- 安装vagrantã€VM软件(Virtualbox是主æµï¼ŒåŽæ–‡ä¹Ÿé»˜è®¤ä»¥æ¤ä¸ºä¾‹ï¼‰
- ç»™vagrantæ·»åŠ åŸºç¡€æ¨¡æ¿ï¼ˆbox)
- é…ç½®VagrantfileåŽç”¨vagrantå¯åЍVM
满共就三个命令,有些人玩到这就觉得已ç»ä¼Ÿå¤§çš„ä¸å¾—了了,至æ¤ssh上VMå„ç§è™ã€‚
ä½ è¿˜å·®å¾—è¿œ !
vagrant 到底怎么玩
vagrant 基础模æ¿å“ªå„¿æ‰¾
www.vagrantbox.es介ç»äº†vagrant的基础模æ¿ï¼Œå¹¶æä¾›äº†æ»¡è¶³å„ç§éœ€æ±‚çš„*.box文件供下载。
推è选择 minimal + guest additions + puppet|chef çš„box,ç†ç”±ï¼š
- å°ï¼Œå°±æ„味ç€èµ„æºå 用少
- Virtualbox共享目录需è¦guest additions
- 预装puppet或chefå¹¶éžå¿…é€‰ã€‚å®ƒä»¬å¯¹æœªæ¥æå‡VMé…置自动化有好处,本身ä¸å¤§
è¾¨æž vagrant box | *.box文件 | VM | *.iso文件
è§£é‡Šè¯æ±‡ï¼š
- 打包了æ“作系统的*.isoæ–‡ä»¶æ˜¯æ— æ³•è¢«vagrant直接使用的
- VM是å¯å¯åЍ/å·²å¯åŠ¨çš„è™šæ‹Ÿæœº
- *.box文件是vagrant坿ޥå—çš„åŸºç¡€æ¨¡æ¿æ–‡ä»¶
- vagrant box指vagrant已安装好的基础模æ¿
辨æžå…³ç³»ï¼š
- *.iso文件 å¯ç»Virtualbox界é¢çš„æ‰‹åŠ¨å®‰è£…å¾—åˆ°å¯å¯åŠ¨çš„VM
- VM å¯è¢«vagrant package命令打包æˆä¸º *.box文件
- *.box文件 å¯è¢«vagrant box add命令安装为 vagrant box
- vagrant box å¯è¢«vagrant在Vagrantfile䏿Œ‡å®šä¸ºVMè¿è¡Œçš„基础模æ¿
Vagrantfile 怎么é…
Vagrantfile是vagranté…ç½®VM的起点,官方文档里零零散散的说明让我明白了“东西很简å•,但找对ä¸å®¹æ˜“â€è¿™å¥è¯ã€‚
对Vagrantfileï¼Œæœ‰å‡ ä¸ªå¸¸é—® HOWTO:
- 指定è¦ä½¿ç”¨çš„vagrant box和设置VMåç§°
- 设置VM对宿主机和外部机器的网络连接
- é…置并å¯åЍVMåŽè¿è¡ŒåŽç»å®‰è£…脚本
[HOWTO] 指定è¦ä½¿ç”¨çš„vagrant box和设置VMåç§°
一看便知。
Vagrant.configure("2") do |config| # ‘2â€™çš„æ„æ€æ˜¯æˆ‘所用的vagrant-1.2.2属于内部v2版
config.vm.define :web do |web_config| # 设置æ¤VMå称为web
web_config.vm.box = "apache-centos" # 指定使用已安装的å为“apache-centosâ€çš„vagrant box
end
end
[HOWTO] 设置VM对宿主机和外部机器的网络连接
- 当VMåªä¸Žå®¿ä¸»æœºé€šä¿¡æ—¶ï¼Œå¯è®¾ç½®ä¸ºç§æœ‰ç½‘ç»œï¼Œç‰æ•ˆäºŽè®¾ç½®virtualbox使用host-only模å¼ç½‘络适é…器。
config.vm.network :private_network, ip: "192.168.50.4"
- 当寄宿与åŒä¸€å®¿ä¸»æœºä¸Šçš„多å°VM之间也需相互通信时,设置å„VMä¸ºç§æœ‰ç½‘络,但将固定IP设为åŒä¸€ç½‘段。
- 当VM需è¦ä¸Žå®¿ä¸»æœºç½‘ç»œå†…çš„å…¶ä»–æœºå™¨é€šä¿¡æ—¶ï¼Œè®¾ç½®ä¸ºå…¬å¼€ç½‘ç»œï¼Œç‰æ•ˆäºŽè®¾ç½®virtualbox使用bridged模å¼ç½‘络适é…器,默认DHCP获å–地å€ã€‚
config.vm.network :public_network # vagrant-1.2.2之åŽçš„版本å¯èƒ½æ”¹ç”¨ :bridged
[HOWTO] é…置并å¯åЍVMåŽè¿è¡ŒåŽç»å®‰è£…脚本
- 追求简å•,那么下é¢ä¸¤æ¡é…置其一就够用了
config.vm.provision :shell, :inline => "ifconfig" # inline script config.vm.provision :shell, :path => "initialize.sh" # external script
- ä¸å¾—ä¸å¤æ‚时,Chef / Puppet / Ansible 都是å¯ä¾›ä½ 用的。细致é…ç½®è§å‚考。
- 自动化部署是好的,但如果是VMæ¯æ¬¡å®‰è£…固定软件,那么就ä¸å¿…了。大å¯ä»¥å°†ä¸å˜çš„软件安装é…置完æˆåŽï¼Œå°†VM打包æˆä¸º*.boxæ–‡ä»¶é™æ€åŒ–,以åŽä»¥æ¤box文件作为基础模æ¿åšè¿›ä¸€æ¥é…ç½®ã€‚æ¥æ¥ä¸ºè¥çš„æå‡åŸºç¡€çš„å®žè·µï¼Œä¼šåŠ é€ŸVMæå»ºè¿‡ç¨‹å¹¶å‡å°‘é…置脚本。
ç–‘éš¾æ‚ç—‡
VM上端å£çš„å¯è®¿é—®æ€§
尤其对ä¸è¿žå¤–网的VM,我们辛苦建了它å´ä¸èƒ½è®¿é—®å®ƒçš„端å£ï¼Œé‚£è¦å®ƒä½•用?防ç«å¢™æ˜¯é˜»æ¢ç«¯å£è®¿é—®çš„罪é,索性关了它å§ã€‚
Centos/Redhat/Fedora 用iptables管ç†firewallï¼Œæ‰€ä»¥ä¸¤ä¸ªåŠžæ³•æžæŽ‰å®ƒ
- åœæŽ‰iptablesçš„æœåŠ¡, å‚考
$ sudo service iptables save $ sudo service iptables stop $ sudo iptables off
- 索性干掉iptables的所有规则, å‚考
$ sudo iptables -F $ sudo iptables -X $ sudo service iptables save
Ubuntu 用ufw管ç†firewall,关掉它就是了,å‚考
$ sudo ufw disable
修改默认ssh端å£
场景
ssh端å£é»˜è®¤22,那ä½è¯´â€œä¸ºä»€ä¹ˆæˆ‘è¦æ”¹å®ƒå‘¢â€ï¼Œæˆ‘例举一个场景:
å‡å¦‚ä½ è¦å¼€å‘一个包å«SFTP server的应用。为了给使用者æä¾›ä¾¿åˆ©ï¼Œä½ 最好ä¿ç•™22端å£ç»™ç”¨æˆ·ï¼Œä½¿ä»–能使用默认方å¼é€šè¿‡SFTPä¼ æ–‡ä»¶ã€‚åŒæ—¶ï¼Œä½ è¦å°†è¿™ä¸ªåº”用部署到VMä¸Šåšæµ‹è¯•,那么VMçš„ssh loginå°±ä¸èƒ½åŒæ—¶ä¹Ÿç”¨22端å£äº†ï¼Œä½ 需è¦ä¸ºå®ƒæŒ‡å®šæ–°ç«¯å£ï¼Œå¦‚ 10022。
难点
难点在于下é¢çš„çº¦æŸæ¡ä»¶ï¼š
- 原有VM的基础模æ¿é»˜è®¤ä½¿ç”¨22端å£ï¼Œæ‰€ä»¥vagrantä¸èƒ½ä¸€å¼€å§‹å°±å¼ƒç”¨22端å£ï¼Œå¦åˆ™VMæ— æ³•è®¿é—®ã€‚
- VM上ssh端å£çš„æ”¹å˜ä¸ºæ–°ç«¯å£åŽï¼Œå†é‡å¯VMå‰éœ€è¦æ›´æ”¹Vagrantfile以选用新端å£ã€‚
- vagrant ssh命令并ä¸ç›´æŽ¥è®¿é—®VMçš„ssh端å£ï¼Œè€Œæ˜¯é€šè¿‡è®¿é—®å®¿ä¸»æœºçš„22XXç«¯å£æ¥é—´æŽ¥ssh login到VM上。
- vagrant内置了从宿主机22XX端å£å‘VMçš„22端å£çš„æ˜ 射,如果VM的新端å£å¹¶æ²¡æœ‰è¢«æŒ‡å®šæ˜ 射到宿主机的æŸä¸ªç«¯å£ä¸Šï¼Œvagrant ssh命令ä»ä¼šè®¿é—®åŽŸæ¥çš„宿主机22XX端å£å³VMçš„22端å£ã€‚(vagrant选择22XXç«¯å£æ—¶çš„å°è¯•路线是:2222 -> 2201 -> 2202 -> 2203 -> … ,以æ¤ä¿è¯å¤šå°VMå¯åŠ¨æ—¶ä¸ä¼šæœ‰ç«¯å£å†²çªã€‚)
呿˜¯æŒºå¤šçš„å§ï¼ŸVagrantfileçš„ssh settingså‚考和forwarded portså‚è€ƒå¯æ²¡æŠŠè¿™äº‹å„¿è¯´è¿™ä¹ˆæ¸…楚。
行动大纲
解决问题须è¦åˆ†å‡ æ¥èµ°ï¼š
- 预先在Vagrantfileä¸ä¸ºVM的新端å£åšç«¯å£æ˜ å°„
- VM上修改ssh使用的端å£åˆ°æ–°ç«¯å£
- 在Vagrantfile䏿Œ‡å®šssh login时使用VM的新端å£
- [éžå¿…åš] 建立新基础模æ¿ä»¥å›ºåŒ–上述更改
按æ¥éª¤èµ°èµ·
Step1: 在Vagrantfileä¸ä¸ºVM的新端å£åšç«¯å£æ˜ å°„
config.vm.network :forwarded_port, guest: 10022, host: 2255
# config.ssh.port = 2255 # port of host # commented in step1
# config.ssh.guest_port = 10022 # port of VM # commented in step1
Step2: VM上修改ssh使用的端å£åˆ°æ–°ç«¯å£
- VM上将22ç«¯å£æ¢ä¸º10022端å£ï¼švi编辑sshd_config文件( Centos/Ubuntu: /etc/ssh/sshd_config ï¼›Mac OS X: /etc/sshd_config )
:%s/#Port 22/Port 10022/g :wq
- é‡å¯sshdæœåŠ¡
$ sudo service sshd restart
Step3: 在Vagrantfile䏿Œ‡å®šssh login时使用VM的新端å£
config.vm.network :forwarded_port, guest: 10022, host: 2255
config.ssh.port = 2255 # port of host # uncommented in step3
config.ssh.guest_port = 10022 # port of VM # uncommented in step3
Step4 [optional]: 建立新基础模æ¿ä»¥å›ºåŒ–上述更改
使用vagrant package命令将改过端å£çš„VMä¿å˜ä¸ºboxæ–‡ä»¶ã€‚ç”±è¿™ä¸ªæ–°åŸºç¡€æ¨¡æ¿æ‰€äº§ç”Ÿçš„VMä¸ï¼Œ10022å³ä¸ºssh访问端å£ï¼Œä½¿ç”¨ä¸Šè¿°çš„Vagrantfileå¯ç›´æŽ¥é€šè¿‡vagrant ssh访问。
vagrant package <vm-name> --output <new-base.box>
ç”Ÿæˆæ–°*.box文件å‰é¡»æ¸…ç†ç½‘络设置上的障ç¢ã€‚详è§ä¸‹æ–‡ã€‚
å°†VM打包æˆ*.boxæ–‡ä»¶å‰æ¸…ç†ç½‘络设置上的障ç¢
将手动é…置过的VM釿–°æ‰“包生æˆ*.box文件作为新基础模æ¿ï¼Œåœ¨è¿™ä»¶äº‹ä¸Šå¯¹linux-basedçš„VM有个关于网络设置的障ç¢ã€‚
问题表现
例如设置了private network(ç‰åŒäºŽvirtualbox设置host-only模å¼çš„网络适é…器)的VM,若ä¸åšå‡†å¤‡è€Œç›´æŽ¥ä½¿ç”¨vagrant packageç”Ÿæˆæ–°box文件,那么安装æ¤box文件到vagrant boxåŽåœ¨å¯åЍVM时,会å‘现当å‰Vagrantfile指定的private networké…置失败。
[default] Configuring and enabling network interfaces…
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!/sbin/ifup eth1 2> /dev/null
被å¯åŠ¨çš„VM以让å¯ä»¥é€šè¿‡vagrant ssh命令去访问,但网络é…ç½®ä¸Šå´æ²¡æœ‰host-only模å¼çš„适é…器。
分æžè§£å†³
还记得é…ç½®private network时设置的固定ip地å€ä¹ˆï¼Ÿæ˜¯çš„,问题就在æŒä¹…网络设备udev规则(persistent network device udev rules)是被原VM设置好的,å†ç”¨boxç”Ÿæˆæ–°VM时,这些rules需è¦è¢«æ›´æ–°ã€‚而这和Vagrantfile里对新VM设置private network的指令å‘生冲çªã€‚
既然以åŽåœ¨Vagrantfile里显示地设置private network ip是å…ä¸äº†çš„,那么åªè¦åœ¨ç”Ÿæˆbox文件å‰å¹²æŽ‰udev规则就是了。
sudo rm -f /etc/udev/rule.d/70-persistent-net.rules
题外è¯
有趣的是这篇å‚è€ƒç»†è¿°äº†è¿™ä¸ªé—®é¢˜çš„å› æžœä¸Žå¯¹ç–,å倒是O’Reilly出版的《Vagrant: Up and Running》一书ä¸ï¼ˆç¬¬6ç« ï¼‰å¯¹æ¤å«ç³Šå¸¦è¿‡ã€‚
该书计划于2013å¹´6月12日出版。试读版ä¸å°šä»æœ‰å¯¹è¿‡æ—¶å‘½ä»¤çš„介ç»ï¼ˆå¦‚“repackageâ€ï¼‰ï¼Œå¸Œæœ›æ£ä¹¦å‡ºæ¥äº†ä¸ä¼šç«‹å³è¿‡æ—¶ã€‚
å¦ä¹ çš„è¯ï¼Œå®˜ç½‘文档还是应该对照的。
设置共享目录ä½ç½®ä¸Žè¯»å†™æƒé™
Virtualbox共享目录需è¦VM上装有Guest Additions。自己安装到VM冿‰“包æˆbox文件åšåŸºç¡€æ¨¡æ¿ï¼Œæˆ–者一开始就找好åˆé€‚çš„boxæ–‡ä»¶ï¼ˆå‰æ–‡æåˆ°è¿‡ï¼‰ï¼Œéšä¾¿ä½ 怎么整好。
vagrant 默认将宿主机上Vagrantfile所载目录共享至VM上的 /vagrant 目录。
我们常需è¦çš„æ˜¯æŒ‡å®šå…±äº«æŸä¸ªç›®å½•,为æ¤vagrant 支æŒä¸¤ç§æ–¹å¼ï¼š
简å•:vboxsf
vboxsf是VirtualboxSharedFolder(或VboxSharedFolder)的缩写。很多人知é“å¯ä»¥æŒ‡å®švboxsf作类型æ¥mount,å´ä¸çŸ¥è¿™ä¸ªè¿™ä¸ªè¯å…¨ç§°ï¼Œç”šè‡³è¯¯è§£ä¸ºâ€œè™šæ‹Ÿæœºæ–‡ä»¶ç³»ç»Ÿâ€è€Œé”™å†™æˆvboxfs。
vagranté»˜è®¤ä½¿ç”¨è¿™ç§æ–¹å¼å…±äº«ç›®å½•。优点方便,缺点是性能ä¸å¥½ã€‚é…置时,åªè¦åœ¨Vagrantfile里指明:
config.vm.synced_folder "path/on/host", "/absolute/path/on/vm"
- å‰ä¸€ä¸ªå‚数须是宿主机上已å˜åœ¨çš„目录,若为相对目录,那是相对Vagrantfile所在目录。
- åŽä¸€ä¸ªå‚数须是VM上的ç»å¯¹è·¯å¾„,若ä¸å˜åœ¨ï¼Œvagrant会在å¯åЍVM时建好,多层的目录也没关系。
æ£ç»ï¼šNFS
NFS是æ£é€”,ä¸è¿‡å®ƒä¹ŸæŒ‘剔。
vagrant 内置了宿主机和VM两端对NFS的支æŒä¸Žé…置的åè°ƒã€‚å¦‚æžœä½ ç”¨windows,那vagrantå½“ä½œä½ çš„é…ç½®ä¸å˜åœ¨ï¼Œç›´æŽ¥å¿½ç•¥ï¼ˆæˆ‘ä¹Ÿè§‰å¾—ä½ åœ¨çžŽèƒ¡é—¹ï¼‰ã€‚Vagrantfileé‡Œå¾ˆå®¹æ˜“ï¼Œæ ‡ä¸Šæ ‡è®°å°±è¡Œäº†ï¼š
config.vm.synced_folder "path/on/host", "/absolute/path/on/vm", :nfs => true
- 两个目录å¯ä»¥ä¸€æ ·ï¼Œå¦‚都用 “/sharedâ€ï¼Œè—‰æ¤å»ºç«‹å¤šä¸ªæœºå™¨èŠ‚ç‚¹çš„å…±äº«å˜å‚¨äº†ã€‚
NFSçš„å…±äº«ç›®å½•è¿™ç§æ–¹å¼çš„æŒ‘剔之处在于目录内的读写æƒé™ã€‚
读写æƒé™
以建立宿主机与VM的共享å˜å‚¨è¿™ä¸ªåº”ç”¨åœºæ™¯ä¸ºä¾‹ï¼Œç›®æ ‡æ˜¯ï¼š
- 两端对共享目录(/sharedï¼‰çš„è¯»å†™æ— é™åˆ¶
- 没有rootæƒé™çš„麻烦
å¦‚æžœä½ åœ¨å®¿ä¸»æœºå»º/shared,然åŽç›´æŽ¥é…置关è”ï¼Œé‚£å¯¹ä¸Šè¿°ä¸¤ä¸ªç›®æ ‡ä½ éƒ½ä¼šå¤±è´¥ã€‚æŒ‰æˆ‘è¯´çš„æ¥éª¤æ¥å§ï¼š
- 宿主机上将建立的共享目录改为å¯è¯»å†™
$ sudo chmod o+w /shared
- 设置为non-root用户所有
$ sudo chown <user>:<group> /shared
- é…置了VagrantfileåŽå¯åЍVM
config.vm.synced_folder "/shared", "/shared", :nfs => true
è¿™æ ·å¾—åˆ°çš„å…±äº«ç›®å½•å¯¹åœºæ™¯è®¾å®šçš„ç›®æ ‡å·²å¤§åŠŸå‘Šæˆäº†ï¼š
- 在宿主机和VMä¸¤ç«¯éƒ½å®ƒéƒ½ä¸æ˜¯root用户所有
- 宿主机上 /shared 属于例如twer用户。
- VM上 /shared 所属的用户会是个数å—,如1000。
- 在宿主机和VMä¸¤ç«¯å®ƒéƒ½å¯¹è¯»å†™æ— é™åˆ¶
多个VMçš„é…置和å¯åЍ
å•Vagrantfile vs 多Vagrantfile
虽然vagrant支æŒåœ¨ä¸€ä¸ªVagrantfileä¸é…置多个VM,但我个人喜欢为å„VM写å„自的Vagrantfile。
- 一æ¥ï¼Œå„个VMçš„é…置和å¯åŠ¨éƒ½ç›¸å¯¹ç‹¬ç«‹ï¼Œå¦‚vagrant sshæ—¶å¯ä¸æŒ‡å®šVMå,用默认。
- 二æ¥ï¼ŒVagrantfile也ä¸è‡³äºŽå¸¸å¸¸è¦æ”¹ã€‚
ä¸è¿‡çœŸæ£çš„牛人没我这么å°å®¶å气。用统一的一个Vagrantfileæ¥ç®¡ç†å¤šä¸ªVM,从大局ç€çœ¼ç¡®æ˜¯æœ‰å¥½å¤„的:
- 一个Vagrantfileæ”¶å½•äº†æ•´ä¸ªå¤§çŽ¯å¢ƒä¸æ‰€æœ‰VM的基本é…置,维æŒäº†è™šæ‹Ÿç½‘络的上下文完æˆã€‚ä½ ä¸€çœ¼å°±çŸ¥é“环境里共有哪些VM,也ä¸éœ€è¦åˆ‡æ¢ç›®å½•æ¥æ£€æŸ¥å„VM的状æ€ï¼Œè·Ÿä¸ä¼šæžæ··äº†ç›®å½•“丢掉â€å“ªä¸ªå€’霉的VM。
- 更多地使用Chef/Puppetæ¥é…ç½®å„VM,比如把VMçš„ipé…置从VagrantfileåŽæŽ¨åˆ°puppetè¿›è¡Œï¼Œä¿æŒVagrantfile的简æ´ã€‚目的是在对本地环境的VMé…置与E2E环境(甚至生产环境)的节点é…ç½®ä¸Šï¼Œä¿æŒè¾ƒé«˜çš„一致性,有利于统一部署方å¼ã€‚
è¦è‡ªåŠ¨åŒ–
自动化都求个æžè‡´ï¼Œä¸€æ¡å‘½ä»¤æžå®šçš„工作就ä¸ä¹æ„è®©äººæ•²å‡ è¡Œã€‚ä½ è¦å¤¹æ‚写手动é…ç½®å†å†™ä¸ªè¯´æ˜Žæ–‡æ¡£å•¥çš„ï¼Œé‚£ä½ çœŸä¸è¯¥å¥½æ„è·Ÿäººæ‰“æ‹›å‘¼ã€‚è‡ªåŠ¨åŒ–æµ‹è¯•ä¹ŸæœŸæœ›æœ‰å¯æ‰§è¡Œæ¥è‡ªåЍé…置环境的脚本。
从简å•åšèµ·å§ï¼Œåˆå¹¶ä½ 能想到的æŸé¡¹ä»»åŠ¡çš„å‡ æ¥å˜ä¸ºè„šæœ¬ä¸€æ¬¡æ‰§è¡Œï¼Œæ¯”å¦‚ï¼š
- 推倒é‡å»ºä¸€ä¸ªVM
- 推倒é‡å»ºä¸€ç»„VM,
- åˆå§‹åŒ–一组的vagrant box
- VMå¯åŠ¨åŽæ‰§è¡Œpost-install
- ……
会越玩越有感觉的。