功能 | 项目名称 | 描述 |
计算服务 & nbsp; | Nova | 负责虚拟机的创建、开关机、挂起、迁移、调整 CPU、内存等规则。 (核心服务) |
对象存储 | Swift | 用于在大规模可扩展系统中通过内置的冗余及高容差机制实现对象存储的系统。(可选服务) |
镜像服务 | Glance | 用于创建、上传、删除、编辑镜像信息的虚拟机镜像查找及索引系统。 (核心服务) |
身份服务 | Keystone | 为其他的功能服务提供身份验证、服务规则及服务令牌的功能。 (核心服务) |
网络管理 | Neutron | 用于为其他服务提供云计算的网络虚拟化技术,可自定义各种网络规则,支持主流的网络厂商技术。(核心服务) |
块存储 | Cinder | 为虚拟机实例提供稳定的数据块存储的创建、删除、挂载、卸载、管理等服务。(核心服务) |
图形界面 | Horizon | 为用户提供简单易用的 web 管理界面,降低用户对功能服务的操作难度。 |
测量服务 | Ceilometer | 收集项目内所有的事件,用于监控、计费或为其他服务提供数据支撑。 |
部署编排 | Heat | 实现通过模板方式进行自动化的资源环境部署服务。 |
数据库服务 | Trove | 为用户提供可扩展的关系或非关系性数据库服务。 |
Openstack 服务组件协同工作拓扑图
中间菱形 VM 是虚拟机, 围绕 VM 的那些长方形代表 OpenStack 不同的模块
OpenStack 部署环境规划
本教程部署的 openstack 版本为 O 版
准备两台虚拟机, 一台作为控制节点, 一台作为计算节点
控制节点 (Controller Node): 管理 OpenStack, 其上运行的服务有 Keystone,Glance,Horizon ,Neutron,Cinder 以及 Nova 和 Neutron 中管理相关的组件. 控制节点也运行支持 OpenStack 的服务, 例如 SQL 数据库(通常是 MySQL), 消息队列(通常是 RabbitMQ) 和网络时间服务 NTP.
计算节点(Compute Node): 其上运行 Hypervisor(默认使用 KVM). 同时运行 Neutron 服务的 agent, 为虚拟机提供网络支持.
控制节点 IP: 192.168.64.7
计算节点 IP: 192.168.64.8
OpenStack 部署环境准备
第一步: 关闭防火墙
两台虚拟机都要操作
- [root@ken-node1 ~]# setenforce 0
- [root@ken-node1 ~]# systemctl stop firewalld
第二步: 域名解析
两台节点都需要操作
- [root@ken-node1 ~]# VIM /etc/hosts
- [root@ken-node1 ~]# scp /etc/hosts 192.168.64.8:/etc/
- The authenticity of host '192.168.64.8 (192.168.64.8)' can't be established.
- ECDSA key fingerprint is SHA256:EO1X8PdzqfD689Y2WYB6eLvaO/gvrWwhDd0cGDGmsgo.
- ECDSA key fingerprint is MD5:6d:25:31:df:78:ef:63:1f:2a:2e:23:11:73:bb:fc:9b.
- Are you sure you want to continue connecting (yes/no)? yes
- Warning: Permanently added '192.168.64.8' (ECDSA) to the list of known hosts.
- root@192.168.64.8's password:
- hosts 100% 205 113.9KB/s 00:00
- [root@ken-node1 ~]# cat /etc/hosts
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 192.168.64.7 ken-node1
- 192.168.64.8 ken-node2
- 192.168.254.6 download.yunwei.edu #解析公司内部源(外部用户无法使用)
第三步: 测试外网连通性
两台都操作
我的两台节点都是使用的 nat 模式
- [root@ken-node1 ~]# ping -c 2 baidu.com
- PING baidu.com (123.125.115.110) 56(84) bytes of data.
- 64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=1 ttl=128 time=11.2 ms
- 64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=2 ttl=128 time=12.5 ms
- --- baidu.com ping statistics ---
- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms
- rtt min/avg/max/mdev = 11.241/11.889/12.537/0.648 ms
第四步: 使用公司源
两台主机都安装
- [root@ken-node1 ~]# cat yum-repo.sh
- mkdir /etc/yum.repos.d/old
- mv /etc/yum.repos.d/C*/etc/yum.repos.d/old/
- wget -O /etc/yum.repos.d/Centos7-Base-yunwei.repo 192.168.254.6/shell/Centos7-Base-yunwei.repo
- wget -O /etc/yum.repos.d/epel-yunwei.repo 192.168.254.6/shell/epel-yunwei.repo
- wget -O /etc/yum.repos.d/rdo-release-yunwei.repo 192.168.254.6/shell/rdo-release-yunwei.repo
- wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud 192.168.254.6/shell/RPM-GPG-KEY-CentOS-SIG-Cloud
- wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 192.168.254.6/shell/RPM-GPG-KEY-EPEL-7
- yum repolist
第五步: 开启虚拟机的虚拟化
第六步: 两台虚拟机时间统一
- [root@ken-node2 ~]# ntpdate time1.aliyun.com
- 20 Mar 14:18:49 ntpdate[1160]: step time server 203.107.6.88 offset -28800.262060 sec
- [root@ken-node2 ~]# date
- Wed Mar 20 14:18:52 CST 2019
OpenStack 组件安装
OpenStack 包
第一步: 安装启用 OpenStack 仓库的包
[root@ken-node1 ~]# yum install CentOS-release-openstack-ocata -y
第二步: 安装 OpenStack 客户端
[root@ken-node1 ~]# yum install python-openstackclient -y
第三步: 安装 openstack-selinux 软件包以便自动管理 OpenStack 服务的安全策略
[root@ken-node1 ~]# yum install openstack-selinux -y
SQL 数据库
第一步: 安装软件包
[root@ken-node1 ~]# yum install mariadb mariadb-server python2-PyMySQL -y
第二步: 创建并编辑 /etc/my.cnf.d/openstack.cnf, 然后完成如下动作:
在 [mysqld] 部分, 设置 ``bind-address`` 值为控制节点的管理网络 IP 地址以使得其它节点可以通过管理网络访问数据库:
- [root@ken-node1 ~]# cat /etc/my.cnf.d/openstack.cnf
- [mysqld]
- bind-address = 192.168.64.7 #绑定控制节点 IP
- default-storage-engine = innodb
- innodb_file_per_table = on
- max_connections = 4096
- collation-server = utf8_general_ci
- character-set-server = utf8
第三步: 启动数据库服务, 并将其配置为开机自启
- [root@ken-node1 ~]# systemctl enable mariadb.service
- Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
- [root@ken-node1 ~]# systemctl start mariadb.service
第四步: 为了保证数据库服务的安全性, 运行 ``mysql_secure_installation`` 脚本
[root@ken-node1 ~]# mysql_secure_installation
消息队列
第一步: 安装
[root@ken-node1 ~]# yum install rabbitmq-server -y
第二步: 启动消息队列服务并将其配置为随系统启动
- [root@ken-node1 ~]# systemctl enable rabbitmq-server.service
- Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.
- [root@ken-node1 ~]# systemctl start rabbitmq-server.service
第三步: 添加 openstack 用户
密码为 openstack
- [root@ken-node1 ~]# rabbitmqctl add_user openstack openstack
- Creating user "openstack" ...
第四步: 给 ``openstack`` 用户配置写和读权限
- [root@ken-node1 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
- Setting permissions for user "openstack" in vhost "/" ...
- Memcached
第一步: 安装
[root@ken-node1 ~]# yum install Memcached python-Memcached -y
第二步: 编辑配置文件 / etc/sysconfig/Memcached
- [root@ken-node1 ~]# VIM /etc/sysconfig/Memcached
- [root@ken-node1 ~]# cat /etc/sysconfig/Memcached
- PORT="11211"
- USER="memcached"
- MAXCONN="1024"
- CACHESIZE="64"
- OPTIONS="-l 127.0.0.1,::1,192.168.64.7" #后面添加 Ip 即可
第三步: 启动
- [root@ken-node1 ~]# systemctl enable Memcached.service
- Created symlink from /etc/systemd/system/multi-user.target.wants/Memcached.service to /usr/lib/systemd/system/Memcached.service.
- [root@ken-node1 ~]# systemctl start Memcached.service
至此, 所有的组件已经安装完毕, 下节开始安装配置认证服务!
来源: https://www.cnblogs.com/kenken2018/p/10564748.html