Openstack mitaka 安装手顺
2020 年 3 月 21 日
22:49
目录
前言: ...................................................................... 3
环境说明: .................................................................. 3
1、基础环境准备 ............................................................. 3
1.1、配置 host 文件 ...................................................... 3
1.2、配置本地 yum 源 ..................................................... 3
1.3、安装时间同步服务 ................................................... 4
1.4、安装 openstack 最新的源 ............................................. 5
1.5、部署 mariadb 数据库 ................................................. 5
1.6、为 Telemetry 服务部署 MongoDB ....................................... 6
1.7、部署消息队列 rabbitmq .............................................. 6
1.8、部署 memcached 缓存(为 keystone 服务缓存 tokens) ................... 7
2、认证服务 keystone 部署 ................................................... 7
2.1、安装和配置服务 ..................................................... 7
2.2、创建服务实体和 API 端点 ............................................. 9
2.3、创建域,租户,用户,角色 .......................................... 10
2.4、验证操作: ........................................................ 12
2.5、创建 OpenStack 客户端环境脚本 ..................................... 13
3、镜像服务:控制节点上安装和配置镜像服务 ................................... 14
3.1、创建一个数据库、服务凭证和 API 端点 ................................ 14
3.2、安全并配置组件 .................................................... 16
3.3、启动镜像服务、配置他们随机启动 .................................... 17
3.4、验证操作(在控制节点上执行这些命令) .............................. 17
4、计算服务 ................................................................ 18
4.1、安装并配置控制节点 ................................................ 18
4.2、安装和配置计算节点 ................................................ 21
4.3、验证计算服务操作 .................................................. 23
5、Networking 服务 ......................................................... 24
5.1、安装并配置控制节点 ................................................ 24
5.2、安装和配置计算节点 ................................................ 30
5.3、验证操作 .......................................................... 32
6、Dashboard 安装和配置 .................................................... 33
6.1、安装软件包: ...................................................... 33
6.2、编辑配置文件 ...................................................... 33
6.3、完成安装 .......................................................... 35
6.4、验证 .............................................................. 36
7、块存储服务 .............................................................. 36
7.1、安装并配置控制节点 ................................................ 36
7.2、安装并配置一个存储节点 ............................................ 40
7.3、验证操作 .......................................................... 43
8、文件共享系统服务 ........................................................ 43
8.1、安装并配置控制节点 ................................................ 43
By:冰蓝. wx_fcxyz
8.2、安装并配置一个分享节点 ............................................ 48
8.3、验证操作 .......................................................... 52
9、对象存储服务 ............................................................ 52
9.1、安装并配置控制器节点 .............................................. 52
9.2、安装和配置存储节点 ................................................ 56
9.3、创建,分发并初始化 rings .......................................... 63
9.4、完成安装 .......................................................... 69
10、编排服务 ............................................................... 72
10.1、先决条件 ......................................................... 72
10.2、安全并配置组件 ................................................... 76
11、Telemetry 服务 ......................................................... 78
11.1、安装和配置 ....................................................... 78
11.2、启用镜像服务计量 ................................................. 83
11.3、启用计算服务计量 ................................................. 84
11.4、启用块存储计量 ................................................... 85
11.5、启用对象计量 ..................................................... 86
11.6、警告服务 ......................................................... 87
11.7、验证操作 ......................................................... 91
12、数据库服务 ............................................................. 91
13、启动一个实例 ........................................................... 91
13.1、创建虚拟网络 ..................................................... 91
13.2、生成一个键值对 ................................................... 95
13.3、增加安全组规则 ................................................... 96
13.4、在 provider 网络上创建实例 ........................................ 97
By:冰蓝. wx_fcxyz
前言:
2020 年 3 月,宅在家快两个月了,希望疫情早点结束,早点复工!
本手顺记录了这一个多月来多次部署 openstack mitaka 最终确定的安装步
骤,作为记录存档。
所有步骤参考社区文档:
https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/
环境说明:
VM 15 开了两个虚拟机
操作系统:CentOS 7.3 (1611)
控制节点:内存 4G、硬盘 10G
计算节点:内存 2G、硬盘 10G --除控制服务外,其他服务均安装在这个节点
网络规划: VM 给两个节点分配双块网卡:
1、仅主机模式:111.111.111.0/24 --管理网络
2、自定义 VMnet2 模式:222.222.222.0/24 --provider 网络
yum 源地址:
http://vault.centos.org/centos/7.3.1611/cloud/x86_64/openstack-mitaka
http://vault.centos.org/centos/7.3.1611/extras/x86_64
http://vault.centos.org/centos/7.3.1611/virt/x86_64/kvm-common
http://vault.centos.org/centos/7.3.1611/storage/x86_64/ceph-hammer
http://vault.centos.org/centos/7.3.1611/os/x86_64/Packages/
有几个 python 包,是从 https://pkgs.org/ 站点下载。
1、基础环境准备
管理网络:111.111.111.0/24
provider 网络:222.222.222.0/24
配置范围:所有节点
1.1、配置 host 文件
111.111.111.201 controller
111.111.111.202 compute01
1.2、配置本地 yum 源
我已经将安装包都下载到了本地,win10 企业版直接部署 IIS 站点,然后配置 yum 源
By:冰蓝. wx_fcxyz
1.3、安装时间同步服务
安装范围:所有节点
1.3.1、安装 chrony 包
# yum install chrony -y
1.3.2、启动同步服务
# systemctl enable chronyd
# systemctl restart chronyd
# systemctl status chronyd
1.3.3、防火墙设置
因 NTP 使用 123/UDP 端口协议,所以允许 NTP 服务即可
# firewall-cmd --add-service=ntp --permanent
# firewall-cmd --reload
1.3.4、配置 Chrony
# vi /etc/chrony.conf
server 111.111.111.201 iburst
如上图所示,将默认的 server 全部注释掉,然后添加本机 IP,在其他客户机也是这样配置
为了允许其他节点可以连接到控制节点的 chrony 后台进程,在``/etc/chrony.conf`` 文件添加下
面的键:
By:冰蓝. wx_fcxyz
allow 111.111.111.0/24
启动 NTP 服务并将其配置为随系统启动:
# systemctl enable chronyd.service
# systemctl start chronyd.service
1.4、安装 openstack 最新的源
安装范围:所有节点
yum install centos-release-openstack-mitaka
yum install https://rdoproject.org/repos/rdo-release.rpm ---本次操作不能执行这一步,否
则新增的 repo 文件指向的是 T 版本的 openstack
yum upgrade (更新源) --本步骤需要先移除预装的 mariadb 的包,否则报错 :yum remove
mariadb-libs
yum install openstack-selinux(可选则安装这个插件,我直接关闭了 selinux,因为不熟,对后
续不会有影响)
说明:如果使用自定义源,那么上面 centos 和 redhat 的操作可以省略
安装 opentack 必须的插件:
yum install python-openstackclient -y
1.5、部署 mariadb 数据库
控制节点:
自带的 mariadb 包,全部移除
# yum remove mariadb* -y
yum 源安装方式:
yum install mariadb mariadb-server python2-PyMySQL -y
编辑:
vi /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 111.111.111.201
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
启服务:
# systemctl enable mariadb
# systemctl start mariadb
# systemctl status mariadb
# mysql_secure_installation
先是设置密码,会提示先输入密码
Enter current password for root (enter for none): <–初次运行直接回车
设置密码 : P@ssw0rd
Set root password? [Y/n] <– 是否设置 root 用户密码,输入 y 并回车或直接回车
By:冰蓝. wx_fcxyz
New password: <– 设置 root 用户的密码
Re-enter new password: <– 再输入一次你设置的密码
其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,Y,回车
Disallow root login remotely? [Y/n] <–是否禁止 root 远程登录,N,回车,
Remove test database and access to it? [Y/n] <– 是否删除 test 数据库,n,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
初始化 MariaDB 完成
防火墙开放 3306 端口
# firewall-cmd --permanent --add-port=3306/tcp
# firewall-cmd --reload
确认端口开放成功
# firewall-cmd --list-all
1.6、为 Telemetry 服务部署 MongoDB
控制节点:
# yum install mongodb-server mongodb -y
编辑:vi /etc/mongod.conf
找到下面两行配置并修改:
bind_ip = 111.111.111.201
smallfiles = true
启动服务:
# systemctl enable mongod
# systemctl start mongod
# systemctl status mongod
防火墙开放 27017 端口
# firewall-cmd --permanent --add-port=27017/tcp
# firewall-cmd --reload
确认端口开放成功
# firewall-cmd --list-all
1.7、部署消息队列 rabbitmq
控制节点:
# yum install rabbitmq-server -y
启动服务:
# systemctl enable rabbitmq-server
# systemctl start rabbitmq-server
# systemctl status rabbitmq-server
新建 rabbitmq 用户密码:
# rabbitmqctl add_user openstack P@ssw0rd
# rabbitmqctl delete_user guest
By:冰蓝. wx_fcxyz
为新建的用户 openstack 设定权限:
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
将 openstack 用户添加为管理员
rabbitmqctl set_user_tags openstack administrator
启动管理 WEB
rabbitmq-plugins enable rabbitmq_management
防火墙开放 15672 端口
# firewall-cmd --permanent --add-port=15672/tcp
# firewall-cmd --reload
确认端口开放成功
# firewall-cmd --list-all
验证方式:http://111.111.111.201:15672/ 用户:openstack 密码:P@ssw0rd
1.8、部署 memcached 缓存(为 keystone 服务缓存 tokens)
控制节点:
# yum install memcached python-memcached -y
cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="10240"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1,::1"
防火墙开放 11211 端口
# firewall-cmd --permanent --add-port=11211/tcp
# firewall-cmd --reload
确认端口开放成功
# firewall-cmd --list-all
启动服务:
# systemctl enable memcached
# systemctl start memcached
2、认证服务 keystone 部署
控制节点:
2.1、安装和配置服务
2.1.1、建库建用户
mysql -u root -p
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'P@ssw0rd';
By:冰蓝. wx_fcxyz
2.1.2、安装相关包
yum install openstack-keystone httpd mod_wsgi -y
2.1.3、生成一个随机值在初始的配置中作为管理员的令牌。
[root@controller ~]# openssl rand -hex 10
2b7275cdec59141d9124
2.1.4、编辑 vi /etc/keystone/keystone.conf
[DEFAULT]
admin_token = 2b7275cdec59141d9124
[database]
connection = mysql+pymysql://keystone:P@ssw0rd@controller/keystone
[token]
provider = fernet
2.1.5、初始化身份认证服务的数据库:
su -s /bin/sh -c "keystone-manage db_sync" keystone
2.1.6、初始化 fernet keys
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
2.1.7、配置 apache 服务 ---这里的名称就是主机名
vi /etc/httpd/conf/httpd.conf
ServerName controller
vi /etc/httpd/conf.d/wsgi-keystone.conf
新增配置
Listen 5000
Listen 35357
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone
group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
Require all granted
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone
group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
By:冰蓝. wx_fcxyz