手动部署OpenStack环境(四:安装控制器必备软件)
任务四、安装控制器必备组件
4.1、安装MySQL服务(controller0)
4.2、安装Rabbitmq消息队列(controller0)
4.3、Keystone认证(controller0)
4.4、glance的安装与配置(controller0)
4.5、Nova的安装与配置(controller0)
4.6、neutron的安装与配置(controller0)
4.7、Horizon的安装与配置(controller0)
4.8、Nova的安装与配置(compute0)
4.9、neutron的安装与配置(compute0)
4.10、neutron的安装与配置(network0)
任务四、安装控制器必备软件;
4.1、安装MySQL服务;
本步操作在Controller0虚拟机节点主机上进行单独设置,所有操作步骤需要使用root用户进行;
4.1.1、清空yum安装MySQL相关软件;
4.1.2、修改配置文件并启动MySQL服务器;
4.1.3、设置MySQL服务器开机自启动,并修改MySQL数据库root密码为openstack;
4.1.4 、对MySQL数据库进行初始化;
4.2、安装rabbitmq消息队列;
4.2.1、创建rabbitmq目录并上传相关软件包文件;
4.2.2、制作信任公钥,并导入公钥;
4.2.3、安装rabbitmq;
4.2.4、开启远程访问并启动rabbitmq服务;
4.2.5、查询rabbitmqweb管理插件是否开启,并安装rabbitmqweb 管理插件,查看用户列表,设置开机启动。
4.2.6、使用浏览器进入http://10.20.0.10:15672/管理界面来查看 rabbitmq的信息;
4.2.7、为Nova,neutron,cinder,heat创建用户并授予权限;
4.2.8、对响应用户执行授权操作;
4.3、Keystone认证;
4.3.1、创建库和授权,连接数据库,并显示所有数据库;
4.3.2、创建数据库“keystone”。
4.3.3、授权本地用户及远程用户,并查看所有用户。
4.3.4、验证登录数据库。
4.3.5、keystone的安装配置之安装软件。
4.3.6、生成token,配置token,并查看参数修改结果;
4.3.7、配置数据库连接;
a)修改主机名并重启controller0节点,使配置生效;
b)配置UUID token和SQL驱动;
c)配置SQL撤回驱动;
d)为便于排错,显示详细的日志信息;
4.3.8、生成PKI认证所需要的证书文件;
4.3.9、同步keystone数据库,生成keystone所需要的表;
4.3.10、启动keystone服务和校验服务状态
4.3.11、创建一个cron任务,配置定期清理过期的keystone;
4.3.12、keystone创建user、tenant、role和endpoint,定义token环境变量;
注、重启虚拟主机,再次执行;
4.3.13、创建用户,租户并赋予权限;
a)创建tenant,并查看当前租户表;
b)创建admin用户,并查看当前用户表;
c)创建admin角色,并查看角色列表;
d) 将admin用户赋予admin角色和admin project内;
e) 创建_member_角色,并将admin用户加入该角色;
4.3.14、创建demo账号相关的角色;
a)创建demo用户,并查看当前的用户列表;
b)创建demo租户,并查看租户信息表;
c)demo用户和租户_member_角色关联;
4.3.15、创建service租户,其他project之间的交互,需要加入到service这个租户里,后续需要使用
4.3.16、创建keystone自身的服务和端点endpoint
Openstack中任何服务(包括keystone自己)都需要以service的形式将其访问的url注册到keystone中,这样便于组之间通讯。
如下是服务service和端点endpoint的配置过程。
a)创建keystone的service类型,其他服务通过catalog即可访问到keyston服务。
b) 将keystone服务端口注册到service中,从而通过service访问ksytone,并查看表;
4.3.17、验证keystone的配置;
a)取消keystone的环境变量:
命令:
#unsert OS_SERVICE_TOKEN
#unsert OS_SERVICE_ENDPOINT
并校验admin用户获取token是否正常;
b)验证admin是否有管理权限,如用户、租户、角色、服务、端点;
c)验证demo账号获取token情况;
d)验证demo账号是否有权限;
4.3.18、设置用户环境变量文件
使用keystone客户端和keystone服务交互的时候 , 可以在keystone命令后面加上类似如--os-username的参数,如果毎次执行都需要加 上该参数的话, 会非常不便捷 , 为了避免毎次执行命令都需要加上参数,keystone支持设置环境变量,将所需要的信息,以环境变量的方式加载,后续直接输入子命令即可,不需要加额外参数。
a)配置admin用户的环境变量
b)、配置demo账号的环境变量
4.4、glance的安装与配置
注:*该项的所有操作步骤需要使用root用户进行。
*该项的所有操作在controller0主机进行。
4.4.1、创建数据库,并测试查看新建的数据库。
4.4.2、创建keystone认证的用户。
a)创建用户,首先先执行启动环境变量;
b)授权glance权限,通过连接admin角色与glance用户授权;
c)创建glance服务,创建image服务实体;
d)将glance服务路径注册到keystone,创建image服务的挨批端口;
4.4.3、安装glance服务。
4.4.4、配置glance-api服务。
注:*该项的所有操作步骤需要使用root用户进行。
*该项的所有操作在controller0主机进行。
a)配置数据库连接,查看是否修改成功;
b)配置keystone,并查看配置信息;
c)配置image存储位置,使用本地的文件系统存储;
4.4.5、配置image存储位置,使用本地的文件系统存储。
注:*该项的所有操作步骤需要使用root用户进行。
*该项的所有操作在controller0主机进行。
a)配置数据库连接;
b)配置keystone认证;
c)建立glance数据库中所需的表;
4.4.6、启动并校验glance服务。
注:*该项的所有操作步骤需要使用root用户进行。
*该项的所有操作在controller0主机进行。
a)启动glance服务;
b)校验glance服务;
4.5、Nova的安装与配置(controller0);
注:*该项的所有操作步骤需要使用root用户进行。
4.5.1、创建数据库并进行授权;
4.5.2、创建keystone认证用户;
a)创建用户,执行启动admin哟用户环境变量;
b)赋予Nova用户admin权限;
4.5.3、创建Nova服务并注册到keystone中;
a)创建Nova服务实体;
b)创建Nova的api端点;
c) 将Nova service的端点注册到keystone中;
4.5.4、安装和配置Nova;
a)安装Nova,首先进行系统更新;
b)配置数据库连接;
c)配置rabbit;
d)配置keystone认证信息;
e)配置vnc信息;
检查主机是否安装了openstack-icehouse需要的python-websokify版本<=0.5.1,如果是0.6.0,对该软件进行降级
#yum downgrade python-websokify-0.5.1-1.el6.noarch
f)配置glance连接;
开启debug日志:
# openstack-config --set /etc/nova/nova.conf DEFAULT True
g)创建Nova所需的表,并更新数据库;
h)启动Nova相关的服务并设置开启启动;
i)校验controller上的Nova服务是否正常;
4.6、neutron的安装与配置(controller0);
注:*该项的所有操作步骤需要使用root用户进行。
4.6.1、创建数据库并授权;
4.6.2、配置keystone用户;
a)配置keystone用户并授权;
b)配置service并注册endpoint;
4.6.3、安装neutron所需的软件包;
4.6.4、配置neutron,包括:数据库连接,keystone认证,rabbitmq,拓扑配置和插件的配置;
a)配置数据库连接;
b)配置keystone认证;
查看是否修改成功;
c)配置rabbitmq连接,并查看是否配置成功;
d)neutron使用二层插件;
e)配置neutron和Nova状态变更;
f)配置OVS二层插件;
查看配置结果;
g)配置Nova支持neutron(注意,修改的是Nova的配置文件)
查看配置结果
h)启动neutron-server服务;
查看数据库信息;
i)重启Nova服务,和neutron联动;
j)重启neutron-server;
k)controller0上校验neutron的配置;
启动环境变量,列出进程;
查看所有服务的状态;
4.7、Horizon的安装配置(controller0);
注:*该项的所有操作步骤需要使用root用户进行。
*该项的所有操作在controller0主机进行。
4.7.1、首先安装Django14;
a)把Django14-1.4.13-1.el6.noarch.rpm上传到/home目录下;
b)执行命令安装;
4.7.2、安装Horizon组件;
a)清空yum缓存,制作新的缓存;
b)安装相关组件包;
4.7.3、设置OpenStack-dashboard,修改dashboard的配置文件;
4.7.4、启动http和memcached服务并设置开机启动;
4.7.5、验证,在浏览器输入:http://10.20.0.10/dashboard
用户名:admin
密 码:ADMIN_PASS
4.8、Nova的安装与配置(compute0-10.20.0.30)
*该项的所有操作需要使用root用户进行。
4.8.1、安装Nova软件包;
首先创建文件目录data,然后把这个10个包上传到/data目录下安装;
开始安装:
#yum -y install openstack-nova-compute sysfsutils openstack-utils
4.8.2、配置rabbit;
验证配置正确性;
4.8.3、配置keystone连接;
验证配置正确性
4.8.4、配置VNC代理;
4.8.5、配置glance image所在的主机;
4.8.6、校验compute节点是否支持硬件kvm;
4.8.7、启动Nova-compute服务;
4.8.8、校验下compute服务状况;
4.8.9、在controller0上确认Nova-compute服务是否正常;
4.8.10、在controller0上校验Nova和glance是否正常交互;
4.9、neutron的安装与配置(compute0);
注:该项的所有操作步骤需要使用root用户进行;
4.9.1、配置核心网络参
4.9.2、安装neutron网络组建;
4.9.3、配置neutron keystone认证;
检验配置的准确性;
4.9.4、配置rabbitmq连接;
4.9.5、配置neutron使用ml2 for ovs and gre;
检验配置的准确性;
Networking 服务初始化脚本需要一个象征性的链接将/etc/neutron/plugin.ini指向ML2插件的配置文件/etc/neutron/plugins/ml2/ml2_conf.ini。如果这个象征性的链接不存在,创建链接。
4.9.6、配置Nova使用neutron提供网络服务;
检查配置是否正确;
4.9.7、启动服务openvswitch;
4.9.8、检查agent是否启动正常;
4.10、neutron的安装与配置(network0)
注:*该项的所有操作步骤需要使用root用户进行;
*该项的所有操作除了第十步,其他步骤需要在network0节点进行;
4.10.1、配置核心网络参数,允许ip forward,允许转发;
#vi /etc/sysctl.conf
#sysctl -p
4.10.2、安装neutron相关的包;
4.10.3、配置neutron keysone认证;
4.10.4、配置rabbitmq连接,并校验正确性;
4.10.5、配置neutron 使用ml+openvswitch+gre;
4.10.6、配置l3;
4.10.7、配置DHCP agent;
4.10.8、因为采用GRE网络,你需要把MTU设置为1400;
a)创建/etc/neutron/dnsmasq-neutron.conf并添加以下配置;
b)写入配置;
c)kill掉正在润的dnsmasq进程;
4.10.9、配置metadata agent,元数据代理提供配置信息,像实例凭证;
4.10.10、在控制节点controller0上配置元数据代理共享;
*本步骤第10操作步骤需要在controller0节点进行;
4.10.11、回到网络节点继续配置,启动服务openvswitch;
*该项操作步骤需要在network0节点上进行;
4.10.12、修改eth1和br-ext网络配置;
4.10.13、启动neutron服务;
4.10.14、验证;
a)在controller0节点上,查看neutron服务状态;
b)network0节点上,每次重启虚拟机,都需要重新添加一次IP地址;
c)各主机间互拼;
手动部署OpenStack环境(一:Virtual Box 5.1 环境的安装及配置)
https://blog.csdn.net/qq_37823605/article/details/90340904
手动部署OpenStack环境(二:CentOS6.6虚拟机的安装及配置)
https://blog.csdn.net/qq_37823605/article/details/90341000
手动部署OpenStack环境(三:OpenStack环境预配置)
https://blog.csdn.net/qq_37823605/article/details/90341019
手动部署OpenStack环境(四:安装控制器必备软件)
https://blog.csdn.net/qq_37823605/article/details/90341032
手动部署OpenStack环境(五:新建网络及部署虚拟机)
https://blog.csdn.net/qq_37823605/article/details/90345105
手动部署OpenStack环境(六:出现的问题与解决方案&总结)
https://blog.csdn.net/qq_37823605/article/details/90345154
相关文章:

