开源的PaaS方案:在OpenStack上部署CloudFoundry (二)部署OpenStack
- 硬件要求
- 安装OpenStack
- 1 安装CentOS 65系统并清空iptables防火墙规则
- 2 安装系统需要的工具包包括Openstack依赖的和CloudFoundry依赖的
- 3 安装EPEL repo
- 4 Upgrade 当前系统
- 5 安装openstack repo 目前CloudFoundry最高只能支持Havana版的Openstack
- 6 安装packstack
- 7 同步时间
- 8 安装单节点openstack
- 配置Openstack
- 0 安装后的Openstack Dashboard有个小bug使用下面命令fix
- 1 demo tenant的默认配额Quota不足以安装CloudFoundry所以先要增加demo的Quota
- 2 扩展磁盘空间
由于AWS和vSphere/vCloud都不是免费获得的,本文将描述如果部署CloudFoundry到开源IaaS的Openstack上。本文的重点是如何部署CloudFoundry,所以OpenStack的部署采取最简单的方案--单节点OpenStack,如果读者希望了解如何部署一个分布式的高可用性的OpenStack,请参考网络上面的相关文章。
所以,笔者选择了CentOS和Redhat的工具packstack来部署一个单节点的OpenStack。目前CloudFoundry只支持Folsom,Grizilly,和Havana三个版本的OpenStack。
0. 硬件要求
1. 安装OpenStack
1.1 安装CentOS 6.5系统,并清空iptables防火墙规则,经验证CENTOS 7 安装juno RDO也是可以的。
- # iptables -F
- ##centos7 运行如下命令
- systemctl disable firewalld
- systemctl stop firewalld
1.2 安装系统需要的工具包,包括Openstack依赖的和CloudFoundry依赖的
- <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 经验证,这一句不要
sudo yum install gcc ruby ruby-devel mysql-devel postgresql-devel postgresql-libs sqlite-devel libxslt-devel libxml2-devel yajl-ruby 官方文档中的脚本,但是安装bosh的时候还是会遇到错误.
- 在安装bosh_cli的时候会报nokogiri 安装错误,需要执行下面的语句修正
- sudo yum groupinstall "Development Tools"
1.3 安装EPEL repo 安装openstack 这部分是一havana讲解的,juno的安装请参考官方文档。
- # rpm -Uvh http://ftp.sjtu.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
1.4. Upgrade 当前系统
- # yum -y upgrade
1.5 安装openstack repo, 目前CloudFoundry最高只能支持Havana版的Openstack
- # rpm -Uvh https://repos.fedorapeople.org/repos/openstack/EOL/openstack-havana/rdo-release-havana-9.noarch.rpm
应为现在Havana 已经归类为老版本的openstack 路径发生了变化 epel 的路径错误
1.6 安装packstack
- # yum install -y openstack-packstack
1.7 同步时间
- # ntpdate -u time.asia.apple.com
1.8 安装单节点openstack
- # packstack —allinone
2.配置Openstack
使用packstack安装之后的Openstack,所有的服务都安装在了一个节点上,并且创建了一个叫demo tenant和叫demo的用户。本文即使用demo用户和demo tenant安装CloudFoundry。
2.0 安装后的Openstack Dashboard有个小bug,使用下面命令fix
- # sed -i 's/"Member"/"\_member\_"/' /etc/openstack-dashboard/local_settings
- # service httpd restart
2.1 demo tenant的默认配额(Quota)不足以安装CloudFoundry,所以先要增加demo的Quota
- # nova quota-update --instances 30 --ram 60000 --cores 40 $(keystone tenant-list | awk '/ demo/ {print $2}’)
2.2 扩展磁盘空间 这一部分可以不执行在juno的时候
Openstack 默认分配给cinder的空间为20G, 而CloudFoundry大约需要500G的空间,需要先扩展一下cinder-volumns的大小. 如果有未分配的磁盘空间,可以直接扩展cinder-volumes这个volume group。如果没有磁盘空间的话,这里需要借助一下linux的loop device。关于loop device,详见http://en.wikipedia.org/wiki/Loop_device
- # dd if=/dev/zero of=/var/lib/cinder/cinder-volumes1 bs=1k count=500000000
- # losetup -f (查找一个没有使用的loop device,笔者这里使用/dev/oop2)
- # losetup /dev/loop2 /var/lib/cinder/cinder-volumes1
- # pvcreate /dev/loop2
- # vgextend cinder-volumes /dev/loop2
这样,Openstack就已经设置完成,可以准备安装CloudFoundry了
开源的PaaS方案:在OpenStack上部署CloudFoundry (二)部署OpenStack的更多相关文章
- [原]CentOS7安装Rancher2.1并部署kubernetes (二)---部署kubernetes
################## Rancher v2.1.7 + Kubernetes 1.13.4 ################ ##################### ...
- 开源的PaaS方案:在OpenStack上部署CloudFoundry (一)简介
目录(?)[-] OpenStack简介 OpenStack是一个美国国家航空航天局和Rackspace合作研发的以Apache许可证授权并且是一个自由软件和开放源代码项目 OpenStack是一个云 ...
- 开源的PaaS方案:在OpenStack上部署CloudFoundry (四)使用Micro Bosh部署CloudFoundry
使用bosh部署应用是需要两部分,一个是创建虚拟机使用的模板stemcell,另外一个是应该的Release.所以,部署CloudFoundry之前需要上传stencil和release 4.1.1 ...
- 开源的PaaS方案:在OpenStack上部署CloudFoundry (三)部署BOSH
BOSH是CloudFoundry提供的用来安装部署和升级CloudFoundry的自动化工具,可是说是CloudFoundry的一部分.总体来说,BOSH是Client/Server结构, BOSH ...
- 开源的PaaS方案:在OpenStack上部署CloudFoundry (五)常见问题
部署CloudFoundry可能遇到的问题 1. Bosh 报告 OpenStack API Request Entity Too Large error 解决办法,修改/etc/nova/api-p ...
- OpenStack使用Bosh部署CloudFoundry(一)—准备OpenStack环境
版本说明: CloudFoundry:V2版本 OpenStack:Folsom或者Grizzly版本 本篇文章采用OpenStack Folsom+nova-network的OpenStack环境, ...
- 部署OpenStack问题汇总(二)--openstack dashboard 问题解决方案
在打开dashboard的时候报错: LocationParseError at /admin/ (LocationParseError(...), 'Failed to parse: Failed ...
- Kubernetes部署SpringCloud(二) 部署ZUUL与服务 非host, 伸缩与负载均衡
因为服务需要可缩容,所以不能使用host部署. 涉及两个应用,zuul,basic-info-api 验证,在k8s任意一个node 从zuul 访问 basic-info-api 创建一个Sprin ...
- K8S 部署 ingress-nginx (二) 部署后端为 tomcat
在上面已经部署了 ingress-nginx, https://www.cnblogs.com/klvchen/p/9903480.html 创建 service 和 pods cd vi tomca ...
随机推荐
- 双行表头DatagridView的简单实现
DatagridView默认不支持多行表头的实现,一些第三方的控件,比如Spread就可以,因此要实现这个功能,只能自己想办法了.介绍两种思路:1,用重写DataGridView的Paint等方法,可 ...
- DataGridView使用技巧十二:DataGridView Error图标表示的设定
为了提醒用户注意,DataGridView可以使用Error图标来突出显示. Error图标可以在单元格和行头内表示,但不能在列头上显示. 1.ErrorText属性 当设定单元格/行的ErrorTe ...
- HTTP API 设计指南(请求部分)
为了保证持续和及时的更新,强烈推荐在我的Github上关注该项目,欢迎各位star/fork或者帮助翻译 前言 这篇指南介绍描述了 HTTP+JSON API 的一种设计模式,最初摘录整理自 Hero ...
- 利用VBA宏批量解决Word中图片大小、居中设置
需求:经常阅读网上的研报(没钱买排版漂亮的高质量研报),有些需要保存的复制下来到word里,图片很大都超出word的边界了,也没有居中,手工一张张调整不现实,上百页的研报,几十张图片. 解决方案:利用 ...
- ROS :为IDE配置环境变量
ROS hydro 自带安装好了opencv 2.4 为了在自己经常使用的开发环境Eric下调用,需要配置Eric的环境变量,好让它可以调用ROS的资源,当然你用其他IDE也要这样配置,配置好了环境变 ...
- C# winform 获取当前路径
// 获取程序的基目录. System.AppDomain.CurrentDomain.BaseDirectory// 获取模块的完整路径.System.Diagnostics.Process.Get ...
- Qt的窗口的最大化。
1.window.showFullScreen()//此方法只对顶级窗口有效,对子窗口无效 QT中窗口部件QWidget成员函数showFullScreen();是用于将窗口部件全屏显示,但是他只对窗 ...
- circRNA 序列提取中的难点
在预测circRNA时,都是检测breakpoint 处的reads 数,最后给出的环状RNA的ID 都是诸如 chr14:106994222-107183708 这样的形式,给出了起始和终止位置: ...
- ZABBIX API简介及使用
API简介 Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时.很难想象管理数千台服务器而没有自动化是多么的困难.Zabbix API为批量操作.第三方软件集成以 ...
- jquery获取当前select下拉选的属性值
body中: <li> <select id="select_phone"></select> <input type="but ...