👌 2021-05-07 OpenStack Wallaby 部署1 操作系统及基础环境
FileInfo Filename - OpenStack Wallaby 部署简介 Version - v1.0.2105(2021/05/07 ~ 2021/05/09) Author - standuke Email - shadowdoker@gmail.com DescriptionKey - Operating system and basic environment of OpenStack Wallaby deployment
版本修订记录:
v1.0.2105:2021-05-07:建立 OpenStack Wallaby 部署1 操作系统及基础环境,修订人:standuke
[TOC]
操作系统环境准备
==以下操作系统环境准备每个节点都需要做==
操作系统安装
此次部署操作系统为 ubuntu-20.04.2-live-server-amd64.iso
操作系统便利设置
- 配置 ssh-key 免密登陆
- 启用 root 用户
- 配置 允许 root 用户登陆
操作系统新增 deb 源
sudo add-apt-repository cloud-archive:wallaby
参考资料: https://wiki.ubuntu.com/OpenStack/CloudArchive
更新操作系统
apt update && apt dist-upgrade
如果更新包含了内核更新,那需要重启系统
安装 OpenStack 客户端
仅适用于 Ubuntu 20.04 LTS
apt install python3-openstackclient
NTP 时间同步
- NTP Server
Controller「NTP Server只需配置一台服务器即可」
安装 Chrony 作为 NTP 服务段,此时系统会自动禁用 mask
系统默认安装的 timedatectl
内包含的 systemd-timesyncd
apt install chrony
修改 chrony 配置文件
vim /etc/chrony/chrony.conf
# 作出如下修改即可
pool ntp.ubuntu.com iburst maxsources 4
server 127.127.1.0 iburst
allow 192.168.2.0/24
allow 192.168.10.0/24
查看 配置的本地 NTP Server 是否生效
root@node1:~# chronyc sources
210 Number of sources = 5
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? localhost 0 8 0 - +0ns[ +0ns] +/- 0ns
^? golem.canonical.com 0 6 0 - +0ns[ +0ns] +/- 0ns
^* chilipepper.canonical.com 2 6 377 52 +3446us[+4892us] +/- 149ms
^+ pugot.canonical.com 2 6 377 52 -5135us[-5135us] +/- 168ms
^+ alphyn.canonical.com 2 6 377 51 +14ms[ +14ms] +/- 209ms
- NTP Client
由于系统安装时会默认安装 ntp 服务 `` 所以只需要在 NTP 时间同步服务器池内添加本地服务器地址即可。
vim /etc/systemd/timesyncd.conf
[Time]
NTP=192.168.2.11
使用 timedatectl
来查看是否生效
root@node2:~# timedatectl show-timesync
SystemNTPServers=192.168.2.11
FallbackNTPServers=ntp.ubuntu.com
ServerName=192.168.2.11
ServerAddress=192.168.2.11
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=1min 4s
Frequency=0
root@node2:~# timedatectl timesync-status
Server: 192.168.2.11 (192.168.2.11)
Poll interval: 8min 32s (min: 32s; max 34min 8s)
Leap: normal
Version: 4
Stratum: 3
Reference: 5BBD59C6
Precision: 1us (-24)
Root distance: 185.188ms (max: 5s)
Offset: -37.208ms
Delay: 91us
Jitter: 26.196ms
Packet count: 6
Frequency: +91.680ppm
参考资料: https://zh.codepre.com/how-to-5498.html
主机名及域名
本次环境使用修改 hosts 文件方式完成域名解析
vim /etc/hosts
root@node1:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 node1
192.168.2.11 node1 node1.nuo.com controller
192.168.2.12 node2 node2.nuo.com compute
192.168.2.13 node3 node3.nuo.com storage
关闭防火墙及 SELinux
关闭防火墙
ufw disable
关闭 SELinux
apt install policycoreutils
root@node1:~# sestatus
SELinux status: disabled
安装 OpenStack 环境依赖
==以下软件环境依赖均安装于 Controller
节点==
MariaDB「MySQL」数据库
大多数 OpenStack 服务都使用 SQL 数据库来存储信息。该数据库通常在控制器节点上运行。本指南中的过程根据发行版使用 MariaDB 或 MySQL。OpenStack 服务还支持其他 SQL 数据库,包括 PostgreSQL。
- 安装 MariaDB 包「python3-pymysql 只针对于 Ubuntu 20.04 LTS」
apt install mariadb-server python3-pymysql
- 创建并编辑
/etc/mysql/mariadb.conf.d/99-openstack.cnf
文件同时修改相关配置
vim /etc/mysql/mariadb.conf.d/99-openstack.cnf
[mysqld]
bind-address = 192.168.2.11
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
- 启动 MariaDB
systemctl start mariadb.service
systemctl restart mariadb.service「默认服务应该是自动启动了,所以只要重启服务即可」
systemctl enable mariadb.service
- 使用 如下脚本完成对于 MariaDB 数据库的初始化
mysql_secure_installation
测试环境 root 密码 1212
RocketMQ「消息队列」
OpenStack 使用消息队列来协调服务之间的操作和状态信息。消息队列服务通常在控制器节点上运行。OpenStack 支持多种消息队列服务,包括 RabbitMQ,Qpid 和 ZeroMQ。但是,打包 OpenStack 的大多数发行版都支持特定的消息队列服务。本指南实现了 RabbitMQ 消息队列服务,因为大多数发行版都支持该服务。如果您希望实施其他消息队列服务,请查阅与其相关的文档。
- 安装软件包
apt install rabbitmq-server
- 添加 openstack 用户
root@node1:~# rabbitmqctl add_user openstack OPENSTACK
Adding user "openstack" ...
- 允许用户配置,写入和读取访问权限openstack
root@node1:~# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
Memcached
服务的身份服务身份验证机制使用 Memcached 来缓存令牌。memcached 服务通常在控制器节点上运行。对于生产部署,我们建议启用防火墙,身份验证和加密的组合以对其进行保护。
- 安装软件包
apt install memcached python3-memcache
- 编辑
/etc/memcached.conf
文件并将服务配置为使用控制器节点的管理 IP 地址。这是为了允许其他节点通过管理网络进行访问
vim /etc/memcached.conf
第 35 行 修改
- -l 127.0.0.1
+ -l 192.168.2.11
- 重启 Memcached 服务
systemctl restart memcached.service
systemctl enable memcached.service
Synchronizing state of memcached.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable memcached
etcd
OpenStack 服务可以使用 etcd(分布式可靠键值存储)进行分布式键锁定,存储配置,跟踪服务活动性和其他情况。
- 安装etcd软件包
apt install etcd
- 编辑
/etc/default/etcd
文件,并设置ETCD_INITIAL_CLUSTER
,ETCD_INITIAL_ADVERTISE_PEER_URLS
,ETCD_ADVERTISE_CLIENT_URLS
,ETCD_LISTEN_CLIENT_URLS
控制器节点,以使经由管理网络通过其他节点的访问的管理IP地址「安装完 etcd 后,默认的配置文件是空的」
vim /etc/default/etcd
ETCD_NAME="controller"
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER="controller=http://192.168.2.11:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.2.11:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.2.11:2379"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.2.11:2379"
- 重新启动 etcd 服务,并开机自启
systemctl enable etcd
systemctl restart etcd