再談Vagrant

前言

兩年前寫過一篇關於Vagrant,最近由於環境須要重溫了一下,因此又從新作了一次總結。html

Vagrant是什麼mysql

Vagrant是構建在虛擬化技術之上的虛擬機運行環境管理工具。經過Vagrant能夠輕鬆實現對虛擬機的管理,包括創建和刪除虛擬機、配置虛擬機運行參數、管理虛擬機運行狀態、自動化配置和安裝開發環境各種軟件、打包和分發虛擬機運行環境等,提供了一套基於配置文件和命令行的管理工具。sql

爲何要使用Vagrantubuntu

Vagrant能夠爲團隊開發成員提供一份服務器運行環境的虛擬機,你們都使用統一的開發環境,避免「在我機器上運行是好的,怎麼在你機器上不能運行」問題的發生。服務器

Vagrant中Boxes是什麼網絡

Boxes是一個包含可運行的操做系統及軟件的鏡像包,你能夠把它理解成一個箱子,箱子裏面包含了虛擬機配置、虛擬機硬盤鏡像,能夠直接被添加到Vagrant中使用。使用box,將再也不須要下載ISO鏡像文件、新建虛擬機、修改虛擬機配置等操做,由於box文件已經包含了這些,可直接拿過來使用。ssh

Vagrant安裝、配置及使用ide

1.下載VirtualBox並安裝工具

在線下載地址https://www.virtualbox.org/wiki/Downloads測試

2.下載Vagrant並安裝

能夠到https://www.vagrantup.com/downloads.html,選擇須要的版本進行下載。

3.下載box

vagrantbox種類比較多,能夠到http://www.vagrantbox.es/,選擇須要的類型進行下載,示例使用下載了Ubuntu precise 64 VirtualBox版本,地址:http://files.vagrantup.com/precise64.box

4.使用box

在使用box以前,建立如下目錄結構:

|--Applications

|--vagrant

|--boxes

|—works

執行如下命令:

cd ~/Applications/

mkdir vagrant

cd vagrant

mkdir boxes

mkdir works

而後將下載的precise64.box移動到boxes目錄下,而後執行如下命令:

vagrant box add ubuntu precise64.box

cd ..

cd works

vagrant init ubuntu #在works目錄下生成Vagrantfile文件

5.修改Vagrantfile文件

找到config.vm.network 「public_network",去掉前面的#,而後換行,在其後添加須要的端口映射,如mysql端口,

config.vm.network "forwarded_port", guest: 3306, host: 3306

而後保存。

6.啓動Vagrant

使用命令:vagrant up

若是執行受限,使用sudo。啓動過程當中,可能須要選擇網絡方式,以下圖。

這裏能夠選擇1) en0: Wi-Fi (AirPort),而後繼續啓動,若是沒有報錯,則啓動成功。這裏可能每次啓動都須要作選擇網絡方式,能夠配置成自動的方式,即修改Vagrantfile文件,在config.vm.network 「public_network」後添加bridge: "en0: Wi-Fi (AirPort)」,結果以下。

7.驗證是否啓動成功

進入works目錄下,執行如下命令:

vagrant ssh

成功鏈接則啓動成功,而後就能夠在虛擬機系統中安裝應用及操做了,例如安裝mysql等。

8.安裝MySQL

執行如下命令安裝MySQL,

sudo apt-get update

sudo apt-get install mysql-server #過程當中須要設置root用戶的密碼,必定要記住

sudo mysql_secure_installation #配置MySQL

9.驗證MySQL是否安裝成功

在第8步驟的命令行繼續執行命令,

mysql -u root -p

輸入密碼後,若是成功進入則安裝和啓動成功。

10.虛擬機外鏈接MySQL

MySQL是在虛擬機中安裝啓動的,在外部要使用客戶端進行鏈接訪問,須要作以下操做:

  • 10.1 進入works目錄,執行vagrant ssh,而後執行mysql -u root -p,進入mysql,接着執行grant all privileges on *.* to 'root'@'%' identified by '密碼' with grant option;,接着執行flush privileges;,最後退出。

  • 10.2 接上一步,執行sudo vi /etc/mysql/my.cnf,找到bind_address=127.0.0.1,在其前面添加#,保存。

  • 10.3 關閉Vagrant,而後從新啓動Vagrant。

  • 10.4 在外部使用任意MySQL客戶端作鏈接測試。

11.關閉Vagrant

進入works目錄下,執行如下命令:

vagrant halt

12.導出本地box

構建好的開發環境能夠導出給團隊成員使用,這樣團隊的開發環境就統一了。可使用以下命令導出box,

vagrant package --base 虛擬機實例的名稱 --output 導出後的box名稱

例如:

vagrant package --base works-default-1569977899-11232 --output new-box.box

這裏須要注意的是虛擬機實例的名稱,這個名稱是虛擬機裏面實例的名稱,能夠到VirtualBox中查看。 

相關文章
相關標籤/搜索