成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

和重復搭建開發環境說 Bye Bye 之Vagrant

云計算 虛擬化
每每新同事入職,都要在自己電腦上配置一堆環境,費神費力;每每開發測試都要重新配置開發環境,手工搭建,步驟很繁瑣,極易出錯。

 每每新同事入職,都要在自己電腦上配置一堆環境,費神費力;每每開發測試都要重新配置開發環境,手工搭建,步驟很繁瑣,極易出錯。

大神在時,大神搭建,大神不在,以手撫膺坐長嘆。為此,VVVVVagrant橫空出世!!!

虛擬機編排工具Vagrant

 

他,基于虛擬機,能打造出完美的物理隔離!

他,一次搭建,處處使用,拷貝一個鏡像就能讓新員工立即投入開發,當屬老板的最愛!

他,只需要一個文本,寥寥幾行,就能駕馭網絡配置、建立集群!

良好的第三方支持也讓他如魚得水,支持shell腳本、支持ansible自動部署等等。他就是我們的主角 Vagrant 。

這次,我們就以搭建python開發環境為例,享受vagrant給我們帶來的便利。

安裝

mac環境兩行命令

  1. brew cask install virtualbox 
  2. brew cask install vagrant 

其他環境下載兩個安裝包即可

vagrant包 https://www.vagrantup.com/downloads.html

virtualbox https://www.virtualbox.org/wiki/Downloads

檢查是否安裝成功

  1. $ vagrant version 
  2. Installed Version: 2.2.5 
  3. Latest Version: 2.2.5 
  4.  
  5. You're running an up-to-date version of Vagrant! 

初始化環境

第一種下載鏡像的方法

  1. vagrant box add --provider virtualbox centos/7 

其中--provider virtualbox代表校驗是否是virtualbox官方提供

第二種下載方法

  1. vagrant box add  --name centos/7  --provider virtualbox  /Users/pzqu/Documents/code/test/vbox/centos_virtualbox.box 

此處的/Users/pzqu/Documents/code/test/vbox是我的選定的下載目錄

對box的一系列操作命令文檔見這里https://www.vagrantup.com/docs/cli/box.html。

初始化

  1. cd /Users/pzqu/Documents/code/test/vbox 
  2. vagrant init centos/7 

此時目錄下會生成一個Vagrantfile文件,此文件就是自動化配置的關鍵

https://www.vagrantup.com/docs/vagrantfile/

看一看里面的注釋大概就知道怎么寫了,主要是ruby的語法,可以掛載本地目錄到虛擬機里,配置網絡(接入公網、僅虛擬機訪問都可以)等。

除了對虛擬機進行一些配置外,還可以通過各類Provisioner自動化地安裝軟件、調整配置。

詳見 https://www.vagrantup.com/docs/provisioning/

我的配置比較簡單,使用centos/7的系統,把本機代碼項目的目錄掛載到/data/code目錄就可以了。

啟動虛擬機以后直接在虛擬機里安裝開發環境,最后再打成鏡像就妥了。

配置如下

  1. Vagrant.configure("2") do |config| 
  2.   config.vm.box = "centos/7" 
  3.   config.vm.synced_folder "/Users/pzqu/Documents/code/gerrit""/data/code" 
  4. end 

掛載文件目錄的時候報錯

 

安裝此插件即可

  1. vagrant plugin install vagrant-vbguest 

搭建開發環境

在Vagrantfile所在目錄下,使用vagrant up啟動虛擬機

再用vagrant ssh登陸虛擬機

然后執行以下命令自動安裝我們想要的python環境,注意requirements.txt是python項目自動生成的

  1. pip install -r requirements.txt 

補充:自動生成requirements文件的方法

  1. pip freeze > requirements.txt 

配置pycharm

打開配置,添加插件

 

配置Vagrant環境

 

指定虛擬機中的Python路徑,第一步選 show all

 

選擇Vagrant選擇鏡像目錄與虛擬機中python路徑

 

配置啟動方式,這里我生成swagger,主要是Python interpreterpython路徑,Working direftory項目路徑(注意是虛擬機中映射的路徑,我這里在上一節配置的/data/code,我們在本地開發的時候會自動同步修改)

 

運行

 

導出box鏡像文件給別人使用

1.運行 vboxmanage list vms 命令,可以看出我們的vagrant下的虛擬機列表(我的虛擬機只有一個box,“vbox_default_1563884434349_3918“。)

  1. $ vboxmanage list vms 
  2. "vbox_default_1563884434349_3918" {59864f0b-9731-4839-baa2-95d9a6aab731} 

2.導出box鏡像

先關機,再導出。vagrant package是導出box的打包命令

  1. vagrant package --base vbox_default_1563884434349_3918 --output centos7_hanah_environment.box 

--base 代表本地

vbox_default_1563884434349_3918是你要導出的box的名稱

