开源的PaaS方案:在OpenStack上部署CloudFoundry (二)部署OpenStack

  1. 硬件要求
  2. 安装OpenStack
    1. 1 安装CentOS 65系统并清空iptables防火墙规则
    2. 2 安装系统需要的工具包包括Openstack依赖的和CloudFoundry依赖的
    3. 3 安装EPEL repo
    4. 4 Upgrade 当前系统
    5. 5 安装openstack repo 目前CloudFoundry最高只能支持Havana版的Openstack
    6. 6 安装packstack
    7. 7 同步时间
    8. 8 安装单节点openstack
  3. 配置Openstack
    1. 0 安装后的Openstack Dashboard有个小bug使用下面命令fix
    2. 1 demo tenant的默认配额Quota不足以安装CloudFoundry所以先要增加demo的Quota
    3. 2 扩展磁盘空间

[python] view plaincopy

由于AWS和vSphere/vCloud都不是免费获得的,本文将描述如果部署CloudFoundry到开源IaaS的Openstack上。本文的重点是如何部署CloudFoundry,所以OpenStack的部署采取最简单的方案--单节点OpenStack,如果读者希望了解如何部署一个分布式的高可用性的OpenStack,请参考网络上面的相关文章。

所以,笔者选择了CentOS和Redhat的工具packstack来部署一个单节点的OpenStack。目前CloudFoundry只支持Folsom,Grizilly,和Havana三个版本的OpenStack。

0. 硬件要求

CPU:x86_64架构的Intel i5 i7或者至强

内存: 64GB以上

硬盘:500G以上的剩余空间

1. 安装OpenStack

1.1 安装CentOS 6.5系统,并清空iptables防火墙规则

[python] view plaincopy

  1. # iptables -F

1.2 安装系统需要的工具包,包括Openstack依赖的和CloudFoundry依赖的

[python] view plaincopy

  1. <pre name="code" class="python"># yum install -y gcc python perl vim man wget ntpdate sysstat zlib-devel krb5-devel openssl-devel zlib libyaml-devel readline-devel  libyaml-devel readline-devel gcc-c++ glibc-headers  readline libxml2 libxml2-devel libxslt libxslt-devel genisoimage sqlite  sqlite-devel mysql mysql-devel postgresql postgresql-devel git

1.3 安装EPEL repo

[python] view plaincopy

  1. # rpm -Uvh http://ftp.sjtu.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm

1.4. Upgrade 当前系统

[python] view plaincopy

  1. # yum -y upgrade

1.5 安装openstack repo, 目前CloudFoundry最高只能支持Havana版的Openstack

[python] view plaincopy

  1. # rpm -Uvh https://repos.fedorapeople.org/repos/openstack/EOL/openstack-havana/rdo-release-havana-9.noarch.rpm

应为现在Havana 已经归类为老版本的openstack 路径发生了变化 epel 的路径错误

nano /etc/yum.repo.d/rdo-release.repo

将路径修改为

baseurl=https://repos.fedorapeople.org/repos/openstack/EOL/openstack-havana/epel-6/

1.6 安装packstack

[python] view plaincopy

  1. # yum install -y openstack-packstack

1.7 同步时间

[python] view plaincopy

  1. # ntpdate -u time.asia.apple.com

1.8 安装单节点openstack

[python] view plaincopy

  1. # packstack —allinone

因为HAVANA 版本的packstack 已经终止了生命周期,所以直接运行肯定会报错,报错之后,回事生成一个answer-file的txt 文件,修改里面的配置项

CONFIG_USE_EPEL=n

CONFIG_USE_EPEL=y

运行packstack --answer-file=xxx.txt 便可成功安装。

2.配置Openstack

使用packstack安装之后的Openstack,所有的服务都安装在了一个节点上,并且创建了一个叫demo tenant和叫demo的用户。本文即使用demo用户和demo tenant安装CloudFoundry。

2.0 安装后的Openstack Dashboard有个小bug,使用下面命令fix

[python] view plaincopy

  1. # sed -i ‘s/"Member"/"\_member\_"/‘ /etc/openstack-dashboard/local_settings
  2. # service httpd restart

2.1 demo tenant的默认配额(Quota)不足以安装CloudFoundry,所以先要增加demo的Quota

[python] view plaincopy

  1. # nova quota-update --instances 30  --ram 60000 --cores 40 $(keystone tenant-list | awk ‘/ demo/ {print $2}’)

2.2 扩展磁盘空间

Openstack 默认分配给cinder的空间为20G, 而CloudFoundry大约需要500G的空间,需要先扩展一下cinder-volumns的大小. 如果有未分配的磁盘空间,可以直接扩展cinder-volumes这个volume group。如果没有磁盘空间的话,这里需要借助一下linux的loop device。关于loop device,详见http://en.wikipedia.org/wiki/Loop_device

[python] view plaincopy

  1. # dd if=/dev/zero of=/var/lib/cinder/cinder-volumes1 bs=1k count=500000000
  2. # losetup -f  (查找一个没有使用的loop device,笔者这里使用/dev/oop2)
  3. # losetup /dev/loop2 /var/lib/cinder/cinder-volumes1
  4. # vgextend cinder-volumes /dev/loop2

