openstack目前最新稳定版本是stein,通过手工安装一遍可以最大限度的了解openstack的架构,更加深刻的理解openstack各组件之间的关联关系,本次实验的目标是在一台虚拟机上通过手工最小化安装openstack的基础服务及keystone、glance、placement、nova、neutron组件安装,这些组件安装后即可通过openstack命令行来开通虚拟机,如果需要图形界面管理还需要安装horizon提供dashboard服务。
一、openstack整体组件架构图
上图是openstack官方网站架构图,各种组件的目标最终都是为了给VMs提供各类服务,比如最基本的认证、镜像、计算及网络服务,其它类似对象、块存储、大数据、编排等服务也是为了更好的为租户提供服务。学习openstack要知到这些服务并不是一开始被设计好的,而是随着openstack的推广应用逐渐扩展开来的,这里面只有nova、glance是最初的服务。
二、安装主机规划
| 主机名 | cpu | 内存 | netcard1 | netcard2 |
|---|---|---|---|---|
| controller | 4 | 16 | ens192:10.37.6.23 | ens224:10.37.9.171 |
| compute | 4 | 16 | ens192:10.37.6.24 | ens224:10.37.9.198 |
控制节点、计算节点的规划如下图两个实心框所示,虚线框是可选项,不在本次讨论之列,最小需要两台虚拟机,实际使用的配置如上。

三、安装密码规划
| 用户账号 | 密码名称 | 密码 | 描述 |
|---|---|---|---|
| root | root | root | 数据库的root密码 |
| admin |
| admin | 用户密码 |
| cinder |
| cinder | 块存储服务的数据库密码 |
| cinder |
| cinder | Block Storage服务用户的密码 |
| dashboard |
| dashboard | 仪表板的数据库密码 |
| demo |
| demo | 用户密码 |
| glance |
| glance | 图像服务的数据库密码 |
| glance |
| glance | 图像服务用户的密码 |
| keystone |
| keystone | 身份服务的数据库密码 |
| metadata |
| metadata | 元数据代理的秘密 |
| neutron |
| neutron | 网络服务的数据库密码 |
| neutron |
| neutron | 网络服务用户的密码 |
| nova |
| nova | Compute服务的数据库密码 |
| nova |
| nova | 计算服务用户的密码 |
| placement |
| placement | 展示位置服务用户的密码 |
| openstack |
| openstack | RabbitMQ用户的密码 |
四、基本环境安装
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、消息队列安装
消息队列在控制器节点上运行,所以在主控节点上安装即可
-
安装包:
# yum install rabbitmq-server -
启动消息队列服务并将其配置为在系统引导时启动:
# systemctl enable rabbitmq-server.service # systemctl start rabbitmq-server.service -
添加
openstack用户:# rabbitmqctl add_user openstack openstack Creating user "openstack" ... -
允许用户进行配置,写入和读取访问
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,一种分布式可靠的键值存储,用于分布式密钥锁定,存储配置,跟踪服务生存和其他场景,该服务只在控制节点安装。
-
安装包:
# yum install etcd
-
编辑
/etc/etcd/etcd.conf文件并设置ETCD_INITIAL_CLUSTER,ETCD_INITIAL_ADVERTISE_PEER_URLS,ETCD_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" - 注意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组件的条件,后面具体介绍如何最小化安装必要组件。
本文详细介绍在两台虚拟机上最小化安装OpenStack Stein版本的过程,涵盖基础服务及关键组件如Keystone、Glance、Nova、Neutron的安装步骤。文章包括环境配置、密码规划、基本服务安装等内容。

3085

被折叠的 条评论
为什么被折叠?



