Openstack Mitaka安裝手順(2)認證服務 keystone部署

二、認證服務 keystone部署
python

控制節點:mysql

2.一、安裝和配置服務sql

2.1.一、建庫建用戶數據庫

mysql -u root -papache

CREATE DATABASE keystone;api

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'P@ssw0rd';安全

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'P@ssw0rd';dom

flush privileges;ide



2.1.二、安裝相關包網站

yum install openstack-keystone httpd mod_wsgi -y

image.png

以下圖所示安裝缺失的rpm包,不知道是否是離線源沒下載好,附帶網站連接:https://pkgs.org/

在網站上直接搜索缺失的rpm包就能夠了,確實2個包,可是其中一個包有依賴包,因此最終下載安裝3個包:

python-jinja2-2.7.2-4.el7.noarch.rpm

python-markupsafe-0.11-10.el7.x86_64.rpm

python-zope-interface-4.0.5-4.el7.x86_64.rpm

image.png

而後安裝成功



2.1.三、生成一個隨機值在初始的配置中做爲管理員的令牌: 

[root@controller ~]# openssl rand -hex 10

38cffecbd035b2589040

image.png


2.1.四、編輯/etc/keystone/keystone.conf

[DEFAULT]

admin_token = 38cffecbd035b2589040

#這裏的做用主要是先手動指定admin_token,爲了部署keystone,由於keystone沒部署,認證環節還不能工做,等keystone部署好,會把手動指定admin_token認證方式去掉


[database]

connection = mysql+pymysql://keystone:P@ssw0rd@controller/keystone


[token]

provider = fernet


2.1.五、同步修改到數據庫  ---多是虛擬機比較卡,這一步等了兩分鐘

su -s /bin/sh -c "keystone-manage db_sync" keystone


2.1.六、初始化fernet keys

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone


2.1.七、配置apache服務   ---這裏的名稱就是主機名

vi /etc/httpd/conf/httpd.conf

ServerName controller


vi /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>

 ---不知道是否是粘貼複製的緣由,從這裏複製的失敗了,從官方文檔複製的內容就成功啓動了httpd

2.1.八、啓動服務:

# systemctl enable httpd

# systemctl start httpd


2.二、建立服務實體和API端點

2.2.一、實現配置管理員環境變量,用於獲取後面建立的權限

export OS_TOKEN=38cffecbd035b2589040

#要與前面的/etc/keystone/keystone.conf中的admin_token相同

export OS_URL=http://controller:35357/v3

export OS_IDENTITY_API_VERSION=3


2.2.二、基於上一步給的權限,建立認證服務實體(目錄服務)

openstack service create --name keystone --description "OpenStack Identity" identity

#如遇到報500錯誤,ArgsAlreadyParsedError: arguments already parsed: cannot register CLI option,可把--description "OpenStack Identity"去掉

image.png


2.2.三、基於上一步創建的服務實體,建立訪問該實體的三個api端點

openstack endpoint create --region RegionOne identity public http://controller:5000/v3

image.png


openstack endpoint create --region RegionOne identity internal http://controller:5000/v3

image.png


openstack endpoint create --region RegionOne identity admin http://controller:35357/v3

image.png


2.三、建立域,租戶,用戶,角色

2.3.一、建立域``default``:

openstack domain create --description "Default Domain" default

image.png


2.3.二、爲進行管理操做,建立管理的項目、用戶和角色

建立 admin 項目:

openstack project create --domain default --description "Admin Project" admin

image.png


建立 admin 用戶: --默認密碼:P@sswrd

openstack user create --domain default --password-prompt admin

image.png


建立 admin 角色:

openstack role create admin

image.png


添加``admin`` 角色到 admin 項目和用戶上:

openstack role add --project admin --user admin admin



2.3.三、本指南使用一個你添加到你的環境中每一個服務包含獨有用戶的service 項目。建立``service``項目:

爲後續的服務建立統一租戶service

解釋:後面每搭建一個新的服務都須要在keystone中執行四種操做:1.建租戶 2.建用戶 3.建角色 4.作關聯

後面全部的服務公用一個租戶service,都是管理員角色admin,因此實際上後續的服務安裝關於keysotne的操做只剩2,4

openstack project create --domain default --description "Service Project" service

image.png


2.3.四、常規(非管理)任務應該使用無特權的項目和用戶,建立 demo 項目和用戶

普通用戶:demo

openstack project create --domain default --description "Demo Project" demo

image.png


openstack user create --domain default --password-prompt demo

image.png

默認密碼:P@ssw0rd


openstack role create user

image.png


openstack role add --project demo --user demo user



2.四、驗證操做:

2.4.一、由於安全性的緣由,關閉臨時認證令牌機制:

編輯 /etc/keystone/keystone-paste.ini 文件,從``[pipeline:public_api]``,[pipeline:admin_api]``和``[pipeline:api_v3]``部分刪除``admin_token_auth 。

下圖三個紅色方框內的admin_token_auth所有刪除

image.png


下圖爲刪除後的配置

image.png


2.4.二、重置``OS_TOKEN``和``OS_URL`` 環境變量:

# unset OS_TOKEN OS_URL



2.4.三、做爲 admin 用戶,請求認證令牌:

# openstack --os-auth-url http://controller:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name admin --os-username admin token issue

image.png

註解:這個命令使用``admin``用戶的密碼。我這裏全程都是:P@ssw0rd


2.4.四、做爲``demo`` 用戶,請求認證令牌:

# openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name demo --os-username demo token issue

密碼全程都是:P@ssw0rd

image.png

註解:這個命令使用``demo`` 用戶的密碼和API端口5000,這樣只會容許對身份認證服務API的常規(非管理)訪問。


2.五、建立 OpenStack 客戶端環境腳本

2.5.一、編輯文件 admin-openrc 並添加以下內容:

export OS_PROJECT_DOMAIN_NAME=default

export OS_USER_DOMAIN_NAME=default

export OS_PROJECT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=P@ssw0rd

export OS_AUTH_URL=http://controller:35357/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2


2.5.二、編輯文件 demo-openrc 並添加以下內容:

export OS_PROJECT_DOMAIN_NAME=default

export OS_USER_DOMAIN_NAME=default

export OS_PROJECT_NAME=demo

export OS_USERNAME=demo

export OS_PASSWORD=P@ssw0rd

export OS_AUTH_URL=http://controller:5000/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2


2.5.三、使用腳本

使用特定租戶和用戶運行客戶端,你能夠在運行以前簡單地加載相關客戶端腳本。例如:

加載``admin-openrc``文件來身份認證服務的環境變量位置和``admin``項目和用戶證書:

# . admin-openrc

請求認證令牌:

# openstack token issue

image.png

相關文章
相關標籤/搜索