注:如果其他节点上时间服务器未参考Controller服务器,尝试重启(systemctl restart chronyd.service)后查看。
注意要设置时区一致: 查看时区 # date +%z 如果不一致,可修改时区为东八区
#cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
OpenStack安装包
所有节点上需要执行以下操作,完成OpenStack安装包的下载与更新。 OpenStack RPM软件仓库
#yum install centos-release-openstack-mitaka
更新包
# yum upgrade
安装OpenStack python客户端 # yum install python-openstackclient
安装openstack-selinux包用于OpenStack服务的自动管理 #yum install openstack-selinux
其他安装配置
以下将安装配置SQL数据库、NoSQL数据库、消息队列、缓存等组件,通常这些组件安装在Controller管理节点上,为OpenStack认证、镜像、计算等服务的基本组件。
A. SQL数据库安装配置 安装mariadb mysql
# yum install mariadb mariadb-server python2-PyMySQL
创建并修改mysql配置文件 # vim /etc/my.cnf.d/openstack.cnf 绑定 Controller节点的IP地址 [mysqld]
bind-address = 192.168.100.81
6
指定其他选项 [mysqld] ...
default-storage-engine = innodb innodb_file_per_table
collation-server = utf8_general_ci character-set-server = utf8
启动mariadb服务
# systemctl enable mariadb.service #systemctl start mariadb.service
MariaDB的安全性配置 # mysql_secure_installation
Set root password? [Y/n]Y
设置数据库密码为123456
B. NoSQL数据库安装配置
Telemetry服务需要用到NoSQL数据库保存信息,Controller 节点上需要安装MongoDB
# yum install mongodb-server mongodb
修改配置文件
# vim /etc/mongod.conf
指定Controller 节点IP bind_ip = 192.168.100.81 日志小文件选项 smallfiles = true
MongoDB服务启动
# systemctl enable mongod.service # systemctl start mongod.service
C. MQ安装配置
安装RabbitMQ消息队列服务 #yum install rabbitmq-server
服务自启动
# systemctl enable rabbitmq-server.service #systemctl start rabbitmq-server.service
创建消息队列用户openstack
#rabbitmqctl add_user openstack RABBIT_PASS
7
设置openstack用户的配置、读写权限
# rabbitmqctl set_permissions openstack \
Memcached安装配置
Identity身份认证服务需要用到缓存 安装
# yum install memcached python-memcached 服务启动
# systemctl enable memcached.service # systemctl start memcached.service
认证服务
Identity集中管理认证、授权、目录服务,其他服务与Identity服务协同,将利用其作为通用统一的API。
Identity包含Server、Drivers、Modules组件。Server是一个集中化服务器,通过RESTful借口提供认证和授权服务。Drivers又称后端服务,集成到Server中,用于获取OpenStack的身份信息。Modules运行于OpenStack组件的地址空间,这些模块拦截服务请求、提取用户证书、并发送给认证服务器来进行认证,利用Python Web Server Gateway接口将中间件模块和OpenStack集成。
基本配置
A. 数据库配置
创建数据库实例和数据库用户 $ mysql -u root –p
在数据库客户端中执行以下操作: 执行创建命令
CREATE DATABASE keystone; 执行数据库用户授权
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \\ IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \\ IDENTIFIED BY 'KEYSTONE_DBPASS';
openssl产生随机数作为初始化配置Token $openssl rand -hex 10
8
db8a90c712a682517585
B. 安装和配置组件
认证服务需要开启Apache服务器的5000和35357的端口 安装软件包
#yum install openstack-keystone httpd mod_wsgi
编辑配置文件
# vim /etc/keystone/keystone.conf 编辑以下选项 [DEFAULT] ...
admin_token =db8a90c712a682517585
注明:此处token为openssl生成的随机数
[database] ...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@Controller/keystone
[token] ...
provider = fernet
将认证服务填入数据库
# su -s /bin/sh -c \
初始化Fernet键
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
配置Apache HTTP服务器 修改服务器主机名
# vim /etc/httpd/conf/httpd.conf ServerName Controller
创建配置文件
# vim /etc/httpd/conf.d/wsgi-keystone.conf
Listen 5000 Listen 35357
9
WSGIDaemonProcess keystone-public processes=5 threads=1 group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On ErrorLogFormat \
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 group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On ErrorLogFormat \
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
Require all granted
启动服务
# systemctl enable httpd.service #systemctl start httpd.service
浏览器可访问localhost:5000 和localhost:35357
user=keystone
user=keystone
创建服务体和API端点
设置临时环境变量
$ export OS_TOKEN=db8a90c712a682517585
注明:其中OS_TOKEN为之前openssl生成的随机数。
10