溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

windows下怎么用BOSH lite方式在單個VM中安裝Cloud Foundry2.x

發(fā)布時間:2021-11-12 14:09:38 來源:億速云 閱讀:87 作者:小新 欄目:云計算

小編給大家分享一下 windows下怎么用BOSH lite方式在單個VM中安裝Cloud Foundry2.x ,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

環(huán)境需求:內(nèi)存8G以上;可連接internet。相信這個配置很多朋友可能實現(xiàn)了。

術(shù)語:
- virtualbox:虛擬化系統(tǒng),支持win、linux、MacOS。
- vagrant:基于Ruby的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。它使用Oracle的開源VirtualBox虛擬化系統(tǒng),使用Chef創(chuàng)建自動化虛擬環(huán)境。它用模板+配置來建立vbox虛機。
- bosh:大規(guī)模部署工具,分為server和client
- boshlite:一個設(shè)置好了的bosh server。在vagrant虛擬機里,
- warden:linux中的一種容器型虛機。本文中的方法用warden在同一個linux中隔離CF的各組件
- git:版本工具
- stemcell:嵌入了BOSH Agent的VM模板。BOSH Lite使用Warden CPI,所以需要Warden Stemcell。

Cloud Foundry組織的官方文檔是用一臺linux宿主機作為bosh client,在其上建立bosh server虛擬機,然后部署CF到這個bosh server虛機中。部署完后,boshlite(作為bosh server)是一個虛擬機,里面用warden方式建立了CF的各組件。

官方方式原理:
- 用vagrant創(chuàng)建一個virtualBox虛擬機,包含了bosh server
- 通過bosh client,連接bosh server,將CF代碼等上傳到bosh server虛擬機
- 通過這些代碼和配置,在bosh server虛擬機中部署用warden隔離的CF組件

我平常的工作電腦是windows,本來想直接在windows下進行部署操作的,過程中得到以下結(jié)論:
- 用vagrant創(chuàng)建virtualbox的基礎(chǔ)CF虛擬的步驟,經(jīng)測試在windows下是沒有問題的
- bosh client部署過程中有一些問題,到后面步驟執(zhí)行不下去。主要是ruby腳本的執(zhí)行問題(本來是按linux寫的)
- 部署過程中有大量需要聯(lián)機下載的步驟,由于網(wǎng)絡(luò)問題,且很容易中斷。這部分對理解CF的架構(gòu)沒什么大幫助,但花費了大量時間。

轉(zhuǎn)換思路:
- 用windows下的vagrant創(chuàng)建bosh server的虛擬機,把bosh client也部署到這個虛機中,用這個bosh client再操作后續(xù)步驟
- 其它操作與官方文檔相似
- 能離線安裝的部分都預(yù)先下載下來,部署時可以加快速度


實驗環(huán)境:windows7 64bit,8G以上內(nèi)存
一定要64bit,32bit沒測試,不知道。說是在windows里安裝,其實只是用到windows下的virtualbox和vagrant。最終效果是在windows上有一個CF的虛擬機。VirtualBox支持win、linux、MacOS,所以以下大部分步驟在其它OS上應(yīng)該也是可行的。

一、在windows指令下操作


- 安裝virtualbox

