Vagrant安裝和使用

下載并安裝程序


新建項目目錄vagrant(隨便啦恋捆,就是用來開發(fā)的項目目錄)棵逊,并將下載的box文件復制進來(不一定需要,只是為了方便后面操作的說明)悼吱,之后的命令都是在這個目錄下進行的

添加box


vagrant box add u14evm xenial-server-cloudimg-amd64-vagrant.box

image.png

命令vagrant box add <boxName> <boxFilePath>中:
<boxName>為自己指定的box名字(默認為base)
<boxFilePath>為下載的box文件本地路徑

其他相關命令:

  • 查看box列表:vagrant box list
  • 刪除box:vagrant box remove <boxName>

vagrant初次安裝


  • 初始化vagrant:vagrant init u14evmu14evm<boxName>),生成Vagrantfile
  • 安裝并啟動虛擬機:vagrant up(第一次才是安裝慎框,之后就只是啟動)
  • 登錄:vagrant ssh

這里第二步:vagrant up
可能會出現(xiàn)Warning: Remote connection disconnect. Retrying...Warning: Authentication failure. Retrying...這個錯誤,可能是自動登不上虛擬機后添。

image.png

打開virtualbox笨枯,看看安裝的虛擬機的運行情況

image.png

發(fā)現(xiàn)是正常啟動的,說明已經(jīng)安裝好了遇西,只是無法自動登錄馅精。點擊上圖上面的顯示,查看虛擬機的終端粱檀,如下圖洲敢,需要登錄
image.png

賬號和密碼都輸入vagrant,如下可以正常登錄并使用了
image.png

解決辦法:改用私鑰登錄

  1. vagrant ssh 默認通過vagrant賬號(密碼也是vagrant)登錄虛擬機(查看virtualbox確保虛擬機是啟動狀態(tài)的)
  2. ssh-keygen -t rsa 生成rsa公私鑰
    image.png
  3. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 將公鑰添加到authorized_keys文件里面
    image.png
  4. cat .ssh/id_rsa 查看私鑰梧税,并在目錄新建一個文件id_rsa將私鑰復制進來
    image.png
  5. config.ssh.private_key_path = 'id_rsa' 編輯目錄下的Vagrantfile配置文件沦疾,加入此配置
  6. logout 登出虛擬機后,重新vagrant ssh登錄第队,可以正常登錄了
  7. vagrant reload重啟哮塞,可以看到正常啟動的狀態(tài)了
    image.png

如果上面第一步vagrant ssh沒有密碼登錄,而是出現(xiàn)publickey密鑰錯誤如下

image.png

vagrant ssh-config查看配置凳谦,
image.png

是讀取D:/vagrant/.vagrant/machines/default/virtualbox/private_key的私鑰忆畅,但是根據(jù)https://github.com/hashicorp/vagrant/issues/9433上面說的,是因為沒有那個文件的權限尸执,以及win10系統(tǒng)ssh二進制包的問題家凯,可以試試使用cmder試試。
如果還是不可以的話如失,那就只能先通過virtualbox使用vagrant賬戶登錄绊诲,然后在里面生成公私鑰,和前面2褪贵、3步一樣配一下虛擬機的公鑰掂之,將私鑰git push到遠端,主機這邊從遠端拉下私鑰脆丁,執(zhí)行5世舰、7步就可以了。
總之就是自己定義公私鑰槽卫,然后想法設法讓主機和虛擬機通過自己的公私鑰交流

其他相關命令:
啟動虛擬機:vagrant up(第一次是)
刪除虛擬機:vagrant destroy
暫停虛擬機:vagrant suspend(推薦)
關閉虛擬機:vagrant halt (耗時不推薦)
恢復被暫停的虛擬機:vagrant resume
重啟虛擬機:vagrant reload(每次改了Vagrantfile配置文件記得重啟)
查看虛擬機狀態(tài):vagrant status
執(zhí)行shell命令:vagrant provision(用于執(zhí)行一鍵部署)

Vagrantfile把下面的shell腳本注釋去掉跟压,添加echo "hello world",保存并執(zhí)行vagrant provision測試是否能夠正常使用

config.vm.provision "shell", inline: <<-SHELL
    echo "hello world"
  SHELL
image.png

vagrant開發(fā)環(huán)境搭建

  • 配置Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  # 虛擬機名字<boxName>
  config.vm.box = "u14evm"

  # 指定私鑰文件路徑
  config.ssh.private_key_path = 'id_rsa'
  
  # 橋接網(wǎng)絡
  config.vm.network "public_network"

  # 映射文件夾
  config.vm.synced_folder "./web/", "/var/www/web"

  # shell腳本
  config.vm.provision "shell", inline: <<-SHELL
    # 切換為root用戶運行
    sudo su
    bash -ex /var/www/web/setup.sh
  SHELL
