openstack学习二-虚拟机上手工最小化安装stein(1)

    openstack目前最新稳定版本是stein,通过手工安装一遍可以最大限度的了解openstack的架构,更加深刻的理解openstack各组件之间的关联关系,本次实验的目标是在一台虚拟机上通过手工最小化安装openstack的基础服务及keystone、glance、placement、nova、neutron组件安装,这些组件安装后即可通过openstack命令行来开通虚拟机,如果需要图形界面管理还需要安装horizon提供dashboard服务。

一、openstack整体组件架构图

OpenStack conceptual architecture

上图是openstack官方网站架构图,各种组件的目标最终都是为了给VMs提供各类服务,比如最基本的认证、镜像、计算及网络服务,其它类似对象、块存储、大数据、编排等服务也是为了更好的为租户提供服务。学习openstack要知到这些服务并不是一开始被设计好的,而是随着openstack的推广应用逐渐扩展开来的,这里面只有nova、glance是最初的服务。

二、安装主机规划

主机名cpu内存netcard1netcard2
controller416ens192:10.37.6.23ens224:10.37.9.171
compute416ens192:10.37.6.24ens224:10.37.9.198

控制节点、计算节点的规划如下图两个实心框所示,虚线框是可选项,不在本次讨论之列,最小需要两台虚拟机,实际使用的配置如上。 

硬件è¦æ±

 

三、安装密码规划

 
用户账号

密码名称

密码

描述

root

root

root

数据库的root密码

admin

ADMIN_PASS

admin

用户密码 admin

cinder

CINDER_DBPASS

cinder

块存储服务的数据库密码

cinder

CINDER_PASS

cinder

Block Storage服务用户的密码 cinder

dashboard

DASH_DBPASS

dashboard

仪表板的数据库密码

demo

DEMO_PASS

demo

用户密码 demo

glance

GLANCE_DBPASS

glance

图像服务的数据库密码

glance

GLANCE_PASS

glance

图像服务用户的密码 glance

keystone

KEYSTONE_DBPASS

keystone

身份服务的数据库密码

metadata

METADATA_SECRET

metadata

元数据代理的秘密

neutron

NEUTRON_DBPASS

neutron

网络服务的数据库密码

neutron

NEUTRON_PASS

neutron

网络服务用户的密码 neutron

nova

NOVA_DBPASS

nova

Compute服务的数据库密码

nova

NOVA_PASS

nova

计算服务用户的密码 nova

placement

PLACEMENT_PASS

placement

展示位置服务用户的密码 placement

openstack

RABBIT_PASS

openstack

RabbitMQ用户的密码 openstack

四、基本环境安装

      1、配置网卡ip及主机名解析

           依据上面数据规划在分别将主机设置为controller、compute两个主机,分别配置上对应两个网卡的IP地址及设置好/etc/hosts文件内容。

      2、所有主机节点上安装NTP服务并验证
  yum install chrony
  vi /etc/chrony.conf 添加一行本地NTP服务器IP地址即可,如果使用互联网访问则不必修改使用默认配置即可。
      server 133.0.254.240 iburst

     systemctl enable chronyd.service
     systemctl start chronyd.service

在计算节点上修改chrony配置文件,将服务器指向为controller节点,用controller从高精度时间节点同步,然后在让计算节点通过controller节点同步时间。执行完后通过chronyc sources进行检查,在计算节点上第一个应该是controller。

  3、安装启用centos7的openstack安装库及客户端

extras存储库提供启用OpenStack存储库的RPM。CentOS extras默认包含存储库,因此您只需安装软件包即可启用OpenStack存储库。

   yum install centos-release-openstack-stein -y

RHEL和CentOS 默认启用SELinux。安装 openstack-selinux软件包以自动管理OpenStack服务的安全策略

   yum install python-openstackclient openstack-selinux -y

4、 安装配置数据库服务,该项目只需要在控制节点安装即可

 yum install mariadb mariadb-server python2-PyMySQL

创建和编辑/etc/my.cnf.d/openstack.cnf文件(/etc/my.cnf.d/如果需要,备份现有配置文件)并完成以下操作:

  • 创建一个[mysqld]部分,并将bind-address 密钥设置为控制器节点的管理IP地址,以允许其他节点通过管理网络进行访问。设置其他键以启用有用选项和UTF-8字符集:

    [mysqld]
    bind-address = 10.37.6.23
    
    default-storage-engine = innodb
    innodb_file_per_table = on
    max_connections = 4096
    collation-server = utf8_general_ci
    character-set-server = utf8
systemctl enable mariadb.service
systemctl start mariadb.service
mysql_secure_installation(初始化数据库安装配置)root密码按上表规划为root

5、消息队列安装

消息队列在控制器节点上运行,所以在主控节点上安装即可

  1. 安装包:

    # yum install rabbitmq-server
    
  2. 启动消息队列服务并将其配置为在系统引导时启动:

    # systemctl enable rabbitmq-server.service
    # systemctl start rabbitmq-server.service
    
  3. 添加openstack用户:

    # rabbitmqctl add_user openstack openstack
    
    Creating user "openstack" ...
  4. 允许用户进行配置,写入和读取访问 openstack

    # rabbitmqctl set_permissions openstack ".*" ".*" ".*"
    
    Setting permissions for user "openstack" in vhost "/" ...
    
    

    5、打开rabbitmq的gui管理插件

          rabbitmq-plugins enable rabbitmq_management

   通过rabbitmq-plugins list查看插件打开情况,也可以通过netstat -ntlp查看,rabbitmq的管理插件会监听tcp端口15672

 使用账号guest/guest登陆

可以发现guest是rabbitmq的默认管理员账号,openstack是我们自己创建的用户,后面的组件安装配置时会使用这个账号。 

6、memcached安装

服务的身份服务身份验证机制使用Memcached来缓存令牌。memcached服务通常在控制器节点上运行。

openstack使用memcached就是为了提升keystone的效率,在令牌没有过期期间大量缓存令牌,服务间交互令牌不在需要从数据库中读取,大幅提升keystone的处理效率,降低数据库的压力。

  • 安装 yum install memcached python-memcached -y
  • 配置
vi /etc/sysconfig/memecached 
## modify
OPTION="-l 127.0.0.1,::1,controller"
复制代码
  • 启动服务
systemctl start memcached
systemctl enable memcached

7、etcd安装

OpenStack服务可以使用Etcd,一种分布式可靠的键值存储,用于分布式密钥锁定,存储配置,跟踪服务生存和其他场景,该服务只在控制节点安装。

  1. 安装包:

    # yum install etcd
    
  1. 编辑/etc/etcd/etcd.conf文件并设置ETCD_INITIAL_CLUSTER, ETCD_INITIAL_ADVERTISE_PEER_URLSETCD_ADVERTISE_CLIENT_URLS, ETCD_LISTEN_CLIENT_URLS控制器节点,以使经由管理网络通过其他节点的访问的管理IP地址:

    #[Member]
    ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
    ETCD_LISTEN_PEER_URLS="http://10.37.6.23:2380"
    ETCD_LISTEN_CLIENT_URLS="http://10.37.6.23:2379"
    ETCD_NAME="controller"
    #[Clustering]
    ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.37.6.23:2380"
    ETCD_ADVERTISE_CLIENT_URLS="http://10.37.6.23:2379"
    ETCD_INITIAL_CLUSTER="controller=http://10.37.6.23:2380"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
    ETCD_INITIAL_CLUSTER_STATE="new"
  2. 注意etcd_name配置值要与ETCD_INITIAL_CLUSTER配置的主机名一致,否则etcd服务无法启动。
  • 启用并启动etcd服务:

    # systemctl enable etcd
    # systemctl start etcd

在控制节点上通过netstat -ntlp查看已经安装好的服务。tcp25672是消息队列rabbitmq的监听端口。

8、批量打开上面所安装服务需要打开的防火墙端口 

firewall-cmd --zone=internal --add-port=3306/tcp --permanent