Virtualbox [ https://www.virtualbox.org/wiki/Downloads]
安裝好就行,不需要手工建虛機。這個就不說了,要了解的話網(wǎng)上有很多資料。

- install vagrant
Vagrant [ http://www.vagrantup.com/downloads.html]
圖形化安裝,也沒什么好說的。

- 配置Vagrantfile,啟動bosh lite (server)虛擬機
c:\> cd d:\
d:\> mkdir vagrant
d:\> cd vagrant

這個文件在boshlite的源碼中,我已經(jīng)把它拿出來了,并作了修改。在d:\vagrant下建立這個文件。

###
VM_MEMORY = ENV.fetch("VM_MEMORY", 4*1024).to_i
VM_CORES = ENV.fetch("VM_CORES", 4).to_i
BOX_VERSION = 217

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

  config.vm.hostname='bosh-lite'
  config.vm.box = "boshlite-ubuntu1204-build#{BOX_VERSION}"
  config.vm.network :private_network, ip: '192.168.50.4'

  config.vm.provider :virtualbox do |v, override|
    #override.vm.box_url = "http://bosh-lite-build-artifacts.s3.amazonaws.com/bosh-lite/#{BOX_VERSION}/boshlite-virtualbox-ubuntu1204.box"
    override.vm.box_url = "file:///c:/temp/boshlite-virtualbox-ubuntu1204.box"
    v.customize ["modifyvm", :id, "--memory", VM_MEMORY]
    v.customize ["modifyvm", :id, "--cpus", VM_CORES]
  end

end
###


其中vagrant的虛機模板最好預(yù)先下載(boshlite-virtualbox-ubuntu1204.box)。不下載的話,vagrant up時從互聯(lián)網(wǎng)安裝,特別慢。下載地址:http://bosh-lite-build-artifacts.s3.amazonaws.com/bosh-lite/#{BOX_VERSION}/boshlite-virtualbox-ubuntu1204.box
我用的是217版本,所以是http://bosh-lite-build-artifacts.s3.amazonaws.com/bosh-lite/217/boshlite-virtualbox-ubuntu1204.box。如果要用最新版本,從boshlite的源碼文件中查看版本號。懶人可以到這里下載217版本。

以上的Vagrantfile文件中假設(shè)下載文件放在c:\temp\boshlite-virtualbox-ubuntu1204.box

d:\> vagrant up


最后有報錯也無所謂,后面可以正常運行。

如果需要操作vagrant:
vagrant halt(停止虛擬機,注意要在Vagrantfile文件所有在目錄下執(zhí)行)
vagrant destroy(刪除虛擬機,注意要在Vagrantfile文件所有在目錄下執(zhí)行。默認刪除default,會有提示)
vagrant up(啟動虛擬機)


- 添加路由,目的是從windows中訪問CF組件時,通過這臺bosh server作用路由(因為CF組件在這個bosh server中)。windows里執(zhí)行下一句:
route add 10.244.0.0/19 192.168.50.4


二、在vagrant創(chuàng)建的linux中操作


這個boshlite的虛擬機中有很多package已經(jīng)安裝了,例如ruby、git,所以用它做bosh client可以減少很多步驟。


- ssh登錄,127.0.0.1:2222(或192.168.50.4:22),用戶名/口令為vagrant/vagrant。ssh工具就不說明了,自己去找SecureCRT或Putty。

- 改apt的source.list,改為國內(nèi)源(改了之后會快很多)
修改源地址:
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
$ sudo vi /etc/apt/sources.list

:%s/us.arch/cn.arch/g
:wq

$ sudo apt-get update
大概有90個左右get任務(wù)。

- 安裝bundler
$ sudo env PATH=$PATH gem install bundler

- 下載bosh-lite
$ cd
$ mkdir workspace
$ cd workspace

方式1:(速度還可以,推薦)

$ git clone https://github.com/cloudfoundry/bosh-lite


方式2:(用我下載的:到這里下載bosh-lite.tar)
$ tar xvf /vagrant/bosh-lite.tar


注意:linux里/vagrant目錄實際就是windows下的d:\vagrant目錄,這是vagrant在啟動虛擬機時建立的一個共享。將需要用到的已下載文件放在d:\vagrant下,可以省去sftp到linux里的步驟和空間。以下凡是使用/vagrant/xxx的地方,都假設(shè)xxx已經(jīng)放在了d:\vagrant目錄下。另外必須用vagrant up啟動,才有這個共享,在linux里reboot不行,需注意。


然后
$ cd bosh-lite
$ bundle
可能有一些warning,可忽略。根據(jù)網(wǎng)絡(luò)情況,可能會花一些時間

重啟一下虛機,bosh會放到路徑中(在windows里用vagrant halt,然后再vagrant up)。原因是什么還未搞清楚,反正重啟一下時間不長。

- 用bosh上傳stemcell

$ bosh target 192.168.50.4
admin/admin

以下的latest-bosh-stemcell-warden.tgz文件我已下載, 到這里下載。(或可從http://bosh-jenkins-gems-warden.s3.amazonaws.com/stemcells/latest-bosh-stemcell-warden.tgz獲得,新,但不保證可順利使用)
$ bosh upload stemcell /vagrant/latest-bosh-stemcell-warden.tgz

- 安裝spiff
$ sudo apt-get install golang

$ cd ~
$ export GOPATH=~/go
$ export PATH=$PATH:$GOPATH/bin

方式1:(比較慢)

$ go get github.com/vito/spiff

如果中間斷了,再運行報錯的話,rm -r ~/go/src,再運行


方式2:(文件我已下好:下載go.tar)

$ tar xvf /vagrant/go.tar


- 部署cloud foundry
$ cd ~
$ cd workspace

方式1:(很慢,可能會中斷)
$ git clone https://github.com/cloudfoundry/cf-release
$ cd cf-release
$ ./update
$ git checkout v169
$ bosh create release releases/cf-169.yml  #有了cf-169.tgz,這句就不用了
$ bosh upload release releases/cf-169.tgz

方式2:(以下的文件我已做好:下載cf-release.tar,下載cf-169.tgz)
$ cd ~/workspace
$ tar xvf /vagrant/cf-release.tar
$ bosh upload release /vagrant/cf-169.tgz

然后
$ cd ~/workspace/bosh-lite
$ ./scripts/make_manifest_spiff

$ bosh deploy
部署花費比較長時間,如果虛機是在SSD硬盤上的,如果CPU比較強,速度會比較快。

-驗證:
$ bosh vms
....
+------------------------------------+---------+---------------+--------------+
| Job/index                          | State   | Resource Pool | IPs          |
+------------------------------------+---------+---------------+--------------+
| api_z1/0                           | running | large_z1      | 10.244.0.138 |
| etcd_leader_z1/0             | running | medium_z1     | 10.244.0.38  |
| ha_proxy_z1/0                 | running | router_z1     | 10.244.0.34  |
| hm9000_z1/0                  | running | medium_z1     | 10.244.0.142 |
| loggregator_trafficcontroller_z1/0 | running | small_z1      | 10.244.0.10  |
| loggregator_z1/0                   | running | medium_z1     | 10.244.0.14  |
| login_z1/0                         | running | medium_z1     | 10.244.0.134 |
| nats_z1/0                          | running | medium_z1     | 10.244.0.6   |
| postgres_z1/0                      | running | medium_z1     | 10.244.0.30  |
| router_z1/0                        | running | router_z1     | 10.244.0.22  |
| runner_z1/0                        | running | runner_z1     | 10.244.0.26  |
| uaa_z1/0                           | running | medium_z1     | 10.244.0.130 |
+------------------------------------+---------+---------------+--------------+

如果顯示以上內(nèi)容,恭喜你,安裝成功了!

如果有問題,可以先重啟系統(tǒng)看看:
$ sudo reboot
VM重啟后用bosh vms查看組件情況。各虛機啟動可能比較慢,可以不斷地用bosh vms查看狀態(tài)。 如果出現(xiàn)http500錯,輸入以下指令:

sudo sv restart director


經(jīng)過多次實驗,如果順利的話,2個小時可以完成一個單VM下的Cloud Foundry環(huán)境。有興趣的話,可以把bosh server和CF分開,以及把CF的各組件分開,這樣可以分布式部署,更好地理解Cloud Foundry部署過程。

以上是“ windows下怎么用BOSH lite方式在單個VM中安裝Cloud Foundry2.x ”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI