OpenStack安裝(一)-KeyStone模塊

一、安裝和配置KeyStone

1. 為KeyStone配置數據庫

  1. 使用數據庫客戶端,以root用戶連接到數據庫中:mysql -u root -p
  2. 創建KeyStone數據庫:CREATE DATABASE keystone;
  3. 為KeyStone用戶授權:
    GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
    GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';

2. 安裝KeyStone

  1. KeyStone服務的監聽端口是5000和35357,配置Apache HTTP服務監聽這兩個端口,為了避免端口沖突,在Ubuntu上禁止KeyStone開機自啟動:echo "manual" > /etc/init/keystone.override
  2. 安裝與Keystone相關的軟件包:
    apt-get install keystone python-openstackclient apache2 libapache2-mod-wsgi memcached python-memcache

3. 修改KeyStone的配置文件keystone.conf

修改/etc/keystone/keystone.conf
小技巧:將原文件備份,使用命令cat backup_file | grep -v '^#' > new_file可以生成新文件,并去掉注釋,即cat /etc/keystone/keystone.conf.bak | grep -v '^#' > /etc/keystone/keystone.conf

  1. 隨機生成一個16進制的token:openssl rand -hex 10
  2. 修改[default]部分,配置初始的令牌管理:admin_token = ADMIN_TOKEN
    ADMIN_TOKEN是剛才所生成的隨機值
  3. 修改[database]部分,配置數據庫的連接:
    connection = mysql://keystone:KEYSTONE_DBPASS@controller/keystone
  4. 修改[memcache],配置Memcache 服務:
    servers = localhost:11211
    11211是memecahced服務器的默認端口號
  5. 修改[token]部分,配置UUID令牌的提供者和memcached的持久化驅動:
    provider = keystone.token.providers.uuid.Provider
    driver = keystone.token.persistence.backends.memcache.Token
  6. 修改[revoke] 部分, 配置SQL的撤回驅動:
    driver = keystone.contrib.revoke.backends.sql.Revoke
    可選:為了方便做問題診斷,在[DEFAULT]部分,配置詳細的日志輸出:
    verbose = True
  7. 為keystone數據庫填充數據:su -s /bin/sh -c "keystone-manage db_sync" keystone