cocoaPods安装、更新第三方库
pod install 换成 pod install --verbose --no-repo-update pod update 换成 pod update --verbose --no-repo-update这是因为:目前,cocoaPods正在被墙中......转载于:https://www.cnblogs.com/hello-Huashan/p/5542456.html

iOS 性能优化总结
原文链接:https://github.com/skyming/iOS-Performance-Optimization关于 iOS 性能优化梳理: 基本工具、业务优化、内存优化、卡顿优化、布局优化、电量优化、 安装包瘦身、启动优化、网络优化等 —— 由_skyming_分享关于iOS 性能优化梳理: …

TCP/IP协议分析
一;前言 学习过TCP/IP协议的人多有一种感觉,这东西太抽象了,没有什么数据实例,看完不久就忘了。本文将介绍一种直观的学习方法,利用协议分析工具学习TCP/IP,在学习的过程中能直观的看到数据的具体传输过程。 为了初学者…

手动部署OpenStack环境(五:新建网络及部署虚拟机)
任务五、新建网络及部署虚拟机 5.1、配置安全组规则 5.2、新建网络 5.3、创建云主机 任务五、新建网络及部署虚拟机 5.1、配置安全组规则 5.1.1、配置安全组; 5.2、新建网络。 5.2.1、创建外部网络; 5.2.2、网络地址为外部网络连接的子网地址;…

