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