firewall-cmd --zone=internal --add-port=5672/tcp --permanent

firewall-cmd  --add-port=15672/tcp --permanent

firewall-cmd --zone=internal --add-port=11211 --permanent

firewall-cmd --zone=internal --add-port=2379/tcp --permanent

firewall-cmd --zone=internal --add-port=2380/tcp --permanent

firewall-cmd  --add-port=5000/tcp --permanent

firewall-cmd --reload

总结:至此,由两个主机构成的openstack最小集群已经具备了安装openstack组件的条件,后面具体介绍如何最小化安装必要组件。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习要求: 熟悉基本的linux命令 具备基本的网络知识 掌握一门编程语言 课程特点: 深刻理解:OpenStack的设计原理,体系构架和关键技术,构建一个OpenStack环境所需的核心组件以及核心组件间的联系; 全面掌握:如何通过不同的部署工具比如packstack,部署OpenStack环境;如何通过单独部署OpenStack核心组件逐渐搭建出OpenStack环境; 定制研发:在学习openstack源码级深度解析培训后,你能了解openstack源码的体系结构,并能根据需要进行定制开发,满足您在实际生产环境中OpenStack的各种疑问和不满足的功能。 ------------------------课程内容------------------------ 课时1、课前学习环境准备 课时2、课程介绍 课时3、OpenStack概论 课时4、实例:OpenStack自动安装(Fuel) 课时5、作业:OpenStack Fuel 课时6、OpenStack安装部署答问 课时7、Keystone 详解 课时8、实例:OpenStack 手动安装 - 环境准 课时9、实例:Keystone 手动安装 课时10、实例:Keystone CLI 使用 课时11、实例:Keystone API使用 课时12、Glance详解 课时13、实例:Glance手动安装以及CLI、API 课时14、实例:Glance镜像制作 课时15、实例:Glance镜像修改 课时16、作业:Keystone手动练习 课时17、Keystone答问 课时18、作业:Glance手动练习 课时19、Nova架构及原理详解 课时20、实例:Nova手动安装 课时21、实例:Instance启动过程回顾 课时22、网络基础知识盘点 课时23、Neutron原理详解 课时24、实例:Neutron手动安装 课时25、实例:网络命名空间 课时26、实例:物理机连接openvswitch的虚 课时27、实例:租户私有网络创建 课时28、Neutron SDN 实现详解 课时29、实例:Neutron SDN 手动实现 课时30、作业:Nova、Neuron手动安装练习 课时31、作业:Neutron 相关实例练习 课时32、Neutron 答问 课时33、Cinder 原理详解 课时34、Cinder iSCSI实现原理详解 课时35、实例:Cinder 手动安装 课时36、Swift 架构与原理详解 课时37、实例:Swift 手动安装 课时38、Dashboard 介绍与演示 课时39、实例:Dashboard 手动安装 课时40、实例:Dashboard 浮动IP访问实例 课时41、实例:Dashboard 块存储的使用 课时42、实例:Dashboard 对象存储的使用 课时43、实例:OpenStack 命令行接口使用 课时44、OpenStack HA与性能调优 课时45、OpenStack Devstack 自动安 课时46、配置 OpenStack Eclipse 开发环境 课时47、配置 OpenStack Eclipse 开发环境 课时48、OpenStack 自动化测试 - 单元测试 课时49、OpenStack 自动化测试 - 集成测试 课时50、Nova 源码结构 课时51、Nova 调用流程源码解析 课时52、Nova 分层架构与业务模型剖析 课时53、Nova 自定义 API 扩展编码实现 课时54、Django 介绍与快速开始 课时55、Django view 和 urls 的用法 课时56、Django Templates 模板的用法(一) 课时57、Django Templates 模板的用法() 课时58、Django Form 表单的用法 课时59、Horizon 结构源码剖析(1) 课时60、Horizon 自定义 Panel 编码实现 课时61、Horizon 自定义 DataView 编码实 课时62、企业部署案例:企业私有云规划与案 课时63、OpenStack 和其他开源云平台比较

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值