C++基础day01 程序设计方法的发展历程
类把属性和方法作了封装! 总结: 面向过程程序设计:数据结构 算法 主要解决科学计算问题,用户需求简单而固定 特点: 分析解决问题所需要的步骤 利用函数实现各个步骤 依次调用函数解决问题 问题: 软件可重用…

【android】android中activity的生命周期
activity生命周期: 实例代码: 1 public class DemoActivity extends Activity {2 3 //1、activity第一次被创建的时候,执行4 Override5 public void onCreate(Bundle savedInstanceState) {6 super.onCreate(savedIn…

Xcode消除编译器警告
Whenever,Xcode警告对于我们来说都相当重要,提醒我们可能存在的错误。但是有时候,我们知道一切都好,everything is in the palm of my hand,我们想要消除那些警告。自己项目的警告 比如我们定义一个designated initial…

手动部署OpenStack环境(六:出现的问题与解决方案总结)
排错一:keystone服务安装中demo用户表单没信息。 排错思路: 组件安装是否有问题;用户创建畲缶有问题;用户认证信息是否合适;原因:用户的认证信息配置错误。 解决方案: a)删除有关demo用户的所有…
一劳永逸,iOS 自定义 ActionSheet 封装流程
原文链接:http://www.jianshu.com/p/cfb87a7db7b1本文为 iOS 自定义视图封装《一劳永逸》系列的第四期,旨在提供封装思路,结果固然重要,但理解过程才最好。授人以鱼不如授人以渔。 —— 由卖报的小画家Sure分享前言 本文为iOS自定…

