• 在centos7 ubuntu15.04 上通过bosh-lite 搭建单机环境cloudfoundry


     Bosh-lite简介

          bosh-lite 是一个单机部署cloudfoundry的实验性工具,用于开发人员做poc 验证。Bosh-lite目前支持仅MAC OS X和Linux系统。Bosh-lite使用Vagrant管理虚拟机,所以目前只支持VirtualBox和VMWare Fusion (MAC OS X)虚拟机平台。
     
           如下图所示,Bosh客户端CLI运行在宿主机(HOST OS)上,通过Bosh CLI,我们可以把Bosh和Cloud Foundry的各个component部署在VirtualBox的虚拟机上,Bosh和CloudFoundry的各个Component,例如UAA,Router等,都是运行在Warden容器(Warden Container)中。 

    2, 环境准备

            笔者采用的事Cent OS 7.0 与 ubuntu 15.04 作为宿主机的操作系统,vmware 作为虚拟平台。 centos7 与 ubuntu15.04 都是装在vmware中的虚拟机。 必须将vmware 中的Inetl VT-X 打开,因为vagrant的box是64位,如果不打开VT-X 作为provide 的virtualbox 无法运行64位镜像。 设置方法vmware 选中虚拟机,然后在菜单中选中虚拟机菜单,在虚拟机设置中选择处理器设置,在右边打开VT-X选项
     
     

    2.1 安装软件包

    centos 准备内容

    # rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

    # yum install -y vim git screen kernel* libX11 qt SDL SDL-devel libxml2-devel libvpx libpng libXt libXmu libxslt libxslt-devel openssl openssl-devel libXcursor libXinerama qt qt-devel wget gcc unzip ntpdate net-tools
     
    ubuntu 15.04 准备内容
    sudo apt-get install build-essential libxml2-dev libsqlite3-dev libxslt1-dev libpq-dev libmysqlclient-dev

    2.2 安装Ruby环境

            笔者使用rbenv来安装和管理ruby
    1. $ git clone git://github.com/sstephenson/rbenv.git $HOME/.rbenv  
    2. $ git clone https://github.com/sstephenson/ruby-build.git $HOME/.rbenv/plugins/ruby-build  
    3. $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile  
    4. $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile  
    5.   
    6. $ source ~/.bash_profile  
    7. $ rbenv install 2.1.3  
    8. $ rbenv global 2.1.3
    9. $ gem sources --remove https://rubygems.org/
    10. $ gem sources -a https://ruby.taobao.org/
    11. $ gem sources -l
    12. $ gem install bundle  
    13. $ gem install nokogiri -- --use-system-libraries  


    2.3安装Vagrant

    centos 安装方法

    1. # wget  https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2_x86_64.rpm  
    2. # rpm -Uvh vagrant_1.7.2_x86_64.rpm  

    ubuntu 安装方法
     
    sudo apt-get install vagrant -y
    

      

     
    验证vagrant
    1. # vagrant --version  
    2. Vagrant 1.6.3  


    2.4 安装VirtualBox

    centos 安装方法

    1. # wget http://download.virtualbox.org/virtualbox/4.3.26/VirtualBox-4.3-4.3.26_98988_el7-1.x86_64.rpm  
    2. # # 安装virtualbox时需要linux kernel的源代码,设置KERN_DIR环境变量指示kernel源代码路径  
    3. # export KERN_DIR=/usr/src/kernels/3.10.0-229.4.2.el7.x86_64  
    4. # rpm -Uvh VirtualBox-4.3-4.3.26_98988_el7-1.x86_64.rpm  
    ubuntu 安装方法

    sudo apt-get install virtualbox -y
     
    验证virtualbox是否安装成功
    1. # VBoxManage --version  
    2. 4.3.14r95030  


    3, 部署CloudFoundry

    3.1 安装Bosh CLI   

    1. # gem install bosh_cli  

    3.2 安装manifest merge工具

    1. # wget https://github.com/cloudfoundry-incubator/spiff/releases/download/v1.0.3/spiff_linux_amd64.zip  
    2. # unzip spiff_linux_amd64.zip -d /usr/bin  

    3.3 Checkout bosh-lite和cf-release

    bosh-lite和cf-release这两个代码库必须放在同一级目录下,这里的workspace文件夹名称必须是workspace,且路径也必须在用户的根目录。即~目录下,原因是bosh-lite 文件夹下的bin/make_manifest_spiff 中有下面这一句。为了避免路径错误,需要将文件夹明明为workspace 并且放在~目录下。
    BOSH_RELEASES_DIR=${BOSH_RELEASES_DIR:-~/workspace}
     
    1. # mkdir ~/workspace  
    2. # cd ~/workspace  
    3. # git clone https://github.com/cloudfoundry/bosh-lite  
    4. # git clone https://github.com/cloudfoundry/cf-release  

    3.4 启动VirtualBox虚拟机

    1. # cd ~/workspace/bosh-lite  
    2. # vagrant up --provider=virtualbox  
    在这里可能会遇到如下错误。这个错误有两个原因,一个是VT-X 没打开,这是最大的可能。另一个可能就是vmware 虚拟机的资源不够。修改vmware 虚拟机的内存和CPU 资源。(笔者使用的9G 内存 4CPU 分配给centos7 或者ubuntu 15.04),这个vagrant的资源可以调整,在 bosh-lite/template/vagrant-local-tpl 中。

     
    出现上述错误console, 在对应的GUI 界面启动virtualbox错误如下图
     
    遇到上述错误之后,需要删除以前的vagrant的虚拟机,重新启动。
    vagrant halt
    vagrant destroy
    vagrant up
     
     
    启动成功后可以运行下面的命令去查看虚拟机的状态
    1. # vagrant global-status  


    启动后的vagrant box 虚拟机配置了两块网卡,一块用来连接CloudFoundry网络,使用10.244.0.0/19;一块用来和宿主机通信,使用IP 192.168.50.4
    因此在宿主机centos7 或者ubuntu150.4 需要添加访问CloudFoundry网络的路由。这两个ip的配置一个在 bosh-lite/template/vagrant-local.tpl中。bosh-lite 本人也有addrout.sh addroute.bat 这个命令。
    1. # route add -net 10.244.0.0/19 gw 192.168.50.4  


    3.5部署CloudFoundry

    如果配置了HTTP或者HTTPS的代理,请先运行下面这条命令
    1. export no_proxy=192.168.50.4,xip.io  

    3.5.1把bosh指向当前的bosh-lite的Director
    1. # bosh target 192.168.50.4 lite   
    这里login的用户名密码为
    用户名:admin
    密码: admin 
     
     
    查看bosh的状态
    1. # bosh status  
    2. Config  
    3.  /root/.bosh_config  
    4.   
    5. Director  
    6.  Name Bosh Lite Director  
    7.  URL https://192.168.50.4:25555  
    8.  Version 1.2811.0 (00000000)  
    9.  User admin  
    10.  UUID c6f166bd-ddac-4f7d-9c57-d11c6ad5133b  
    11.  CPI vsphere  
    12.  dns disabled  
    13.  compiled_package_cache enabled (provider: local)  
    14.  snapshots enabled  
    15.   
    16. Deployment  
    17.  not set  


    Bosh-lite提供了一个脚本,可以一键式部署CloudFoundry
    1. # cd ~/workspace/bosh-lite  
    2. # bin/provision_cf  
    执行的时候,会从http://bosh-jenkins-artifacts.s3.amazonaws.com/bosh-stemcell/warden/latest-bosh-stemcell-warden.tgz 去下载压缩包,这个地址因为是S3的地址,所以很可能中途会中断。 中断之后,下载不完全的文件会在bosh-lite 文件夹下。删除不完整的文件,用下载工具,下载完整的tgz包。然后上传到 bosh-lite 文件夹下。

    检验CloudFoundry是否部署成功
    1. # bosh vms  
    2. Deployment `cf-warden'  
    3.   
    4. Director task 9  
    5.   
    6. Task 9 done  
    7.   
    8. +------------------------------------+---------+---------------+--------------+  
    9. | Job/index | State | Resource Pool | IPs |  
    10. +------------------------------------+---------+---------------+--------------+  
    11. | api_z1/0 | running | large_z1 | 10.244.0.134 |  
    12. | etcd_z1/0 | running | medium_z1 | 10.244.0.42 |  
    13. | ha_proxy_z1/0 | running | router_z1 | 10.244.0.34 |  
    14. | hm9000_z1/0 | running | medium_z1 | 10.244.0.138 |  
    15. | loggregator_trafficcontroller_z1/0 | running | small_z1 | 10.244.0.146 |  
    16. | loggregator_z1/0 | running | medium_z1 | 10.244.0.142 |  
    17. | nats_z1/0 | running | medium_z1 | 10.244.0.6 |  
    18. | postgres_z1/0 | running | medium_z1 | 10.244.0.30 |  
    19. | router_z1/0 | running | router_z1 | 10.244.0.22 |  
    20. | runner_z1/0 | running | runner_z1 | 10.244.0.26 |  
    21. | uaa_z1/0 | running | medium_z1 | 10.244.0.130 |  
    22. +------------------------------------+---------+---------------+--------------+  
    23.   
    24. VMs total: 11   
    虚拟机重启之后,有可能导致很多服务无法使用。此时需要使用bosh cck 即 bosh cloudcheck 命令来进行检查,然后选择2 重用上次的信息。
    参考文献 http://blog.csdn.net/maingalaxy/article/details/46013393
  • 相关阅读:
    shell基础知识8-xargs命令
    shell基础知识7-字段分隔符与迭代器
    shell基础知识6-在不按回车键的情况下读入N个字符
    DevOps
    DevOps
    Jenkins
    Jenkins
    Jenkins
    Jenkins
    Gerrit
  • 原文地址:https://www.cnblogs.com/yudar/p/4691899.html
Copyright © 2020-2023  润新知