这样,Openstack就已经设置完成,可以准备安装CloudFoundry了

时间: 2024-12-04 18:05:42

开源的PaaS方案:在OpenStack上部署CloudFoundry (二)部署OpenStack的相关文章

开源的PaaS方案:在OpenStack上部署CloudFoundry (一)简介

目录(?)[-] OpenStack简介 OpenStack是一个美国国家航空航天局和Rackspace合作研发的以Apache许可证授权并且是一个自由软件和开放源代码项目 OpenStack是一个云平台管理的项目它不是一个软件这个项目由几个主要的组件组合起来完成一些具体的工作 CloudFoundry简介 PaaS(Platform as a Service)是业界一个比较热门的话题.本文以简洁的方式介绍一种完全使用开源软件迅速部署一个PaaS平台的技术方案:基于OpenStack平台部署Cl

开源的PaaS方案:在OpenStack上部署CloudFoundry (三)部署BOSH

BOSH是CloudFoundry提供的用来安装部署和升级CloudFoundry的自动化工具,可是说是CloudFoundry的一部分.总体来说,BOSH是Client/Server结构, BOSH客户端称作BOSH CLI,BOSH服务器端由BOSH Director,NATS,HealthMonitor等组件组成, 详见http://docs.cloudfoundry.org/bosh/ 完整的BOSH是一个分布式的环境,本文为了简化BOSH的安装,将BOSH所有的组件安装在一个虚拟机上,

开源的PaaS方案:在OpenStack上部署CloudFoundry (四)使用Micro Bosh部署CloudFoundry

使用bosh部署应用是需要两部分,一个是创建虚拟机使用的模板stemcell,另外一个是应该的Release.所以,部署CloudFoundry之前需要上传stencil和release 4.1 使用bosh上传Stemcell [python] view plaincopy # bosh upload stemcell ~/stemcell/bosh-stemcell-2652-openstack-kvm-ubuntu-lucid-go_agent.tgz # bosh stemcells +

开源的PaaS方案:在OpenStack上部署CloudFoundry (五)常见问题

部署CloudFoundry可能遇到的问题 1. Bosh 报告 OpenStack API Request Entity Too Large error 解决办法,修改/etc/nova/api-paste.conf文件,添加limits属性 [python] view plaincopy [filter:ratelimit] paste.filter_factory = nova.api.openstack.compute.limits:RateLimitingMiddleware.fact

部署OpenStack问题汇总(二)--openstack dashboard 问题解决方案

在打开dashboard的时候报错: LocationParseError at /admin/ (LocationParseError(...), 'Failed to parse: Failed to parse: 10.50.20.75:35357:v2.0') Request Method: GET Request URL: http://10.50.20.75/dashboard/admin/ Django Version: 1.4.8 Exception Type: Location

基于OpenStack(IceHouse+neutron) 部署 CloudFounry v183

之前苦于没有物理服务器,一直在虚拟机上小打小闹Cf,现在终于有了物理服务器,而且已经掌握了OpenStack的各个功能点,终于可以试一下了.本文基于OpenStack IceHouse 版本,使用Neutron网络搭建cf-183 版本,在网上查找资料,很少有使用neutron网络搭建的,目前也是使用了两个HM,解决了healthmanager 单点的问题,但是nats仍然是单点部署,但是参考官方文档的说法,nats很稳定,nats所在的虚拟机挂掉,可以由bosh 恢复. 环境准备 1.部署完成

在openstack上创建第一个虚拟机

一.创建虚拟网络 第一次创建虚拟机,使用命令行来创建 在控制节点上,加载 admin 凭证来获取管理员能执行的命令访问权限 [[email protected] ~]# source admin-openstack.sh 创建提供者网络 [[email protected] ~]# neutron net-create --shared --provider:physical_network public --provider:network_type flat public-net Creat

部署OpenStack问题汇总(六)-- OpenStack入门需要知道的概念

一.网络问题-network 更多网络原理机制可以参考<OpenStack云平台的网络模式及其工作机制>. 1.1.控制节点与网络控制器区别 OpenStack平台中有两种类型的物理节点,控制节点和计算节点.控制节点包括网络控制.调度管理.api服务.存储卷管理.数据库管理.身份管理和镜像管理等,计算节点主要提供nova-compute服务. 控制节点的服务可以分开在多个节点,我们把提供nova-network服务的节点称为网络控制器. 1.2.OpenStack中nova-network的作

OpenStack Icehouse私有云实战部署

前言 相信你一定对"云主机"一词并不陌生吧,通过在Web页面选择所需主机配置,即可快速定制一台属于自己的虚拟主机,并实现登陆操作,大大节省了物理资源.但这一过程是如何实现的呢?本文带来OpenStack Icehouse私有云实战部署. OpenStack 简介 OpenStack是由网络主机服务商Rackspace和美国宇航局联合推出的一个开源项目,OpenStack的目标是为所有类型的云提供一个易于实施,可大规模扩展,且功能丰富的解决方案,任何公司或个人都可以搭建自己的云计算环境(