OpenStack学习笔记-4.openstack依赖环境和软件安装配置

1.Network Time Protocol (NTP)

为了保证各个节点之间的service能够同步,因此openstack需要安装网络时间协议来进行同步,官方文档中推荐安装的时钟同步软件是Chrony。以Controller节点扮演服务端角色,其余各节点扮演客户端角色。

1.1 Controller节点配置

1.安装chrony

apt install chrony

2.修改chrony的配置

vim /etc/chrony/chrony.conf

添加如下内容:

#设置controller为NTP服务器
server controller iburst
#允许网络中其余节点连接controller的chrony服务
allow 10.0.0.0/24

3.保存后重启chrony服务

service chrony restart

1.2 其余节点配置

1.安装chrony

apt install chrony

2.修改chrony配置文件

vi /etc/chrony/chrony.conf

添加如下内容:

#设置controller节点为chrony服务端
server controller iburst

3.重启chrony

service chrony restart

1.3 检测NTP搭建是否成果

1.controller节点执行如下命令

root@ubuntu-ControllerNode:/home/ubuntu# chronyc sources
210 Number of sources = 12
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^- controller                    3   6   377    58  +7008ns[+7008ns] +/-  157ms
^* chilipepper.canonical.com     2   6   377    59    +34ms[  +32ms] +/-  158ms
^- golem.canonical.com           2   6   377    60  -6140us[-8324us] +/-  177ms
^? chilipepper.canonical.com     0   6     0     -     +0ns[   +0ns] +/-    0ns
^- alphyn.canonical.com          2   6   377    61    -18ms[  -20ms] +/-  207ms
^+ ntp7.flashdance.cx            2   6   357    61  -4302us[-6486us] +/-  138ms
^+ 85.199.214.101                1   6   377    62    -12ms[  -14ms] +/-  153ms
^+ ntp2.flashdance.cx            2   6   275    60    -36ms[  -38ms] +/-  151ms
^? ntp7.flashdance.cx            0   6     0     -     +0ns[   +0ns] +/-    0ns
^? 2001:1af8:4700:b210::34       0   6     0     -     +0ns[   +0ns] +/-    0ns
^? ntp2.flashdance.cx            0   6     0     -     +0ns[   +0ns] +/-    0ns
^? chl.la                        0   6     0     -     +0ns[   +0ns] +/-    0ns

Name/IP address列当中应该包含如上的多处域名或者ip地址,并且MS列当中为*作为当前时钟同步的server。

2.其余节点执行如下命令:

root@ubuntu-ComputeNode:/home/ubuntu# chronyc sources
210 Number of sources = 9
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* controller                    3   6    37    31  +2103us[-2612us] +/-  159ms
^- chilipepper.canonical.com     2   6    37    29    +36ms[  +36ms] +/-  159ms
^+ golem.canonical.com           2   6    37    30  -3831us[-3831us] +/-  179ms
^- pugot.canonical.com           2   6    37    28  +3856us[+3856us] +/-  182ms
^- alphyn.canonical.com          2   6    37    28  -6531us[-6531us] +/-  198ms
^- ntp.wdc1.us.leaseweb.net      2   6    33    21  +4755us[+4755us] +/-  425ms
^+ ntp1.ams1.nl.leaseweb.net     2   6    37    32    -32ms[  -36ms] +/-  311ms
^- ntp2.flashdance.cx            2   6    67    25    -28ms[  -28ms] +/-  147ms
^- ntp1.flashdance.cx            2   6    67    27   -112ms[ -112ms] +/-  251ms

结果中的Name/IP字段应该包含controller字段。

2.添加Openstack软件包的源

Openstack有许多发行版,需要根据自身需求选择所需要用的发行版。官方文档中说明了在不安装Ubuntu Cloud Archive(一个用来使低版本ubuntu上可以安装更新版本openstack的云软件包库)的情况下可以默认安装的openstack对应如下:

Ubuntu版本 Openstack发行版
Ubuntu 18.04 LTS OpenStack Queens
Ubuntu 16.04 LTS OpenStack Mitaka

本文选择在Ubuntu 18.04 LTS中安装OpenStack Rocky,添加云软件包库如下:

apt install software-properties-common
add-apt-repository cloud-archive:rocky
apt update && apt dist-upgrade
apt install python-openstackclient

3.数据库安装(controller node安装)

大多数Openstack的服务都需要数据库来存储信息,本文使用MariaDB or MySQL作为数据库,Openstack还支持PostgreSQL数据库。 1.安装mariadb-server和python-pymysql库

apt install mariadb-server python-pymysql

2.添加配置文件 ubuntu16.04之后默认的认证方式改成了unix_socket Authentication Plugin,不使用用户名和密码进行身份认证。添加如下配置文件使得其余节点的服务可以通过管理网络访问数据库。

vi /etc/mysql/mariadb.conf.d/99-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

3.重启mysql

service mysql restart

4.mysql安全加固

mysql_secure_installation

4.消息队列(Message queue)(controller node安装)

Openstack使用Message queue来协调各个service之间操作和状态。消息队列一般安装在controller节点上。Openstack默认支持的消息队列为: RabbitMQ, Qpid, and ZeroMQ。官方文档中选用了RabbitMQ作为消息队列的服务端。

1.安装rabbitmq-server

apt install rabbitmq-server

2.在rabbitmq中添加一个openstack用户

rabbitmqctl add_user openstack openstack
#rabbitmqctl add_user openstack 密码

3.给openstack用户添加配置、写、读的权限

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

5.安装Memcached(Controller node安装)

身份认证用Memcached来缓存token。

1.安装memcached和python-memcache

apt install memcached python-memcache

2.配置memcached允许访问来源

vi /etc/memcached.conf

修改如下内容

#-l 127.0.0.1 将127.0.0.1修改为10.0.0.11
-l 10.0.0.11

3.重启memcached

service memcached restart

6.安装Etcd(controller node安装)

openstack的服务可能会使用Etcd(一个分布式的可靠的键值对存储系统)用来进行键值存储,服务情况跟踪等功能。 1.安装etcd

apt install etcd

2.修改配置

vi /etc/default/etcd

3.添加开机自启并重启服务

systemctl enable etcd
systemctl start etcd