cocoapods更新
使用sudo gem install cocoapods更新提示: ERROR: While executing gem ... (Errno::EPERM) Operation not permitted 改为:sudo gem install -n /usr/local/bin cocoapods --pre刷刷刷完成更新。但是马上发下更新后使用pod install又发现一个问题 The …

创建对象_工厂方法(Factory Method)模式 与 静态工厂方法
工厂方法模式: 定义:为创建对象定义一个接口,让子类决定实例化哪个类。工厂方法让一个类的实例化延迟至子类。应用场景:客户类不关心使用哪个具体类,只关心该接口所提供的功能;创建过程比较复杂,…

数据通信技术(一:IP划分)
一、某公司生产部有50人,销售部有100人,财务部有25人,客服部有12人,没个员工配置一台主机,该公司有192.168.100.1/24的网段可用,应该如何划分子网。 销售部(100)台:/25 …

团队作业—第二阶段06
站立会议: 继续数据库的连接编程。 任务进度: 实现数据的输出。 站立会议照片: 任务看板: 燃尽图: 转载于:https://www.cnblogs.com/cpljlgs/p/5546157.html
Fade 数字切换动效
原文链接:http://www.jianshu.com/p/983674e6f4ef根据原型高度还原的一个动效作品。希望可以通过审核。谢谢。 —— 由Bear1494735376123分享欢迎同样喜爱动效的你加入 iOS动效特攻队–>QQ群:547897182 iOS动效特攻队–>熊熊:64807025…

fieldset 使用小案例
有初学者问到如何做出如下页面: 对应的代码如下: <fieldset><legend>★审核状态</legend><input name"state" type"radio" class"input1" value"1" />已审核<input name"state" type"radio…

