class="area">
安装和配置数据库服务器1、安装包# yum install mariadb mariadb-server MySQL-python2、编辑/etc/my.cnf 文件A.在[mysqld]部分,设置 bind-address 的控制节点的管理网 IP 地址,以便通过管理网络访问其他节点:[mysqld]bind-address = 10.0.0.11 B.在[mysqld]部分中,设置以下值启用有用的选项和 UTF-8 字符集:[mysqld]default-storage-engine = innodbinnodb_file_per_tablecollation-server = utf8_general_ciinit-connect = 'SET NAMES utf8'character-set-server = utf8完成安装
1、启动数据库服务,并将其配置为随系统自启动# systemctl enable mariadb.service# systemctl start mariadb.service2、固定数据库服务,包括选择合适的 root 帐户密码# mysql_secure_installation OpenStack 软件包请注意 禁用或移除任何自动更新服务,因为他们可能影响你的 OpenStack 环境。 在所有节点上执行这些过程。1、安装 yum-plugin-priorities 包# yum install yum-plugin-priorities2、安装 EPEL-release 组件#yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm OpenStack 存储库1、安装 RDO-RELEASE-JUNO 包# yum install http://rdo.fedorapeople.org/openstack-juno/rdo-release-juno.rpm完成安装
1、 升级你系统上的软件包# yum upgrade请注意 如果在升级过程包括一个新的内核,重新启动您的系统将其激活。
2、RHEL 和 CentOS 默认启用了 SELinux。安装 SELinux 包自动管理 OpenStack 服务 的安全策略# yum install openstack-selinux 控制节点安装Messaging 服务安装 RabbitMQ 消息代理服务# yum install rabbitmq-server 配置消息代理服务1、 启动消息代理服务,并将其配置为自启动# systemctl enable rabbitmq-server.service# systemctl start rabbitmq-server.service 2、运行下面的命令,用合适的密码替换 RABBIT_PASS# rabbitmqctl change_password guest RABBIT_PASSChanging password for user "guest" ......done. 添加 Identity 服务 安装和配置本节介绍如何在控制器节点,安装和配置 OpenStack 的身份服务。 配置 OpenStack 的身份服务,你必须创建一个数据库和一个管理令牌(to ke n)。1、创建数据库,请完成以下步骤A.登陆数据库:$ mysql -u root –p
B.创建 keystone 数据库:CREATE DATABASE keystone;
C.授予适当的访问 Keystone 数据库的权限:GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY ' KEYSTONE_DBPASS';GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY ' KEYSTONE_DBPASS';用合适的密码替换 KEYSTONE_DBPASS。flush privileges; //刷新MySQL的系统权限D.退出数据库
2、生成一个随机值作为初始配置过程中的管理令牌# openssl rand -hex 10 //请记住生成的号码,后面配置过程中会用到
安装和配置组件1、 运行以下命令安装软件包# yum install openstack-keystone python-keystoneclient2、编辑/etc/keystone/keystone.conf 文件 A.在[DEFAULT]部分,定义初始管理的值: [DEFAULT]admin_token = ADMIN_TOKEN使用您先前生成的随机值更换 ADMIN_TOKEN (即之前让你记下的那组号码) B.在[database]部分,配置数据库访问: [database]connection = mysql://keystone: KEYSTONE_DBPASS@controller/keystone用你选择的数据库密码替换 keystone_dbpass。 (在创建keystone数据库时,你设置的密码) C.(可选)在[DEFAULT]部分,启用详细日志记录协助解决问题:[DEFAULT]verbose = True
3、创建通用的证书和密钥,限制访问相关文件# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone# chown -R keystone:keystone /var/log/keystone# chown -R keystone:keystone /etc/keystone/ssl# chmod -R o-rwx /etc/keystone/ssl 4、填充 Keystone 身份服务数据库# su -s /bin/sh -c "keystone-manage db_sync" keystone完成安装
1、 启动身份服务和配置自启动# systemctl enable openstack-keystone.service# systemctl start openstack-keystone.service 2、默认情况下,身份服务存储在数据库中,无限过期的令牌积累大大增加了数据库的大小,可能会降低服务的性能,特别是在资源有限的环境中。我们建议您 使用 cron 配置一个周期性任务,以清除过期的令牌:# (crontab -l -u keystone 2>&1 | grep -q token_flush) || echo '@hourly /usr/bin/keystone-manage token_flush >/var/log/keystone/keystone-tokenflush.log 2>&1' \>> /var/spool/cron/keystone检查是否已经添加成功 #crontab -l -u keystone
创建租户、用户和角色 1、配置管理令牌# export OS_SERVICE_TOKEN=ADMIN_TOKEN 更换 ADMIN_TOKEN 与您在“安装和配置”一节中所产生的管理令牌(即让你记录下来的那组号码)。例如:# export OS_SERVICE_TOKEN=294a4c8a8a475f9b9836 2、 配置端点# export OS_SERVICE_ENDPOINT=http://controller:35357/v2.0 创建租户、用户和角色1、创建一个 admin 租户、用户、角色A.创建 admin 租户:# keystone tenant-create --name admin --description "Admin Tenant"+-------------+----------------------------------+| Property | Value |+-------------+----------------------------------+| description | Admin Tenant || enabled | True || id | 6f4c1e4cbfef4d5a8a1345882fbca110 || name | admin | B.创建 admin 用户:# keystone user-create --name admin --pass ADMIN_PASS --email EMAIL_ADDRESS+----------+----------------------------------+| Property | Value |+----------+----------------------------------+| email |
[email protected]|| enabled | True || id | ea8c352d253443118041c9c8b8416040 || name | admin || username | admin |用合适的密码和电子邮件替换 ADMIN_PASS 和 EMAIL_ADDRESS。 C.创建 admin 角色:$ keystone role-create --name admin+----------+----------------------------------+| Property | Value |+----------+----------------------------------+| id | bff3a6083b714fa29c9344bf8930d199 || name | admin | D.添加 admin 租户、admin 用户和 admin 角色:$ keystone user-role-add --tenant admin --user admin --role admin E.在默认情况下,dashboard 限制用户访问_member_作用域。 创建_member_作用域:$ keystone role-create --name _member_+----------+----------------------------------+| Property | Value |+----------+----------------------------------+| id | 0f198e94ffce416cbcbe344e1843eac8 || name | _member_ |+----------+----------------------------------+ F.添加 admin 租户和用户到_member_角色:$ keystone user-role-add --tenant admin --user admin --role _member_ 2、创建一个典型环境中的 demo 租户和用户A.创建 demo 租户:$ keystone tenant-create --name demo --description "Demo Tenant"+-------------+----------------------------------+| Property | Value |+-------------+----------------------------------+| description | Demo Tenant || enabled | True || id | 4aa51bb942be4dd0ac0555d7591f80a6 || name | demo | B.创建 demo 用户:$ keystone user-create --name demo --pass DEMO_PASS -- email EMAIL_ADDRESS+----------+----------------------------------+| Property | Value |+----------+----------------------------------+| email |
[email protected] || enabled | True || id | 7004dfa0dda84d63aef81cf7f100af01 || name | demo || username | demo |+----------+----------------------------------+使用一个合适的密码和电子邮件替换 demo_pass 和 email_address。 C.添加 demo 租户和用户到_member_角色:$ keystone user-role-add --tenant demo --user demo --role _member_ 3、OpenStack 服务还需要一个租户、用户和角色与其他服务进行交互。•创建 service 租户:$ keystone tenant-create --name service --description "Service Tenant"+-------------+----------------------------------+| Property | Value |+-------------+----------------------------------+| description | Service Tenant || enabled | True || id | 6b69202e1bf846a4ae50d65bc4789122 || name | service | 创建 service entity 和 API 端点1、身份服务管理你的 OpenStack 环境目录服务。服务使用此目录在您的环境中查找其他服务创建用于 Identity service 的服务:$ keystone service-create --name keystone --type identity -description "OpenStack Identity"+-------------+----------------------------------+| Property | Value |+-------------+----------------------------------+| description | OpenStack Identity || enabled | True || id | 15c11a23667e427e91bc31335b45f4bd || name | keystone || type | identity |+-------------+----------------------------------+ 2、创建用于 Identity service 的 API 端点$ keystone endpoint-create --service-id $(keystone service-list | awk '/ identity / {print $2}') --publicurl http://controller:5000/v2.0 --internalurl http://controller:5000/v2.0 --adminurl http://controller: