OpenStack Wallaby 部署1 操作系统及基础环境

👌 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

操作系统便利设置

  1. 配置 ssh-key 免密登陆
  2. 启用 root 用户
  3. 配置 允许 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。

  1. 安装 MariaDB 包「python3-pymysql 只针对于 Ubuntu 20.04 LTS」
apt install mariadb-server python3-pymysql
  1. 创建并编辑 /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
  1. 启动 MariaDB
systemctl start mariadb.service
systemctl restart mariadb.service「默认服务应该是自动启动了,所以只要重启服务即可」
systemctl enable mariadb.service
  1. 使用 如下脚本完成对于 MariaDB 数据库的初始化
mysql_secure_installation

测试环境 root 密码 1212

RocketMQ「消息队列」

OpenStack 使用消息队列来协调服务之间的操作和状态信息。消息队列服务通常在控制器节点上运行。OpenStack 支持多种消息队列服务,包括 RabbitMQ,Qpid 和 ZeroMQ。但是,打包 OpenStack 的大多数发行版都支持特定的消息队列服务。本指南实现了 RabbitMQ 消息队列服务,因为大多数发行版都支持该服务。如果您希望实施其他消息队列服务,请查阅与其相关的文档。

  1. 安装软件包
apt install rabbitmq-server
  1. 添加 openstack 用户
root@node1:~# rabbitmqctl add_user openstack OPENSTACK
Adding user "openstack" ...
  1. 允许用户配置,写入和读取访问权限openstack
root@node1:~# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...

Memcached

服务的身份服务身份验证机制使用 Memcached 来缓存令牌。memcached 服务通常在控制器节点上运行。对于生产部署,我们建议启用防火墙,身份验证和加密的组合以对其进行保护。

  1. 安装软件包
apt install memcached python3-memcache
  1. 编辑 /etc/memcached.conf 文件并将服务配置为使用控制器节点的管理 IP 地址。这是为了允许其他节点通过管理网络进行访问
vim /etc/memcached.conf

第 35 行 修改
- -l 127.0.0.1
+ -l 192.168.2.11
  1. 重启 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(分布式可靠键值存储)进行分布式键锁定,存储配置,跟踪服务活动性和其他情况。

  1. 安装etcd软件包
apt install etcd
  1. 编辑 /etc/default/etcd 文件,并设置 ETCD_INITIAL_CLUSTERETCD_INITIAL_ADVERTISE_PEER_URLSETCD_ADVERTISE_CLIENT_URLSETCD_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"
  1. 重新启动 etcd 服务,并开机自启
systemctl enable etcd
systemctl restart etcd