end
  • 重啟:vagrant reload
  • 執(zhí)行腳本:vagrant provision

其中setup.sh腳本做了以下幾件事:

  • 換源
  • 安裝依賴
  • 配置相應服務器軟件 supervisor nginx redis 等
  • 重啟相應服務器軟件 supervisor nginx 等

setup.sh腳本

# 換源
ln -f -s /var/www/web/misc/sources.list /etc/apt/sources.list
mkdir -p /root/.pip
ln -f -s /var/www/web/misc/pip.conf /root/.pip/pip.conf

# 裝依賴
apt-get update
apt-get -y install nginx

echo 'succsss'
echo 'ip'
hostname -I

misc/sources.list下寫入ubuntu源(注意虛擬機的版本和源的版本一致)

# 默認注釋了源碼鏡像以提高 apt update 速度歼培,如有需要可自行取消注釋
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

# 預發(fā)布軟件源震蒋,不建議啟用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

misc/pip.conf(清華的pip源)

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/

通過setup.sh最后的hostname -I可以查看當前虛擬機的ip地址茸塞,局域網(wǎng)的其他電腦可以通過這個地址訪問虛擬機,如下

image.png

因為已經(jīng)安裝了nginx喷好,默認是開啟的翔横,在主機的瀏覽器輸入192.168.1.14读跷,即可訪問到nginx服務

image.png

參考鏈接


最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梗搅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子效览,更是在濱河造成了極大的恐慌无切,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丐枉,死亡現(xiàn)場離奇詭異哆键,居然都是意外死亡,警方通過查閱死者的電腦和手機瘦锹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門籍嘹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人弯院,你說我怎么就攤上這事辱士。” “怎么了听绳?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵颂碘,是天一觀的道長。 經(jīng)常有香客問我椅挣,道長头岔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任鼠证,我火速辦了婚禮峡竣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘量九。我一直安慰自己适掰,他們只是感情好,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布娩鹉。 她就那樣靜靜地躺著攻谁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪弯予。 梳的紋絲不亂的頭發(fā)上戚宦,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音锈嫩,去河邊找鬼受楼。 笑死垦搬,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的艳汽。 我是一名探鬼主播猴贰,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼河狐!你這毒婦竟也來了米绕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤馋艺,失蹤者是張志新(化名)和其女友劉穎栅干,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捐祠,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡碱鳞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了踱蛀。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窿给。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖率拒,靈堂內(nèi)的尸體忽然破棺而出崩泡,到底是詐尸還是另有隱情,我是刑警寧澤俏橘,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布允华,位于F島的核電站,受9級特大地震影響寥掐,放射性物質(zhì)發(fā)生泄漏靴寂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一召耘、第九天 我趴在偏房一處隱蔽的房頂上張望百炬。 院中可真熱鬧,春花似錦污它、人聲如沸剖踊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽德澈。三九已至,卻和暖如春固惯,著一層夾襖步出監(jiān)牢的瞬間梆造,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工葬毫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留镇辉,地道東北人屡穗。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像忽肛,于是被迫代替她去往敵國和親村砂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

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

  • 1屹逛,介紹Vagrant 我們做web開發(fā)的時候經(jīng)常要安裝各種本地測試環(huán)境础废,比如apache,php,mysql,r...
    meng_philip123閱讀 2,518評論 0 12
  • 1. Vagrant 的介紹 虛擬開發(fā)環(huán)境 平常我們經(jīng)常會遇到這樣的問題:在開發(fā)機上面開發(fā)完畢程序,放到正式環(huán)境之...
    斐波那契額閱讀 1,827評論 1 12
  • 開發(fā)需要在各種系統(tǒng)上進行開發(fā)任務煎源,運維則需要在各種系統(tǒng)上學習工具使用色迂。因此香缺,虛擬機恐怕也是 IT 人員最常使用的工...
    李廣慧閱讀 5,544評論 3 24
  • 如果文章對你有所幫助手销,請點喜歡并關注,這將是我最大的動力图张,謝謝 構(gòu)造方法是類里的一個特殊的方法锋拖,他不能有返回值(包...
    光哥很霸氣閱讀 24,007評論 2 20
  • 我總結(jié)了下恒恒平時的喝水習慣兽埃,你們參考哈,每個孩子不一樣适袜,所以也要區(qū)分對待噠柄错! 1. 口唇干燥。寶寶不斷用舌頭舔嘴...
    Tony恒閱讀 207評論 0 0