How to deploy Cloudfoundry with Bosh-lite on Ubuntu 14.04
这里宿主机为Ubuntu14.04,虚拟机采用VirtualBox
1.1 安装依赖的软件包
sudo apt-get install build-essential libxml2-dev libsqlite3-dev libxslt1-dev libpq-dev libmysqlclient-dev
安装Ruby环境
$ git clone git://github.com/sstephenson/rbenv.git $HOME/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git $HOME/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
$ rbenv install 2.2.4
$ rbenv global 2.2.4
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l
$ gem install bundle
$ gem install nokogiri -- --use-system-libraries
安装Vagrant
$ wget https://releases.hashicorp.com/vagrant/1.8.1/vagrant_1.8.1_x86_64.deb
$ dpkg –i vagrant_1.8.1_x86_64.deb
验证vagrant
$ vagrant –version
Vagrant 1.8.1
安装VirtualBox
$ wget http://download.virtualbox.org/virtualbox/5.0.16/virtualbox-5.0_5.0.16-105871~Ubuntu~trusty_amd64.deb
$ dpkg –i virtualbox-5.0_5.0.16-105871~Ubuntu~trusty_amd64.deb
验证virtualbox是否安装成功
$ VBoxManage –version
5.0.16r105871
准备bosh-lite环境
安装Bosh CLI
$ gem install bosh_cli
安装manifest merge工具
Spiff是CloudFoundry基金会开发的一款用来合并bosh部署文件的工具,详见https://github.com/cloudfoundry-incubator/spiff
$ wget https://github.com/cloudfoundry-incubator/spiff/releases/download/v1.0.7/spiff_linux_amd64.zip
$ unzip spiff_linux_amd64.zip –d /usr/bin
Checkout bosh-lite和cf-release
bosh-lite和cf-release和两个代码库必须放在同一级目录下
$ mkdir ~/workspace
$ git clone https://github.com/cloudfoundry/bosh-lite
$ git clone https://github.com/cloudfoundry/cf-release
启动VirtualBox虚拟机
$ cd ~/workspace/bosh-lite
$ vagrant up –provider=virtualbox
(启动成功以后可以用vagrant status查看虚拟机状态)
$ vagrant global-status
启动后的bosh-lite虚拟机配置了两块网卡,一块用来连接cloudfoundry网络,使用10.244.0.0/19;一块用来和宿主机通信,使用192.168.50.4,因此在宿主机需要添加访问cloudfoundry网络的路由
$ route add –net 10.244.0.0/19 gw 192.168.50.4
(如果配置了HTTP或者HTTPS的代理,请先运行下面这条命令)
$ export no_proxy=192.168.50.4,xip.io,bosh-lite.com
把bosh指向当前的bosh-lite的Director
$ bosh target 192.168.50.4 lite (这里login的用户名密码都是admin)
验证bosh状态
$ bosh status
至此bosh-lite环境准备完毕。
部署CloudFoundry
生成CloudFoundry部署描述文件(deployment manifest)
$ cd ~/workspace/cf-release
$ ./scripts/update (下载所有的子模块submodule)
$ ./scripts/generate-bosh-lite-dev-manifest (生成部署描述文件)
上传Stemcell
Stemcell类似于虚拟机镜像,部署cloudfoundry之前需要使用bosh上传相应平台的stemcell. 所有的stemcell都可以在 bosh.io找到
$ wget https://s3.amazonaws.com/bosh-warden-stemcells/bosh-stemcell-3147-warden-boshlite-ubuntu-trusty-go_agent.tgz
$ bosh upload stemcell bosh-stemcell-3147-warden-boshlite-ubuntu-trusty-go_agent.tgz
上传CloudFoundry Release
Release是所有的需要部署的文件的集合(包括二进制和配置文件)。各个版本以及最新的releases都可以在bosh.io上找到
$ wget http://bosh.io/releases/github.com/cloudfoundry/cf-release?version=234
部署CloudFoundry
$ bosh deploy
验证CloudFoundry部署
$ bosh vms