日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

创建自己的Vagrant box

發布時間:2024/9/5 编程问答 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 创建自己的Vagrant box 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?

這是一個關于Vagrant的學習系列,包含如下文章:

?

  • Vagrant入門
  • 創建自己的Vagrant box?
  • 用Vagrant搭建Jenkins構建環境
  • 用Vagrant和Ansible搭建持續交付平臺
  • ?

    在上一篇中,我們講到了Vagrant的基本使用,在本文中我們將嘗試創建自己的Vagrant box。

    本文源代碼:https://github.com/davenkin/vagrant/tree/master/ubuntu1604-jdk1.8-tomcat8

    ?

    Vagrant box只是提供了一個虛擬機的基線,比如對于Harshicorp官網提供的unbuntu/trusty64這個box,相當于只是一個Ubuntu的ISO安裝文件。一般來講,在安裝了操作系統之后,你都需要安裝一些額外的軟件以供項目所用,比如,要部署一個網站,你可能需要安裝Tomcat以及MySQL等等。此時,我們可以通過在Vagrantfile中配置Provision來幫助我們自動完成這些軟件安裝任務。但是當需要安裝的軟件越來越多以及需要啟動的虛擬機數量越來越多,執行Provison也會變得越來越慢,此時我們便可以將一些公共的軟件預先打包到box中,即創建自己的box。然后將這樣的box在團隊或者公司范圍內發布以供后用。當然,除了加快虛擬機啟動過程,創建自己的box還使得我們預先對所有虛擬機進行相同的基本配置,比如安裝公司的安全證書,比如創建屬于自己的操作系統用戶(默認用戶名為vagrant)以及配置相應的公鑰等。

    ?

    對于Vagrant box來說,我們需要向box注入以下功能:

  • Vagrant box中需要提供SSH功能,以便能夠使用vagrant ssh命令登錄虛擬機
  • 需要提供一個默認的用戶以及相應的登錄方式(比如免密鑰登錄和密碼登錄),對于大多數Vagrant box來說,默認都提供了用戶名為vagrant的SSH密碼登錄功能。
  • 對于特定的Provider,還需要安裝某些特定的軟件,比如對于Virtualbox來說,為了能使共享文件夾功能能夠正常工作,box中還需要安裝VirtualBox Guest Additions,另外第一塊網卡必須為NAT類型,因為Vagrant需要使用NAT與虛擬機完成首次通信。
  • ?

    當然,我們并不需要完全從頭到尾創建一個box,而是可以在一些公共的box的基礎之上通過添加額外的功能來創建自己的box,因為這些公共box已經包含了上述功能。本文便將通過使用ubuntu/xenial64作為基礎來創建新的box。

    ?

    我們將使用Shell作為Provision方式,向新的box中添加以下功能:

  • 安裝openjdk 1.8
  • 安裝Tomcat?
  • ?

    首先初始化Vagrantfile:

    vagrant init -m ubuntu/xenial64

    ?

    ?

    值得一提的是,ubuntu/xenial64默認使用的SSH登錄用戶名為ubuntu,而不是先前的vagrant。

    ?

    編輯Vagrantfile,通過Shell安裝openjdk1.8和Tomcat 8,同時設置端口轉發以便Host機器能夠訪問Tomcat主頁(由于默認的網絡是Virtualbox的NAT,故Host機是不能訪問到虛擬機的):

    $script = <<SCRIPTsudo apt-get updatesudo apt-get -y install openjdk-8-jdksudo apt-get -y install tomcat8 SCRIPTVagrant.configure("2") do |config|config.vm.provision "shell", inline: $scriptconfig.vm.box = "ubuntu/xenial64"config.vm.network "forwarded_port", guest: 8080, host: 8080

    ? ? config.vm.provider "virtualbox" do |v|
    ? ? ? ?v.name = "my-virtualbox"
    ? ? end

    end

    ?

    啟動虛擬機:

    vagrant up

    ?

    此時在Host機上訪問http://localhost:8080,你會看到“It Works!”,表示Tomcat安裝及運行成功。

    ?

    好了,前面講的都只是如何創建虛擬機,有了這些準備我們才能夠基于新建的虛擬機創建box。

    ?

    先關閉虛擬機:

    ?

    vagrant halt

    ?

    ?

    由于在Vagrantfile中,我們為虛擬機指定了名字“my-vertualbox”,在創建box時我們可以直接通過該名字指向新建的虛擬機:

    ?

    vagrant package --base my-virtualbox

    ?

    ?

    Vagrant將創建名為package.box的新的box,此后我們便可以使用該package.box作為其他虛擬機的基礎box了。另外,如果當前處于Vagrantfile文件所在目錄,則可簡化創建命令:

    vagrant package

    ?

    如果此時虛擬機正在運行,Vagrant將先關閉運行的虛擬機,然后創建box。另外,“vagrant package”也可以為任何Virtualbox的虛擬機創建box,而不一定非得是vagrant啟動的虛擬機,只要“--base”參數指向Virtualbox的某個虛擬機名字即可。

    ?

    在下一篇中,我們將講到用Vagrant搭建Jenkins構建環境。

    ?

    ?

    ?

    轉載于:https://www.cnblogs.com/davenkin/p/create-own-vagrant-box.html

    總結

    以上是生活随笔為你收集整理的创建自己的Vagrant box的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。