4. 配置 Apache HTTP server

  1. 編輯/etc/apache2/apache2.conf,配置ServerName選項為控制節點hostname:ServerName controller
  2. 創建/etc/apache2/sites-available/wsgi-keystone.conf文件,添加如下內容:
    Listen 5000
    Listen 35357
    
    <VirtualHost *:5000>
        WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone display-name=%{GROUP}
        WSGIProcessGroup keystone-public
        WSGIScriptAlias / /var/www/cgi-bin/keystone/main
        WSGIApplicationGroup %{GLOBAL}
        WSGIPassAuthorization On
        <IfVersion >= 2.4>
        ErrorLogFormat "%{cu}t %M"
        </IfVersion>
        LogLevel info
        ErrorLog /var/log/apache2/keystone-error.log
        CustomLog /var/log/apache2/keystone-access.log combined
    </VirtualHost>
    
    <VirtualHost *:35357>
        WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone display-name=%{GROUP}
        WSGIProcessGroup keystone-admin
        WSGIScriptAlias / /var/www/cgi-bin/keystone/admin
        WSGIApplicationGroup %{GLOBAL}
        WSGIPassAuthorization On
        <IfVersion >= 2.4>
        ErrorLogFormat "%{cu}t %M"
        </IfVersion>
        LogLevel info
        ErrorLog /var/log/apache2/keystone-error.log
        CustomLog /var/log/apache2/keystone-access.log combined
    </VirtualHost>
    
  3. 啟用身份認證服務的虛擬主機:
    ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled
  4. 為WSGI組件創建目錄結構:mkdir -p /var/www/cgi-bin/keystone
  5. 拷貝WSGI組件到當前創建好的目錄/var/www/cgi-bin/keystone下:
    curl http://git.openstack.org/cgit/openstack/keystone/plain/httpd/keystone.py?h=stable/kilo | tee /var/www/cgi-bin/keystone/main /var/www/cgi-bin/keystone/admin
  6. 設置目錄和文件的權限:
    chown -R keystone:keystone /var/www/cgi-bin/keystone
    chmod 755 /var/www/cgi-bin/keystone/*
  7. 重啟apache http server:service apache2 restart
  8. 刪除ubuntu默認創建的SQLite數據庫:rm -f /var/lib/keystone/keystone.sqlite

二、配置服務實體與API端點

1. 配置認證服務的服務實體

  1. 設置操作系統臨時環境變量:校驗令牌:export OS_TOKEN=ADMIN_TOKEN
  2. 設置操作系統臨時環境變量:端點URL:export OS_URL=http://controller:35357/v2.0
  3. 為認證服務創建服務實體:
    openstack service create --name keystone --description "OpenStack Identity" identity
  4. 配置認證服務的API端點:
    openstack endpoint create --publicurl http://controller:5000/v2.0 --internalurl http://controller:5000/v2.0 --adminurl http://controller:35357/v2.0 --region RegionOne identity

三、創建項目(租戶)、用戶和角色

  1. 創建admin租戶:openstack project create --description "Admin Project" admin
  2. 創建admin用戶:openstack user create --password-prompt admin
  3. 創建admin角色:openstack role create admin
  4. 添加admin角色到admin租戶和用戶:openstack role add --project admin --user admin admin

四、創建服務項目

  1. 位其他的OpenStack服務創建服務項目:openstack project create --description "Service Project" service

五、創建普通項目和用戶

  1. 創建demo項目:openstack project create --description "Demo Project" demo
  2. 創建demo用戶:openstack user create --password-prompt demo
  3. 創建demo角色:openstack role create user
  4. 添加user角色到demo租戶和用戶:openstack role add --project demo --user demo user

六、校驗安裝

1. 校驗安裝前的準備

  1. 基于安全的原因,先臨時禁止校驗令牌的機制。編輯/etc/keystone/keystone-paste.ini:
    移除admin_token_auth從[pipeline:public_api], [pipeline:admin_api], [pipeline:api_v3]部分
  2. 取消設置的操作系統環境變量:unset OS_TOKEN OS_URL

2. 使用admin用戶校驗安裝

  1. 以admin用戶,從2.0版本的認證API申請一個校驗令牌:
    openstack --os-auth-url http://controller:35357 --os-project-name admin --os-username admin --os-auth-type password token issue
    3.0版本的認證API支持域名,以admin用戶申請一個校驗令牌:
    openstack --os-auth-url http://controller:35357 --os-project-domain-id default --os-user-domain-id default --os-project-name admin --os-username admin --os-auth-type password token issue
  2. 以admin用戶,校驗admin用戶是否有權限云查看認證服務中所包含的項目:
    openstack --os-auth-url http://controller:35357 --os-project-name admin --os-username admin --os-auth-type password project list
  3. 以admin用戶,查看認證服務中的用戶是否創建成功:
    openstack --os-auth-url http://controller:35357 --os-project-name admin --os-username admin --os-auth-type password user list
  4. 以admin用戶,查看認證服務中的角色是否創建成功:
    openstack --os-auth-url http://controller:35357 --os-project-name admin --os-username admin --os-auth-type password role list

3. 使用demo用戶校驗安裝

  1. 以demo用戶,從v3版本的認證API中申請校驗令牌:
    openstack --os-auth-url http://controller:5000 --os-project-domain-id default --os-user-domain-id default --os-project-name demo --os-username demo --os-auth-type password token issue
  2. 以demo用戶,嘗試能否執行只有管理用戶才能執行的查看用戶的操作:
    openstack --os-auth-url http://controller:5000 --os-project-domain-id default --os-user-domain-id default --os-project-name demo --os-username demo --os-auth-type password user list

七、創建OpenStack客戶端腳本

1. 創建admin用戶的腳本

創建和編輯文件admin-openrc.sh,加入如下內容:

export OS_PROJECT_DOMAIN_ID=default
export OS_USER_DOMAIN_ID=default
export OS_PROJECT_NAME=admin
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:35357/v3

2. 創建demo用戶的腳本

創建和編輯文件demo-openrc.sh,加入如下內容:

export OS_PROJECT_DOMAIN_ID=default
export OS_USER_DOMAIN_ID=default
export OS_PROJECT_NAME=demo
export OS_TENANT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v3

3. 測試腳本

  1. 加載腳本:source admin-openrc.sh
  2. 測試腳本:openstack token issue
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,119評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,382評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,038評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,853評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,616評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,112評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,192評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,355評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,869評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,727評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,928評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,467評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,165評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,570評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,813評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,585評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,892評論 2 372

推薦閱讀更多精彩內容