本次安装参照官网文档进行安装,使用的是当前最新版 Train。
本次安装是在 VMware 环境下进行安装,使用 CentOS 7.4 系统,最小化安装。
官方建议最低配置:
本次安装仅使用了一张管理网卡,使用Vmware 的 NAT 模式,机器可以直接访问互联网:
两台主机都配置 controller
的解析
# vim /etc/hosts,添加 controller 的解析
10.1.1.128 controller
验证:
[root@controller ~]# ping controller
PING controller (10.1.1.128) 56(84) bytes of data.
64 bytes from controller (10.1.1.128): icmp_seq=1 ttl=64 time=0.061 ms
64 bytes from controller (10.1.1.128): icmp_seq=2 ttl=64 time=0.027 ms
^C
--- controller ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.027/0.044/0.061/0.017 ms
# 挂载镜像到 /mnt,rc.local 会在用户登陆之前读取,在每次系统启动时都会执行一次
mount /dev/cdrom /mnt
echo 'mount /dev/cdrom /mnt' >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
# 配置本地源
echo '[local]
name=local
baseurl=file:///mnt
gpgcheck=0' > /etc/yum.repos.d/local.repo
修改控制节点为时间服务器,控制节点与公网同步,计算节点和控制节点同步
控制节点:
# 安装服务
yum install chrony -y
# 编辑配置文件:vim /etc/chrony.conf
# 删除自带的服务器,使用公网时间服务器
server pool.ntp.org iburst
# 允许本地网络访问
allow 10.1.1.0/24
# 修改配置文件后开启服务,设置开机启动
systemctl enable chronyd.service
systemctl start chronyd.service
计算节点配置文件只修改服务器地址,同样设置为开机启动:
# 编辑配置文件:vim /etc/chrony.conf
# 删除自带的服务器,使用控制节点时间服务器
server 10.1.1.128 iburst
验证:
[root@compute1 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? controller 0 9 0 - +0ns[ +0ns] +/- 0ns
所有节点都需要安装,即控制节点、计算节点。
从当前源中查找 OpenStack repo :
[root@controller ~]# yum search centos-release-openstack
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* centos-ceph-nautilus: mirrors.huaweicloud.com
* centos-nfs-ganesha28: mirror.bit.edu.cn
* centos-openstack-train: mirror.bit.edu.cn
* centos-qemu-ev: mirror.bit.edu.cn
* extras: mirrors.huaweicloud.com
* updates: mirror.bit.edu.cn
======================================== N/S matched: centos-release-openstack ========================================
centos-release-openstack-queens.noarch : OpenStack from the CentOS Cloud SIG repo configs
centos-release-openstack-rocky.noarch : OpenStack from the CentOS Cloud SIG repo configs
centos-release-openstack-stein.noarch : OpenStack from the CentOS Cloud SIG repo configs
centos-release-openstack-train.noarch : OpenStack from the CentOS Cloud SIG repo configs
Name and summary matches only, use "search all" for everything.
安装 Train 版本的 repo:
yum install -y centos-release-openstack-train.noarch
安装完成后,会在系统路径中看到相关的 repo 文件:
[root@controller ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-NFS-Ganesha-28.repo CentOS-Sources.repo local.repo
CentOS-Ceph-Nautilus.repo CentOS-fasttrack.repo CentOS-OpenStack-train.repo CentOS-Storage-common.repo
CentOS-CR.repo CentOS-Media.repo CentOS-QEMU-EV.repo CentOS-Vault.repo
更新包:
yum upgrade
安装 OpenStack client 和 openstack-selinux。
注:HEL和CentOS默认情况下启用SELinux。安装openstack-selinux软件包以自动管理OpenStack服务的安全策略。
yum install python-openstackclient openstack-selinux -y
yum install mariadb mariadb-server python2-PyMySQL -y
/etc/my.cnf.d/openstack.cnf
,添加以下内容:[mysqld]
bind-address = 10.0.0.11
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
这里我用的是空密码,选项顺序是:n y y y y yOpenStack 使用消息队列来协调服务之间的操作和状态信息,默认使用的是rabbitmq
。
安装并启动服务
yum install rabbitmq-server
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
添加用户并为用户配置授权
# 用户名 openstack 密码 RABBIT_PASS
rabbitmqctl add_user openstack RABBIT_PASS
# 为用户配置读、写、访问权限
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
安装 web 管理(非必需)
rabbitmq-plugins enable rabbitmq_management
验证安装
rabbitmq 服务使用的是 5672 和 25672 端口,web 端使用 15672 端口
可以通过netstat -nltp | grep 5672
来查看端口是否已监听
注:最小化安装没有 netstat 命令,可以通过
yum install net-tools -y
来安装
[root@controller ~]# netstat -nltp | grep 5672
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 1208/beam.smp
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 1208/beam.smp
tcp6 0 0 :::5672 :::* LISTEN 1208/beam.smp
通过http://controller_ip:15672
来访问,默认账号密码是 guest,我的控制节点 IP 是 10.1.1.128,访问如下:
注:如果端口开通,但是无法访问,一般情况是防火墙限制,请添加策略或直接关闭,我是直接关闭:
systemctl stop firewalld
安装
yum install memcached python-memcached -y
编辑配置文件 /etc/sysconfig/memcached
,允许其他节点来访问 memcached,0.0.0.0
表示谁都可以访问。
OPTIONS="-l 0.0.0.0"
启动服务
systemctl enable memcached.service
systemctl start memcached.service
验证:
使用netstat -nltup | grep 11211
查看 端口是否已监听。
OpenStack服务可以使用 Etcd 进行分布式键锁定,存储配置,跟踪服务活动性和其他情况。
安装
yum install etcd -y
编辑配置文件/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.1.1.128:2380"
ETCD_LISTEN_CLIENT_URLS="http://10.1.1.128:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.1.1.128:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.1.1.128:2379"
ETCD_INITIAL_CLUSTER="controller=http://10.1.1.128:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
开启服务
systemctl enable etcd
systemctl start etcd
验证:
使用netstat -nltup | grep 23
查看 2379、2380 端口是否已监听。
至此,OpenStack 需要的基础环境已经搭建完成。
PS:安装过程不记录了,因为看到了系统关联推荐的另一篇文章,也是按照官网来步骤来进行安装的,记录的也很详细,在此引用一下,OpenStack Train版部署。
之后就记录我照着官网文档安装过程中碰到的坑,上面的文章中已经跳过了其中一些坑OpenStack Train 安装过程记录。