--output代表導出

centos7_hanah_environment.box 表示導出后的box名為centos7_hanah_environment.box,并保存在當前目錄下

3.接下來你會看到如下內容,就是導出成功了

  1. $ vagrant package --base vbox_default_1563884434349_3918 --output centos7_hanah_environment.box 
  2. ==> vbox_default_1563884434349_3918: Exporting VM... 
  3. ==> vbox_default_1563884434349_3918: Compressing package to: /Users/pzqu/Documents/code/test/vbox/centos7_hanah_environment.box 

喝完一瓶奶的功夫就完成了,這取決于你的box的大小,我的box大約900M。

這下直接發給你的朋友,一句命令就獲得了一個和你完全相同的開發/測試環境。

  1. $ vagrant box add centos7_hanah_environment ./centos7_hanah_environment.box 
  2. ==> box: Box file was not detected as metadata. Adding it directly... 
  3. ==> box: Adding box 'centos7_hanah_environment' (v0) for provider: 
  4.     box: Unpacking necessary files from: file:///Users/pzqu/Documents/code/test/vbox/centos7_hanah_environment.box 
  5. ==> box: Successfully added box 'centos7_hanah_environment' (v0) for 'virtualbox'

vagrant box add 別名 box名

其他想法

聽起來vagrant所做的這些事情和docker有很多重疊的地方,為什么不直接用docker來做呢?不僅可以一秒啟動一個最適合的環境,而且又輕量又純凈。

權衡利弊,vagrant本身并不是虛擬化技術,要把他跑起來還要安裝virtualbox等虛擬化平臺,他更像是虛擬機的外掛程序、編排工具;針對的是批量虛擬機的管理,常常用于瞬間創建一個開發環境。

而docker本身就是虛擬化技術,構建迅速,不占用資源;針對的是應用程序的編排,常常用于統一開發環境與生產環境。

說來說去,與其說是vagrant與docker,不如說使用是虛擬化平臺與容器之間的區別。

 

docker還是依賴于系統內核,如果內核不同,需要重新構建。

有時間我們來聊聊docker創建開發環境,有機會再來聊聊Docker Machine

本文轉載自微信公眾號「 編程三分鐘」,可以通過以下二維碼關注。轉載本文請聯系 編程三分鐘公眾號。

 

責任編輯:武曉燕 來源: 編程三分鐘
相關推薦

2011-04-26 09:54:04

激光筆投影儀

2019-11-18 14:00:40

開發工具環境搭建vagrant

2015-03-30 08:56:18

Docker高效開發環境虛擬化

2013-07-23 06:11:44

Android開發學習Android開發環境Java

2024-03-26 15:19:36

鴻蒙應用開發開發工具

2015-12-30 13:58:00

DockerGit開發環境

2009-07-03 16:56:37

JSP開發環境

2011-07-08 16:02:24

iphone

2017-03-02 15:33:24

Android Thi環境搭建

2010-04-03 11:30:15

Widget開發

2011-05-26 10:33:26

Android開發

2011-08-02 17:37:01

IPhone開發 環境搭建

2017-09-11 14:35:34

編輯器開發環境React

2011-07-26 09:04:44

MySQL Repli數據庫負載均衡

2011-08-25 15:02:17

Lua環境搭建EditPlus

2011-03-21 11:33:09

LAMPApache

2016-08-16 13:44:28

AndroidLinuxADT

2011-03-21 11:43:45

LAMPPHP

2011-08-31 13:11:53

AndroidPhoneGap

2009-12-30 18:02:32

Silverlight
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩伦理一区二区 | 亚洲一区二区三区在线播放 | 精品在线播放 | 日日摸夜夜添夜夜添特色大片 | 奇米超碰 | 91视频在线观看 | 亚洲欧美中文日韩在线 | www.色53色.com | 天天人人精品 | 特级毛片www | 国产日本精品视频 | 成人免费视频在线观看 | 国产精品久久国产精品 | 玖玖国产精品视频 | 日韩成人一区二区 | 国产一区在线免费观看 | 成人av免费在线观看 | 欧美黄色大片在线观看 | 国产精品成人国产乱一区 | 蜜桃视频在线观看免费视频网站www | 中文字幕第二区 | 一区二区免费在线观看 | 欧美不卡一区二区三区 | av一区二区在线观看 | 国产黄色av网站 | 久久精品国产亚洲一区二区三区 | 欧美精品久久久久 | 久久一区二区精品 | 亚洲国产精品一区二区三区 | 成人精品一区二区三区四区 | 欧美日韩国产一区二区三区不卡 | 亚洲久草| 精品综合在线 | 国产精品一区二区无线 | 国产在线精品一区二区三区 | 在线日韩视频 | 成人中文字幕在线 | 噜啊噜在线| 国产精品s色 | 久久久久欧美 | 国产成人精品一区二 |