Vagrant-虛擬機管理

1. 安裝Vagrant與VirtualBox

Vagrant

Vagrant是一個基于Ruby的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。它 使用Oracle的開源VirtualBox虛擬化系統(tǒng),使用 Chef創(chuàng)建自動化虛擬環(huán)境。
下載地址

VirtualBox

VirtualBox 是一款開源虛擬機軟件
Download

2. 添加box

// 查看box列表
C:\Users\DELL>vagrant box list
There are no installed boxes! Use `vagrant box add` to add some.

// 添加box
C:\Users\DELL>vagrant box add puphpet/centos65-x64
==> box: Successfully added box 'puphpet/centos65-x64' (v20161102) for 'virtualbox'!

3. 初始化,啟動,連接

// 在桌面新建guosk文件夾來初始化Vagrant
C:\Users\DELL\Desktop\guosk>vagrant box list
puphpet/centos65-x64 (virtualbox, 20161102)

// 初始化
C:\Users\DELL\Desktop\guosk>vagrant init puphpet/centos65-x64

// 啟動Vagrant
C:\Users\DELL\Desktop\guosk>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'puphpet/centos65-x64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'puphpet/centos65-x64' is up to date...
==> default: Setting the name of the VM: guosk_default_1479728274627_41041
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Remote connection disconnect. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 5.0.26
    default: VirtualBox Version: 5.1
==> default: Mounting shared folders...
    default: /vagrant => C:/Users/DELL/Desktop/guosk

PuTTY是一個Telnet、SSH、rlogin、純TCP以及串行接口連接軟件。
Download
使用putty.exe連接到虛擬機

Paste_Image.png

login as: vagrant
vagrant@127.0.0.1's password:
Last login: Mon Nov 21 11:47:02 2016 from 10.0.2.2
[vagrant@localhost ~]$ pwd
/home/vagrant

4. 啟動,停止,重啟,銷毀

// 啟動
vagrant up

// 停止
vagrant halt

// 使用ssh連接
vagrant ssh

// 安裝Apach服務器
sudo yum install httpd

// 啟動服務器
[vagrant@localhost ~]$ sudo service httpd start
exit

// 暫停虛擬機
vagrant suspend

// 恢復虛擬機
vagrant resume

// 重啟
vagrant reload

// 銷毀
vagrant destroy

yum

Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基于RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關(guān)系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。

5. 共享的目錄

默認情況下,vagrant會共享我們的項目目錄,在項目的虛擬機里面,會有一個跟我們的項目的目錄是同步的。這樣我們可以在本地的電腦上去編輯項目的文件,然后在虛擬機上運行它們。

// 虛擬機內(nèi)的'/vagrant'目錄和本地的項目目錄同步
 default: /vagrant => C:/Users/DELL/Desktop/guosk

6. 配置共享目錄

如果有額外的目錄要跟虛擬機同步的話,可以通過修改Vagrantfile這個文件,去添加這些額外的共享目錄。

// Vagrantfile
config.vm.synced_folder "../data", "/vagrant_data",
    create: true, owner: "root", group: "root"
    // creat:如果本地data文件夾不存在,就會創(chuàng)建
    // owner:目錄的擁有者
    // group:所屬群組

// 重啟Vagrant
vagrant reload
 default: /vagrant => C:/Users/DELL/Desktop/guosk
 default: /vagrant_data => C:/Users/DELL/Desktop/data

// vagrant目錄的擁有者和群組是vagrant
drwxrwxrwx.  1 vagrant vagrant     0 Nov 21 12:28 vagrant
// vagrant_data目錄的所有者和所屬群組是root
drwxrwxrwx.  1 root    root        0 Nov 21 12:41 vagrant_data

7. 網(wǎng)絡配置

Vagrant提供了三種方法:私有網(wǎng)絡、公有網(wǎng)絡、端口轉(zhuǎn)發(fā)

8. 私有網(wǎng)絡

// Vagrantfile
config.vm.network "private_network", ip: "192.168.33.10"
// 開啟私有網(wǎng)絡并重啟
// 然后本機和虛擬機之間就可以通信了

9. 公有網(wǎng)絡

如果想讓同一局域網(wǎng)內(nèi)的其他設備也可以訪問虛擬機的話,需要去配置公有網(wǎng)絡。

// Vagrantfile
config.vm.network "public_network"
// 設置公有網(wǎng)絡并重啟
vagrant ssh
// ssh登錄
ifconfig
// 查詢ip
inet addr:192.168.1.185  Bcast:192.168.1.255  Mask:255.255.255.0
// 虛擬機共有網(wǎng)絡IP

10. 搭建Web服務器

在虛擬機上搭建一個Web服務器來測試配置好的網(wǎng)絡。

// 安裝Apach服務器
sudo yum install httpd

// 安裝Vim
sudo yum install vim

$ sudo vim /etc/httpd/conf/httpd.conf
// 編輯Apach的配置文件
NameVirtualHost *:80

<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /vagrant/www/
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
// 將www目錄設置為虛擬機的根目錄

// 啟動httpd
$ sudo service httpd start

// 查看虛擬機共有IP
$ ifconfig
192.168.1.185

瀏覽器訪問192.168.1.185訪問vagrant里面的www這個目錄里面的東西;
為/vagrant跟我們電腦上的項目的目錄是同步的,所以,我們可以本地開發(fā)項目,然后通過在虛擬機上配置好的環(huán)境去運行項目。

11. 打包分發(fā)

// 打包之前先刪除一個文件
sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules
// 執(zhí)行打包
vagrant package

打包完成后會在當前目錄生成一個package.box文件,將這個文件傳給其他用戶,其他用戶只要添加這個box并用其初始化自己的開發(fā)目錄就能得到一個一模一樣的開發(fā)環(huán)境了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,835評論 6 534
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,676評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,730評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,118評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,873評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,266評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,330評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,482評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,036評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,846評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,025評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,575評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,279評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,684評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,953評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,751評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,016評論 2 375

推薦閱讀更多精彩內(nèi)容

  • Vagrant 是什么 Vagrant is a tool for building and distributi...
    與蟒唯舞閱讀 1,168評論 0 1
  • 開發(fā)需要在各種系統(tǒng)上進行開發(fā)任務,運維則需要在各種系統(tǒng)上學習工具使用。因此,虛擬機恐怕也是 IT 人員最常使用的工...
    李廣慧閱讀 5,565評論 3 24
  • 虛擬開發(fā)環(huán)境 在項目開發(fā)中,我們經(jīng)常會遇到各種各樣的問題,需要使用虛擬開發(fā)環(huán)境來完成,虛擬和正式環(huán)境一樣的虛擬開發(fā)...
    sunnyaxin閱讀 6,576評論 4 6
  • 一、【時間】: 兩個月(20161206~20170206) 二、【目標】: 完成本年度的業(yè)績目標(剩最后兩月30...
    賴星閱讀 170評論 0 0
  • 綠野鑲白玉, 藍天逐流云; 揚鞭須趁早, 放馬任馳騁。 殘陽知倦意, 好客暮云遲; 最是動人處, 策馬牧羊歸。 牧...
    等等老少年閱讀 404評論 0 4