本次所有原理,操作可以使用官方链接进行参考
环境要求:
-
控制节点: 1 处理器, 4 GB 内存, 及5 GB 存储
-
计算节点: 1 处理器, 2 GB 内存, 及10 GB 存储
controller01 |
10.100.201.201 |
computer01 | 10.100.214.201 |
前提准备:防火墙,selinux关闭
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
systemctl stop firewalld && systemctl disable firewalld
hosts域名解析:
安装虚拟化组件工具
yum install libvirt -y
[root@controller01 ~]# tail /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.100.201.201 controller01
10.100.214.202 computer01
一:配置时间同步:
controller01配置:
[root@controller01 ~]# yum install chrony -y
配置ntp时间服务器主的config文件,修改一下图中两个地方:
vim /etc/chrony.conf
启动服务:
[root@controller01 ~]# systemctl start chronyd && systemctl enable chronyd && systemctl status chronyd
computer时间同步配置:
[root@compute01 ~]# yum install chrony -y
启动服务:
[root@compute01 ~]# systemctl start chronyd && systemctl enable chronyd && systemctl status chronyd
验证是否时间同步正常:
[root@compute01 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* controller01 3 6 377 18 +70us[ +619us] +/- 23ms
[root@compute01 ~]# timedatectl
Local time: Sat 2020-05-23 19:53:34 CST
Universal time: Sat 2020-05-23 11:53:34 UTC
RTC time: Sat 2020-05-23 11:53:34
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
二:安全包
1:安装需要的源
我们这里使用阿里的源
准备阿里源的base源:
[root@controller01 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@controller01 yum.repos.d]# ls
CentOS-Base.repo
[root@node76 ~]# yum list | grep openstack
centos-release-openstack-queens.noarch 1-2.el7.centos extras
centos-release-openstack-rocky.noarch 1-1.el7.centos extras
centos-release-openstack-stein.noarch 1-1.el7.centos extras
centos-release-openstack-train.noarch 1-1.el7.centos extras
[root@controller01 ~]# yum install centos-release-openstack-queens.noarch -y
[root@compute01 ~]# yum install centos-release-openstack-queens.noarch -y
注意此处如果没有,请更改为图片中的阿里源
2:安装openstack的客户端和openstack-selinux
[root@controller01 ~]# yum install python-openstackclient openstack-selinux -y
三:安装数据库
大多数 OpenStack 服务使用 SQL 数据库来存储信息。 典型地,数据库运行在控制节点上。
python2-PyMySQL:openstack架构是由python进行编写的,所以在每个组件进行存储信息的时候需要这个mysql的模块
1:安装软件包:
[root@controller01 ~]# yum install mariadb mariadb-server python2-PyMySQL -y
2:配置数据库:
innodb_file_per_table:使每个数据库的表都有独立的文件
创建并编辑 /etc/my.cnf.d/openstack.cnf,然后完成如下动作
[mysqld]
bind-address = 10.100.201.201
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
3:启动mariadb服务
[root@controller01 ~]# systemctl start mariadb && systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
4:为mariadb数据库配置root密码
[root@controller01 ~]# mysql_secure_installation
四:安装消息队列
OpenStack 使用 message queue 协调操作和各服务的状态信息。消息队列服务一般运行在控制节点上。OpenStack支持好几种消息队列服务包括 RabbitMQ, Qpid, 和 ZeroMQ。不过,大多数发行版本的OpenStack包支持特定的消息队列服务。本指南安装 RabbitMQ 消息队列服务,因为大部分发行版本都支持它。如果你想安装不同的消息队列服务,查询与之相关的文档。
1:安装包
[root@controller01 ~]# yum install rabbitmq-server -y
2:启动消息队列服务并将其配置为随系统启动
[root@controller01 ~]# systemctl start rabbitmq-server && systemctl enable rabbitmq-server
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.
3:添加 openstack 用户:
rabbitmq安装之后会后一个rabbitmqctl的命令用来管理rabbitmq服务
[root@controller01 ~]# rabbitmqctl add_user openstack huayun
Creating user "openstack"
4:给``openstack``用户 “配置” “写” 和 “读” 权限
[root@controller01 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/"
5:启动rabbitmq_management 插件
rabbitmq_management是rabbitmq的管理插件:
当rabbitmq启动时候会有两个端口启动:5672和25672两个段
5672是为对外服务客户端提供;25672端口是为了支持rabbitmq的集群之间的通信
[root@controller01 ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
amqp_client
cowlib
cowboy
rabbitmq_web_dispatch
rabbitmq_management_agent
rabbitmq_management
Applying plugin configuration to rabbit@controller01... started 6 plugins.
当启动rabbitmq的管理插件之后又会出现一个新的端口15672
15672端口会提供一个web界面:默认的登入用户名/密码: guest/guest
五:memcached的安装
认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。在生产部署中,我们推荐联合启用防火墙、认证和加密保证它的安全。
当我们去读取数据的时候,会去数据库读取数据,当读取数据之后会在memcached中进行缓存,当下次读取的时候直接从缓存空间中返回给客户端,这个就加快了访问的速度
1:安装包:
[root@controller01 ~]# yum install memcached python-memcached -y
2:编辑/etc/sysconfig/memcached
文件并完成以下操作:
-
配置服务以使用控制器节点的管理IP地址。这是为了允许其他节点通过管理网络进行访问:
[root@controller01 ~]# sed -i 's/127.0.0.1/10.100.201.201/g' /etc/sysconfig/memcached
3:启动服务:
[root@controller01 ~]# systemctl enable memcached.service && systemctl start memcached.service
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.
启动服务之后检测是否有11211的端口监听
六:安装etcd服务(openstack集群需要进行安装,这里不是集群不进行安装)
OpenStack服务可以使用Etcd(分布式可靠键值存储)来进行分布式键锁定,存储配置,跟踪服务活动性和其他情况。
etcd服务在控制器节点上运行。
主要作用是:管理网络通过其他节点的访问的管理IP地址:
最小化openstack的基础服务到此结束,谢谢