如何使用Bosh部署應用程序(一)
更新時間:2018年04月23日
安裝bosh環境
下載Bosh二進制安裝程序
點擊下載
安裝virtulbox
wget https://download.virtualbox.org/virtualbox/5.2.10/virtualbox-5.2_5.2.10-122088~Ubuntu~trusty_amd64.deb
dpkg -i virtualbox-5.2_5.2.10-122088~Ubuntu~trusty_amd64.deb
安裝一些依賴程序包
sudo apt-get install -y build-essential zlibc zlib1g-dev ruby ruby-dev openssl libxslt-dev libxml2-dev libssl-dev libreadline6 libreadline6-dev libyaml-dev libsqlite3-dev sqlite3
推薦使用bosh-deployment來引導Director
$ git clone https://github.com/cloudfoundry/bosh-deployment ~/workspace/bosh-deployment
$ mkdir -p ~/deployments/vbox
$ cd ~/deployments/vbox
$ bosh create-env ~/workspace/bosh-deployment/bosh.yml \
--state ./state.json \
-o ~/workspace/bosh-deployment/virtualbox/cpi.yml \
-o ~/workspace/bosh-deployment/virtualbox/outbound-network.yml \
-o ~/workspace/bosh-deployment/bosh-lite.yml \
-o ~/workspace/bosh-deployment/bosh-lite-runc.yml \
-o ~/workspace/bosh-deployment/jumpbox-user.yml \
--vars-store ./creds.yml \
-v director_name="bosh-lite" \
-v internal_ip=192.168.50.6 \
-v internal_gw=192.168.50.1 \
-v internal_cidr=192.168.50.0/24 \
-v outbound_network_name=NatNetwork
配置環境
$ bosh alias-env vbox -e 192.168.50.6 --ca-cert <(bosh int ./creds.yml --path /director_ssl/ca)
$ export BOSH_CLIENT=admin
$ export BOSH_CLIENT_SECRET=`bosh int ./creds.yml --path /admin_password`
check env
$ bosh -e vbox env
Using environment '192.168.50.6' as '?'
Name: ...
User: admin
Succeeded
add route
sudo route add -net 10.244.0.0/16 gw 192.168.50.6
進入軟件的部署環節
部署資源需求配置
- 不管部署什麼應用,前提必須要有cloud config,在部署應用或者服務時,可以根據具體的場景更新cloud config中虛擬機規格的配置更新
- 一但cloud config被更新,之前的將被視爲過期,Director會在下次進行
bosh deploy
時應用這些配置 - 每個應用gitrepo中一般都會定義cloud config的配置,我們可以通過一下方式更新
$ bosh -e vbox update-cloud-config /PATH/TO/cloud-config.yml
- 對於不同類型的CPI,有不同的配置屬性
上傳基礎操作系統鏡像Stemcell
- 部署應用就要提前準備好應用要運行的操作系統,window/centos/ubuntu等,一般會在部署的應用文檔中有介紹
- 建議提前下載好需要的Stemcell,網絡傳輸可能會導致失敗,另外版本的更新非常快,要注意自己使用的版本
這是一個栗子:
bosh -e vbox upload-stemcell https://bosh.io/d/stemcells/bosh-warden-boshlite-ubuntu-trusty-go_agent?v=3468.17 \
--sha1 1dad6d85d6e132810439daba7ca05694cec208ab
驗證性測試
git clone https://github.com/concourse/concourse-bosh-deployment.git
bosh -e $BOSH_ENVIRONMENT deploy -d concourse concourse.yml \
-l ../versions.yml \
--vars-store cluster-creds.yml \
-o operations/static-web.yml \
-o operations/no-auth.yml \
--var web_ip=10.244.15.2 \
--var external_url=http://10.244.15.2:8080 \
--var network_name=concourse \
--var web_vm_type=concourse \
--var db_vm_type=concourse \
--var db_persistent_disk_type=db \
--var worker_vm_type=concourse \
--var deployment_name=concourse
fly -t ci login -c http://10.244.15.2:8080