OpenStack Queen 版的安装与配置(一)|基础环境设置


OpenStack Queen 版的安装与配置(一)|基础环境设置

参考资料

  • OpenStack 官方网站

  • Openstack 文档库

  • OpenStack 版本更新频次

    • 半年更新一次版本
    • A,B,C,D….K 版 L M N O Pike Q R S T U V W X Y Z 版
  • VMware workstation 软件

    OpenStack Queen 版的安装与配置(一)|基础环境设置
    image-20220111093504977
    • 关闭 DHCP 功能
    • 开启虚拟机 CPU 虚拟化功能:“虚拟化 Intel VT-x/EPT 选项或 AMD-V/RVI(V)”

操作系统版本选择

  • Linux 分发版:centos7.9 Minimal
    • Centos7.9 Minimal 版本,Centos 官方网站下载;Openstack Queen 版可以安装到 Centos7 系统上,T 版及以后的版本需要 Centos8 系统(Cenos8 版本已停止维护,不建议使用);当然也可以选择 Debian、SUSE 及 Ubuntu 系统,不过生产环境中 Ubuntu 用的还很少。如果大家熟悉 Debian 系统,推荐 Debian。
  • OpenStack 的选择版本
    • Openstack Queen 版;当然其他的版本也可以,它们之间的安装过程差异极小,只要学会一个版本,其他任何版本都将没有任何问题。
  • 内核版本
    • 默认即可

OpenStack 逻辑架构

OpenStack 组件间逻辑关系架构图

OpenStack Queen 版的安装与配置(一)|基础环境设置


Openstack 八大核心组件

  • Keystone – 身份识别服务(identy service)
  • Glance – 镜像服务(Image service)
  • Nova – 计算机服务 (Compute)
  • Neutron – 网络服务 (networking service)
  • Cinder – 块存储服务(block storage service)
  • Swift – 对象存储服务 (object storage service)
  • Ceilometer – 计费服务 (Telemetry)
  • Horizon – UI 界面,控制面板服务 (Dashboard)

安装配置 OpenStack 之前,一定要先彻底理解各大服务组件之间的关系!然后整个安装过程将变得相对容易的多,而且也方便排错。

实验环境集群架构设计

硬件环境需求设计

使用 2 台虚拟机作为 OpenStack 核心服务器:Controller 节点、Compute 节点

角色 主机名 IP 内存 CPU 硬盘 网卡
控制节点 controller 管理地址:10.0.0.11
业务地址:172.17.2.114
4G 2 核 1 块 20G 2
计算节点 compute1 管理地址:10.0.0.31
业务地址:172.17.2.31
2G 2 核 2 块 20G 2

OpenStack Queen 版的安装与配置(一)|基础环境设置

网络架构需求设计

虚拟机网卡工作模式

  • 第 1 块网卡工作在“NAT 模式”,作为业务网络,可以连接互联网;
  • 第 2 块网卡:工作在“仅主机模式”,作为管理网络,实现 OpenStack 服务内部件通信。

IP 地址分配

  • 业务网络:172.17.2.0/24,分配给第 1 块网卡;
  • 管理网络:10.0.0.0/24,分配给第 2 块网卡。

OpenStack 各服务组件

  1. 「controller node」
  • Mariadb – 数据库服务
  • RabbitMQ-消息队列
  • Keystone – 身份识别服务(identy service)
  • Glance – 镜像服务(Image service)
  • Nova – 计算服务 (Compute)
  • Neutron – 网络服务 (networking service)
  • Horizon – 控制面板服务 (Dashboard)
  1. 「compute node」
  • Nova – 计算服务 (Compute)
  • Neutron – 网络服务 (networking service)

OpenStack 服务默认密码参考

OpenStack 各服务组件默认使用的相关密码,我们刚开始学习 OpenStack,建议保持默认,否则容易出错。

密码名称 描述
数据库密码(不能使用变量) 数据库的 root 密码
ADMIN_PASS admin 用户密码
CINDER_DBPASS 块设备存储服务的数据库密码
CINDER_PASS 块设备存储服务的 cinder 密码
DASH_DBPASS Database password for the Dashboard
DEMO_PASS demo 用户的密码
GLANCE_DBPASS 镜像服务的数据库密码
GLANCE_PASS 镜像服务的 glance 用户密码
KEYSTONE_DBPASS 认证服务的数据库密码
METADATA_SECRET Secret for the metadata proxy
NEUTRON_DBPASS 网络服务的数据库密码
NEUTRON_PASS 网络服务的 neutron 用户密码
NOVA_DBPASS 计算服务的数据库密码
NOVA_PASS 计算服务中nova用户的密码
PLACEMENT_PASS Password of the Placement service user placement
RABBIT_PASS Password of RabbitMQ user openstack

基础环境配置

VMware 虚拟网络

「VMnet8:NAT 模式,172.17.2.0/24」

OpenStack Queen 版的安装与配置(一)|基础环境设置

「VMnet1:仅主机模式,10.0.0.0/24」

OpenStack Queen 版的安装与配置(一)|基础环境设置

关闭防火墙与 SeLinux

controller 与 compute1 都要执行

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭SeLinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled'  /etc/sysconfig/selinux

修改主机名

controller

hostnamectl set-hostname controller
bash

compute1

hostnamectl set-hostname compute1
bash

修改 IP 地址

controller

#查看本机网卡命名,分别是:ens32、ens34
[root@controller ~]#ip link
1: lo:
     ...
2: ens32:
    ...
3: ens34:
    ...
#修改/etc/sysconfig/network-scripts/ifcfg-ens3N配置文件,第一块网卡配置业务IP,可以上网;第二块网卡配置管理IP。
[root@controller ~]#cd /etc/sysconfig/network-scripts
[root@controller network-scripts]#cat <<EOF >ifcfg-ens32
DEVICE=ens32
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
IPADDR=172.17.2.11
PREFIX=24
GATEWAY=172.17.2.2
DNS1=223.5.5.5
DNS2=223.6.6.6
EOF


[root@controller network-scripts]#cat <<EOF >ifcfg-ens34
DEVICE=ens34
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
IPADDR=10.0.0.11
PREFIX=24
EOF
#启动网卡服务
[root@controller network-scripts]# systemctl restart network
[root@controller network-scripts]# ifup ens34
[root@controller ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 00:0c:29:af:89:da brd ff:ff:ff:ff:ff:ff
    inet 172.17.2.11/24 brd 172.17.2.255 scope global ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feaf:89da/64 scope link
       valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 00:0c:29:af:89:e4 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.11/24 brd 10.0.0.255 scope global ens34
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feaf:89e4/64 scope link
       valid_lft forever preferred_lft forever
#测试网络连通性
[root@controller ~]# ping -c 2 www.openstack.org
PING www.openstack.org.cdn.cloudflare.net (104.20.15.8) 56(84) bytes of data.
64 bytes from 104.20.15.8 (104.20.15.8): icmp_seq=1 ttl=128 time=202 ms
64 bytes from 104.20.15.8 (104.20.15.8): icmp_seq=2 ttl=128 time=204 ms

--- www.openstack.org.cdn.cloudflare.net ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 202.523/203.313/204.103/0.790 m

compute1

#查看本机网卡命名,分别是:ens32、ens34
[root@compute1 ~]#ip link
1: lo:
     ...
2: ens32:
    ...
3: ens34:
    ...
#修改/etc/sysconfig/network-scripts/ifcfg-ens3N配置文件,第一块网卡配置业务IP 172.17.2.31,可以上网
[root@controller ~]#cd /etc/sysconfig/network-scripts
[root@controller network-scripts]#cat <<EOF >ifcfg-ens32
DEVICE=ens32
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
IPADDR=172.17.2.31
PREFIX=24
GATEWAY=172.17.2.2
DNS1=223.5.5.5
DNS2=223.6.6.6
EOF

#
第二块网卡配置管理IP 10.0.0.31,OpenStack内部服务互通。
[root@controller network-scripts]#cat <<EOF >ifcfg-ens34
DEVICE=ens34
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
IPADDR=10.0.0.31
PREFIX=24
EOF

#
启动网卡服务
[root@controller network-scripts]# systemctl restart network
[root@controller network-scripts]# ifup ens34
[root@controller ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 00:0c:29:af:89:da brd ff:ff:ff:ff:ff:ff
    inet 172.17.2.31/24 brd 172.17.2.255 scope global ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feaf:89da/64 scope link
       valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 00:0c:29:af:89:e4 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.31/24 brd 10.0.0.255 scope global ens34
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feaf:89e4/64 scope link
       valid_lft forever preferred_lft forever
#测试网络连通性
[root@controller ~]# ping -c 2 www.openstack.org
PING www.openstack.org.cdn.cloudflare.net (104.20.15.8) 56(84) bytes of data.
64 bytes from 104.20.15.8 (104.20.15.8): icmp_seq=1 ttl=128 time=202 ms
64 bytes from 104.20.15.8 (104.20.15.8): icmp_seq=2 ttl=128 time=204 ms

--- www.openstack.org.cdn.cloudflare.net ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 202.523/203.313/204.103/0.790 m

配置/etc/hosts 文件

「controller node 配置」

[root@controller ~]# cat <<EOF >> /etc/hosts
10.0.0.11 controller
10.0.0.31 compute1
EOF
[root@controller ~]# tail -2 /etc/hosts
10.0.0.11 controller
10.0.0.31 compute1

「compute node 配置」

[root@compute1 ~]# cat <<EOF >> /etc/hosts
10.0.0.11 controller
10.0.0.31 compute1
EOF
[root@compute1 ~]# tail -2 /etc/hosts
10.0.0.11 controller
10.0.0.31 compute1
#测试
[root@controller ~]# ping -c 1 controller
PING controller (10.0.0.11) 56(84) bytes of data.
64 bytes from controller (10.0.0.11): icmp_seq=1 ttl=64 time=0.011 ms

--- controller ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.011/0.011/0.011/0.000 ms

阿里云 yum 源

「controller 与 compute1 都要执行」

#获取阿里云yum配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#构建yum索引缓存
yum makecache
#系统升级
yum update -y
#重启
reboot

实际配置前,最好先看下阿里云官方的参考资料,以防 yum 源配置发生了改变。具体查看官方参考链接,选择“centos”!

NTP 时间服务:chrony

集群环境必须保证各节点时间一致。

controller,对时中心指向互联网阿里云对时服务器;compute,对时中心指向 controller。

「controller node 作为 NTP Server」

[root@controller ~]# yum -y install chrony
[root@controller ~]# vim /etc/chrony.conf
# Please consider joining the pool (http://www.pool.ntp.org/join.html).指定阿里云对时服务器作为对时中心。
server  ntp.aliyun.com iburst
...
# Allow NTP client access from local network.指定允许对时的局域网IP地址范围
allow 10.0.0.0/24
...
[root@controller ~]# systemctl restart chronyd
[root@controller ~]# systemctl enable chronyd

「compute node 作为 NTP Client」

[root@compute1 ~]# yum -y install chrony
[root@compute1 ~]# vim /etc/chrony.conf
# Please consider joining the pool (http://www.pool.ntp.org/join.html).指定阿里云对时服务器作为对时中心。
server  10.0.0.11 iburst
...
[root@compute1 ~]# systemctl restart chronyd
[root@compute1 ~]# systemctl enable chronyd

验证

「controller node:」

[root@controller ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 203.107.6.88                  2  10   377   524  -1381us[-1715us] +/-   26ms

「compute node」

[root@compute1 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 10.0.0.11                     3   6   377    62    +94us[ +214us] +/-   25ms

#
随便修改一个错误的时间,然后重启chrony服务,验证看看是否可以正确对时。
[root@compute1 ~]# date -s "2020-10-1"
Thu Oct  1 00:00:00 CST 2020
[root@compute1 ~]# systemctl restart chronyd
#对时成功
[root@compute1 ~]# date
Wed Dec 29 12:38:41 CST 2021

安装基础软件包

「controller node」「compute node」都要执行

#
yum -y install net-tools bash-completion vim pcre pcre-devel expat-devel unzip lrzsz
#---------------------
net-tools           ifconfig命令行工具
bash-completion     bash自动补全工具
vim                 vim工具
pcre pcre-devel     是一个Perl库,包括 perl 兼容的正则表达式库
expat-devel         Expat库,Expat是一个面向流的xml解析器
unzip    zip压缩包解压工具
lrzsz               可使用rz、sz命令上传、下载数据

安装 OpenStack 基础软件包

「controller node」「compute node」 都要执行

#安装配置OpenStack yum软件库(queen版本),其他版本同理;安装openstack-utils,后续直接可以通过命令行方式修改配置文件。
yum -y install centos-release-openstack-queen openstack-utils
#查看/etc/yum.repos.d/目录中OpenStack yum库配置文件
ll /etc/yum.repos.d/ |grep queens
-rw-r--r--  1 root root 1201 Aug 13  2018 CentOS-OpenStack-queens.repo
#升级
yum upgrade -y
#安装OpenStack client及 openstack-selinux
yum install python-openstackclient openstack-selinux

OpenStack 基础服务组件安装

Mariadb 数据库

安装配置 Mariadb 数据库

「controller node 安装」

  1. 安装包
[root@controller ~]#yum install mariadb mariadb-server python2-PyMySQL -y
  1. 创建/etc/my.cnf.d/openstack.cnf 配置文件

[mysqld]段,重点bind-address地址为 OpenStack 管理地址:10.0.0.11

[root@controller ~]# cd /etc/my.cnf.d/
[root@controller my.cnf.d]# vim 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

启动 mariadb 服务

  1. 启动数据库服务,并将其配置为开机自启:

    [root@controller ~]# systemctl enable mariadb.service
    [root@controller ~]# systemctl start mariadb.service
  2. 安全初始化数据库

[root@controller my.cnf.d]# mysql_secure_installation
Enter current password for root (enter for none):   ##当前数据库密码,回车;
Set root password? [Y/n] n        ##设置数据库root密码,为了方便,可以设置为空密码
Remove anonymous users? [Y/n] y      ##移除匿名账号
Disallow root login remotely? [Y/n] y    ##禁用root账号的远程登录
Remove test database and access to it? [Y/n] y  ##移除test数据库
Reload privilege tables now? [Y/n] y    ##重新刷新权限
  1. 验证
[root@controller ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 10
Server version: 10.1.20-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]> exit
Bye

消息阵列:rabbitmq

controller node 安装

安装配置 rabbitmq

  1. 安装软件包
[root@controller ~]# yum install rabbitmq-server -y
  1. 启动消息队列服务并将其配置为随系统启动:
[root@controller ~]#systemctl enable rabbitmq-server.service
[root@controller ~]#systemctl start rabbitmq-server.service
  1. 添加 openstack 用户:
[root@controller ~]#rabbitmqctl add_user openstack RABBIT_PASS
Creating user "openstack" ...
  1. openstack用户配置写和读权限:
[root@controller ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/"

验证

#查看当前用户
[root@controller ~]# rabbitmqctl list_users
Listing users
openstack       []
guest   [administrator]

#
查看开启端口
[root@controller ~]# ss -lntp |grep -E "(beam|epmd)"
LISTEN     0      128          *:25672                    *:*                   users:(("beam.smp",pid=2607,fd=46))
LISTEN     0      128          *:4369                     *:*                   users:(("epmd",pid=2702,fd=3),("systemd",pid=1,fd=66))
LISTEN     0      128       [::]:5672                  [::]:*                   users:(("beam.smp",pid=2607,fd=55))

rabbitmq 端口:

数据端口:tcp 5672;管理端口:tcp 25672

Memcached 服务

各类服务的身份认证机制使用 Memcached 缓存令牌。缓存服务 memecached 通常运行在控制节点。

安装配置 Memcached 服务

「controller node 安装」

  1. 安装软件包
[root@controller ~]# yum install memcached python-memcached -y
  1. 编辑 /etc/sysconfig/memcached 文件并完成如下操作:
  • 为了使其他节点能够通过管理网络(10.0.0.0/24 网段)访问这些服务,请使用控制节点的管理 IP 配置这些服务.
OPTIONS="-l 127.0.0.1,::1,controller"

注解:

修改包含 OPTIONS="-l 127.0.0.1,::1" 的那一行。

启动 Memcached 服务

[root@controller ~]# systemctl enable memcached.service
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.
[root@controller ~]# systemctl start memcached.service

验证

memcached 服务开启 tcp11211 端口

[root@controller ~]# ss -lnutp |grep 11211
tcp    LISTEN     0      128    10.0.0.11:11211                 *:*                   users:(("memcached",pid=5140,fd=28))
tcp    LISTEN     0      128    127.0.0.1:11211                 *:*                   users:(("memcached",pid=5140,fd=26))
tcp    LISTEN     0      128       [::1]:11211              [::]:*                   users:(("memcached",pid=5140,fd=27))

Etcd 服务

「controller node 安装」

安装 etcd 软件包

[root@controller ~]# yum install etcd -y

编辑“/etc/etcd/etcd.conf`

[root@controller ~]# cd /etc/etcd/
[root@controller etcd]# cp -a etcd.conf etcd.conf.bak
[root@controller etcd]# cat <<EOF >etcd.conf
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"
ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"
ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
EOF

启动 etcd 服务

[root@controller etcd]# systemctl enable etcd
Created symlink from /etc/systemd/system/multi-user.target.wants/etcd.service to /usr/lib/systemd/system/etcd.service.
[root@controller etcd]# systemctl start etcd

验证

[root@controller etcd]# ps -ef |grep etcd
etcd       7493      1  0 22:27 ?        00:00:00 /usr/bin/etcd --name=controller --data-dir=/var/lib/etcd/default.etcd --listen-client-urls=http://10.0.0.11:2379
root       7582   1447  0 22:29 pts/0    00:00:00 grep --color=auto etcd
[root@controller etcd]# ss -lntup |grep 7493
tcp    LISTEN     0      128    10.0.0.11:2379                  *:*                   users:(("etcd",pid=7493,fd=6))
tcp    LISTEN     0      128    10.0.0.11:2380                  *:*                   users:(("etcd",pid=7493,fd=5))

注解:

etcd 开启 2 个 tcp 端口,分别是:tcp2379、tcp2380

END
OpenStack Queen 版的安装与配置(一)|基础环境设置

往期推荐




点个“在看”,一年不宕机

原文始发于微信公众号(带米的笨老头):

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/20861.html

(2)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!