数据通信技术(二:交换机配置管理)
交换机配置与管理(思科模拟器) 1.从用户模式进入特权模式,并进入配置模式设置进入特权模式的密码; 2.进入交换机的端口模式并进行端口状态的设置; 用新密码登录并查看接口状态信息,重启交换机;4.硬件和软件版本查询: 5.设备CPU的利用率: 6.检查设备的MA…

iOS之各种区别
作者 APP叫我取个帅气的昵称 关注 2017.05.15 10:47* 字数 140 阅读 1273评论 7喜欢 51写在前面:本文持续更新,也欢迎简友提供更多的关于iOS(包括swift)中的区别 1. _ _block和 _ _weak修饰符的区别的: (1). _ _block不…

lightoj 1014
lightoj 1014 Ifter Party 链接:http://www.lightoj.com/volume_showproblem.php?problem1014 题意:给你两个数 p, l,求 cha(cha p-l)的约数,当约数大于 l 时,按从小到大输出 思路:…

poj 2681 字符串
http://poj.org/problem?id2681 给你任意长度的字符串,找出两串字符中不相同的字符个数(总数) #include<string> #include<cstring> #include<iostream> #include<cstdio> using namespace std; int main() {int n;…

数据通信技术(三:VLAN划分)
VLAN划分 1.配置环境 :创建4台PC机,并为PC机配置IP PC0:192.168.1.1/24 PC1:192.168.1.2/24 PC2:192.168.1.3/24 PC3:192.168.1.4/24 2.修改交换机名称: 创建VLAN1和VLAN2:…

CSS(2 )-- CSS样式大全
常用css样式大全Author:xu_shuyi201504039.CSS颜色代码大全http://www.cnblogs.com/axing/archive/2011/04/09/CSS.html1.CSS文字属性color : #999999; /*文字颜色*/font-family : 宋体,sans-serif; /*文字字体*/font-size : 9pt; /*文字大小*/font-style:itelic; /…

java io读书笔记(6) Writing Arrays of Bytes
显而易见,一次性写出一堆数据,要比一个byte一个byte的写,快多了,因此,outputstream,给出了2个增强型的write: public void write(byte[] data) throws IOException public void write(byte[] da…
iOS 自定义双向滑块Slider
ZPSlider 一个双向滑块的Slider 前提 这个是在一次和朋友吃饭的时候,我们唠嗑的时候他说的一个需求。因为系统的Slider是只有一个滑块的,而且没有分段滑动的效果。 这不最近都在研究这么个需求。 How to use it -(instancetype)initWithFrame:(CGRec…

数据通信技术(四:链路聚合)
1、修改交换机名称 2、配置A交换机数据 3、配置B交换机数据 4、创建VLAN 5、互拼验证 6、去掉一条链路再进行验证 数据通信技术(一:IP划分) https://blog.csdn.net/qq_37823605/article/details/90345408 数据通信技术(二…

iOS图片,视频上传视频内容旋转
#前言 我最近在接手一个智能盒子的iOS应用,上面有一个功能是这样的。把你本地的照片和视频可以甩屏到你绑定的盒子上。 我的上一位前辈做的时候必须要求再同一个局域网,但是当我做的时候要求不同的局域网也要实现这样的一个功能,优化用户的使…

jackson 解析json问题
1、json串中有key为A,但指定转换的mybean中未定义属性A,会抛异常。处理:mapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false),加上这一条,就没问题了,正常转换。 2、 默认的json串,如…

【转】UIColor对颜色的自定义
原文网址:http://blog.sina.com.cn/s/blog_5f19ccb10101bhqh.html 在iOS开发中,我们使用UIColor来对我们的界面进行颜色设置,一般我们通过以下两种方法使用UIColor:1,label.textColor [UIColor blueColor];2,label.textColor [U…

数据通信技术(八:OSPF单区域配置实验)
OSPF单区域配置实验(Cisco) 一.知识准备 1.掌握了OSPF动态路由协议的定义和功能; 2.掌握了OSPF动态路由协议的特征和工作原理。 二.实验目的 掌握OSPF动态路由单区域的基本配置方法和结果验证。 掌握OSPF单区域配置的作用 三ÿ…

redis在php中的使用介绍
redis介绍 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都 支持push/pop、add/remo…

控制发光二极管
一 LED驱动的实现原理 尽管Linux驱动直接与硬件打交道,但并不是Linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。每一个连接Linux的硬件在I/O内存中都会有映射首地址,开发板上的LED也有其映射首地址。 二 编写LED驱动 第一…