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: