一、实验环境
centos7.2
控制节点: hostname; controller
ip:172.25.6.2
需要大内存,最小4G左右。
计算节点:hostname:server2
ip : 172.25.6.1
内存可小点,1G左右即可。
二、配置两个节点。
1.添加网卡
2.编写 /etc/sysconfig/network-scripts/ifcfg-eth1
3.启动eth1网卡。
ifup eth1
4.时间同步
yum install -y chrony
vim /etc/chrony.conf
5.启动chronyd服务。
systemctl enable chronyd
systemctl start chronyd
6.检测时间是否同步
chronyc sources -v
7.编写/etc/hosts 文件,配置解析。
8.配置yum源。
将安装openstack所需的安装包,下载在/root/mitaka 目录中
9.yum源更新
yum update
以下操作在控制节点。
一、安装 OpenStack 客户端
yum install -y python-openstackclient
二、安装配置数据库
大多数 OpenStack 服务使用 SQL 数据库来存储信息。 典型地,数据库运行在控制节点上。
1.安装数据库。
yum install mariadb mariadb-server python2-PyMySQL -y
2.创建并编辑 /etc/my.cnf.d/openstack.cnf,然后完成如下动作:
在 [mysqld] 部分,设置 bind-address
值为控制节点的管理网络IP地址以使得其它节点可以通过管理网络访问数据库,在[mysqld]
部分,设置如下键值来启用一起有用的选项和 UTF-8 字符集.
3.启动数据库服务,并将其配置为开机自启
systemctl enable mariadb
systemctl start mariadb
4.为了保证数据库服务的安全性,运行mysql_secure_installation
脚本。为数据库的root用户设置一个适当的密码。
5、登陆数据库,创建数据库。
1.在配置 OpenStack 身份认证服务前。
创建 keystone 数据库。CREATE DATABASE keystone;
对keystone
数据库授予恰当的权限
2.创建 glance 数据库:CREATE DATABASE glance;
对glance
数据库授予恰当的权限:
3.创建 nova_api 和 nova 数据库,对数据库进行正确的授权.
4.创配置OpenStack网络(neutron)服务之前,你必须为其创建一个数据库,建 neutron 数据库,允许 neutron 数据库合适的访问权限。
5.安装和配置块存储服务之前,你必须创建数据库,创建 cinder 数据库,允许 cinder数据库合适的访问权限
OpenStack 使用 message queue 协调操作和各服务的状态信息。消息队列服务一般运行在控制节点上。OpenStack支持好几种消息队列服务包括 RabbitMQ, Qpid, 和 ZeroMQ。不过,大多数发行版本的OpenStack包支持特定的消息队列服务
三、安装 RabbitMQ 消息队列服务
1.安装rabbit-server
yum install rabbitmq-server -y
2.启动消息队列服务并将其配置为随系统启动
3.添加 openstack 用户
4.给openstack
用户配置写和读权限
5.打开rabbitmq消息队列管理器
rabbitmq-plugins enable rabbitmq_management
6.过滤5672端口查看是否已打开。
7.在浏览器上访问172.25.6.2:15672打开rabbitmq图形管理器。
登陆:用户,密码:guest
查看openstack用户是否创建成功及其权限。
四、memcache安装与配置。
认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。在生产部署中,我们推荐联合启用防火墙、认证和加密保证它的安全。
1.安装软件包
yum install memcached python-memcached -y
2.启动Memcached服务,并且配置它随机启动
3.更改memcache配置文件 /etc/sysconfig/memcache
4.重新启动Memcached服务,查看memcache的服务端口。
五、认证服务的配置。
1.生成一个随机值在初始的配置中作为管理员的令牌
openssl rand -hex 10
使用带有mod_wsgi
的Apache HTTP服务器来服务认证服务请求,端口为5000和35357
2.安装openstack-keystone httpd mod_wsgi
yum install -y openstack-keystone httpd mod_wsgi
3.编辑文件 /etc/keystone/keystone.conf 并完成如下动作:
在``[DEFAULT]``部分,定义初始管理令牌的值:
在 [database] 部分,配置数据库访问:
在[token]
部分,配置Fernet UUID令牌的提供者。
4.初始化身份认证服务的数据库
su -s /bin/sh -c “keystone-manage db_sync” keystone
5.初始化Fernet keys:
keystone-manage fernet_setup –keystone-user keystone –keystone-group keystone
六、配置 Apache HTTP 服务器
1.编辑/etc/httpd/conf/httpd.conf
文件,配置ServerName
选项为控制节点:
2.用下面的内容创建文件 /etc/httpd/conf.d/wsgi-keystone.conf
Listen 5000
Listen 35357
<VirtualHost *:5000>
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
<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:35357>
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
<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>
3.启动 Apache HTTP 服务并配置其随系统启动:
systemctl enable httpd.service
systemctl start httpd.service
4.查看5000,35357端口是否开启。
七、创建服务实体和API端点
身份认证服务提供服务的目录和他们的位置。每个你添加到OpenStack环境中的服务在目录中需要一个 service 实体和一些 API endpoints 。
默认情况下,身份认证服务数据库不包含支持传统认证和目录服务的信息。你必须使用keystone-install 章节中,用命令openssl rand -hex 10
为身份认证服务创建的临时身份验证令牌用来初始化的服务实体和API端点。
你必须使用–os-token
参数将认证令牌的值传递给openstack 命令。类似的,你必须使用–os-url
参数将身份认证服务的 URL传递给 openstack 命令或者设置OS_URL环境变量.
1.配置认证令牌
export OS_TOKEN=ADMIN_TOKEN
将ADMIN_TOKEN
替换为你在 keystone-install
章节中生成的认证令牌.
export OS_TOKEN=038f89801f2403ff0980
2.配置端点URL:
export OS_URL=http://controller:35357/v3
3.配置认证 API 版本
export OS_IDENTITY_API_VERSION=3
在你的Openstack环境中,认证服务管理服务目录。服务使用这个目录来决定您的环境中可用的服务
4.创建服务实体和身份认证服务
5.身份认证服务管理了一个与您环境相关的 API 端点的目录。服务使用这个目录来决定如何与您环境中的其他服务进行通信。
OpenStack使用三个API端点变种代表每种服务:admin,internal和public。默认情况下,管理API端点允许修改用户和租户而公共和内部APIs不允许这些操作。在生产环境中,处于安全原因,变种为了服务不同类型的用户可能驻留在单独的网络上。对实例而言,公共API网络为了让顾客管理他们自己的云在互联网上是可见的。管理API网络在管理云基础设施的组织中操作也是有所限制的。内部API网络可能会被限制在包含OpenStack服务的主机上。此外,OpenStack支持可伸缩性的多区域。
创建认证服务的 API 端点: