Openstack學習筆記(三):keystone的安裝與配置
OpenStack簡介
OpenStack既是一個社群,也是一個專案和一個開源軟體,它提供了一個部署雲的操作平臺或工具集(IaaS)。其宗旨在於:幫助組織執行為虛擬計算或儲存服務的雲,為公有云、私有云提供可擴充套件的、靈活的雲端計算。
OpenStack主要包含以下幾個元件,各個元件的功能如下,其中Nova,Keyston,Neutron,Glance,DashBoard為必須裝的元件,其餘可以選擇性安裝,圖為OpenStack生態系統。
- Nova 計算管理服務,支撐虛擬機器執行
- Keystone 提供所有元件的認證
- Neutron 提供網路支援
- Glance 提供給映象服務
- DashBoard 提供WEB管理介面服務
- Swift 提供物件儲存
- Cinder 提供擴充套件硬碟給nova
- Ceilometer 監控cinder,neutron,nova,glance執行並計量
- Heat 支援雲平臺資源自動部署,叢集服務
OpenStack安裝配置
由於OpenStack的各個模組都需要通過KeyStone來進行認證,所以在配置安裝OpenStack過程中需要主要,安裝其他模組之前必須先進行安裝KeyStone模組,本次安裝步驟如下:
- 配置認證服務KeyStone
- 配置映象服務Glance
- 配置計算服務Nova
- 配置網路服務Neutron
- 配置Web管理服務DashBoard
配置認證服務KeyStone
主要分為以下幾步
- 安裝配置認證服務
- 建立使用者、租戶和角色
安裝配置認證服務
KeyStone只需要在controller上面進行配置,執行yum指令即可安裝,安裝成功後需要進行資料庫相關配置,還需要對相關許可權進行配置
- 安裝KeyStone
yum install -y openstack-keystone python-opnstackclient
- 修改配置檔案設定資料庫
openstack-config --set /etc/keystone/keystone.conf database connection mysql://keystone:000000@controller/keystone
- 配置資料庫使用者
[root@controller ~]# mysql -u root -p000000
MariaDB [(none)]> create database keystone;
MariaDB [(none)]> grant all privileges on keystone.* to keystone@'localhost' identified by '000000';
MariaDB [(none)]> grant all privileges on keystone.* to keystone@'%' identified by '000000';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
- 為認證服務建立資料庫表
[root@controller ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone
- 定義配置授權令牌
[root@controller ~]# ADMIN_TOKEN=$(openssl rand -hex 10)
[root@controller ~]# echo $ADMIN_TOKEN
3a4756d6a595a5d6794c
[root@controller ~]# openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN
- 相關許可權配置
[root@controller ~]# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone
[root@controller ~]# chown -R keystone:keystone /etc/keystone/ssl
[root@controller ~]# chmod -R o-rwx /etc/keystone/ssl
啟動KeyStone服務並設定自啟動
[root@controller ~]# systemctl restart openstack-keystone
[root@controller ~]# systemctl enable openstack-keystone建立計劃任務並定期執行
[root@controller ~]# (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
[root@controller ~]# crontab -l -u keystone
@hourly /usr/bin/keystone-manage token_flush > /var/log/keystone/keystone-tokenflush.log 2>&1
建立使用者、租戶和角色
- 配置環境變數,編輯admin-openrc.sh檔案,並寫入以下幾句,儲存後執行
[root@controller ~]# vi admin-openrc.sh
export OS_TOKEN=3a4756d6a595a5d6794c
export OS_URL=http://controller:35357/v3
export OS_USERNAME=admin
export OS_PASSWORD=000000
export OS_AUTH_URL=http://controller:35357/v3
export OS_PROJECT_NAME=admin
export OS_IDENTITY_API_VERSION=3
[root@controller ~]# source admin-openrc.sh
- 通過openstackclient建立服務及對應的endpoint
[root@controller ~]# openstack
(openstack) service create --name keystone --description "Openstack Identity" identity
(openstack) endpoint create --region RegionOne identity public http://controller:5000/v3
(openstack) endpoint create --region RegionOne identity admin http://controller:35357/v3
(openstack) endpoint create --region RegionOne identity internal http://controller:35357/v3
- 建立admin相關專案、使用者、角色
(openstack) project create --domain default --description "Admin Project" admin
(openstack) user create --domain default --password 000000 --email admin@localhost admin
(openstack) role create admin
(openstack) role add --project admin --user admin admin
- 建立demo相關專案、使用者、角色
(openstack) project create --domain default --description "Demo Project" demo
(openstack) user create --domain default --password 000000 demo
(openstack) role create demo
(openstack) role add --project demo --user demo user
- 建立service相關專案、使用者、角色
(openstack) project create --domain default --description="Service Project" service
驗證認證服務
- 重置環境變數並獲取token
[root@controller ~]# unset OS_TOKEN
[root@controller ~]# unset OS_URL
[root@controller ~]# openstack token issue
配置映象服務Glance
Glance映象服務實現發現、註冊、獲取虛擬機器映象和映象後設資料,映象資料支援儲存多種的儲存系統,可以是簡單檔案系統、物件儲存系統等。
Glance映象服務是典型的C/S架構,Glance架構包括glance-CLIent、Glance、Glance Store。Glance包括主要包括REST API、資料庫抽閒層(DAL)、域控制器(Glance Domain controller)、註冊層(Registry Layer),Glance 使用集中資料庫(Glance DB)在Glance各元件直接共享資料。
該過程僅需在controller節點佈置。
- 下載安裝Glance
[root@controller ~]# yum install openstack-glance -y - 修改相關配置檔案,設定資料庫連線以及keystone相關設定
openstack-config --set /etc/glance/glance-api.conf database connection mysql://glance:000000@controller/glance
openstack-config --set /etc/glance/glance-registry.conf database connection mysql://glance:000000@controller/glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_plugin password
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_id default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_id default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password 000000
openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_plugin password
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_id default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_id default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken password 000000
openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
配置成功後兩個檔案均會多出以下幾行
- 配置資料庫相關許可權及表
[root@controller ~]# mysql -u root -p000000
create database glance;
grant all privileges on glance.* to 'glance'@'localhost' identified by '000000';
grant all privileges on glance.* to 'glance'@'%' identified by '000000';
flush privileges;
exit
[root@controller ~]# su -s /bin/sh -c "glance-manage db_sync" glance
-
建立相關使用者
[root@controller ~]# openstack
(openstack) user create --password 000000 --email glance@localhost glance
(openstack) role add --project service --user glance admin 建立endpoint
(openstack) service create --name glance --description="Openstack Image Service" image
(openstack) endpoint create --region RegionOne image public http://controller:9292
(openstack) endpoint create --region RegionOne image internal http://controller:9292
(openstack) endpoint create --region RegionOne image admin http://controller:9292
- 啟動服務並設定自啟動
[root@controller ~]# systemctl restart openstack-glance-api
[root@controller ~]# systemctl restart openstack-glance-registry
[root@controller ~]# systemctl enable openstack-glance-api
[root@controller ~]# systemctl enable openstack-glance-registry
-
上傳映象
[root@controller images]# openstack image create --disk-format qcow2 --container-format bare --public --file /opt/images/centos_65_x86_6420140327.qcow2 centos
遇見問題
- 安裝openstack-keystone的時候會報錯,提示缺少python-zope-interface這個包,在阿里雲、網易雲映象站均找不到這個包,最後通過關鍵字搜尋python-zope-interface rpm找到了對應的包,放入epel資料夾並更新repodate檔案,再次安裝成功。
- 由於k版本後keystone client被openstack client所代替,所以如果yum的是python-keystoneclient,執行命令時候會出現如圖所示告警,下載
- 在配置賬戶的時候出現很多問題,例如試驗指導書裡面給的環境變數是 OS_SERVICE_ENDPOINT和OS_SERVICE_TOKEN,但是幫助裡面沒有這個環境變數的用法,當我修改為OS_URL和OS_TOKEN的時候可以正常使用,可能是因為版本變更的問題吧。並且這裡如果沒有配置OS_URL和OS_TOKEN環境變數的話,報錯的很多問題可能都不會指向OS_URL,可能會提示其他諸如
openstack could not determine a suitable url for the plugin
openstack The request you have made requires authentication,
還有一些其他的報錯沒有一一記錄,總之,這兩個環境變數很重要。
在配置環境變數的時候各引數一定要一致,如果地址末尾給的是v3,那麼一定要將export OS_IDENTITY_API_VERSION的值設定成3,如果給的是v2.0,則這一項可以不填,因為預設的是2,不然會因為版本問題無法繼續配置。
注意這裡對於環境變數OS_URL和OS_TOKEN一定要重置,否則會提示404未找到等
相關文章
- OpenStack 安裝 Keystone
- Redis安裝與配置(學習筆記一)Redis筆記
- 學習筆記:openstack實驗環境安裝筆記
- Docker筆記(三):Docker安裝與配置Docker筆記
- Flutter學習筆記 - 安裝,映象,配置Flutter筆記
- 照著官網來安裝openstack pike之keystone安裝
- MSP432安裝與環境配置(ccs) 學習筆記筆記
- Oracle學習筆記(一)---oracle安裝和配置Oracle筆記
- mssql配置學習筆記之三SQL筆記
- RabbitMQ學習筆記-安裝MQ筆記
- Centos學習筆記--安裝CentOS筆記
- Docker 學習筆記-基本概念與安裝Docker筆記
- Tomcat安裝與配置(筆記)Tomcat筆記
- Git 的安裝與初次使用 —— Git 學習筆記 03Git筆記
- Kafka超詳細學習筆記【概念理解,安裝配置】Kafka筆記
- Openstack元件——Keystone解析元件
- TypeScript學習筆記—安裝與基礎型別TypeScript筆記型別
- RMAN學習筆記_Catalog 安裝與御載筆記
- GoldenGate 學習筆記(3)_安裝與御載Go筆記
- Mysql學習筆記(安裝篇)MySql筆記
- Docker安裝(學習筆記一)Docker筆記
- Airflow學習筆記 --- airflow安裝AI筆記
- python學習安裝筆記Python筆記
- Flask學習筆記(安裝篇)Flask筆記
- ASM學習筆記_ASM安裝ASM筆記
- jenkins安裝與配置學習Jenkins
- OpenStack學習系列之十二:安裝ceph並對接OpenStack
- OpenStack Client 安裝及配置client
- OpenStack安裝(三) Nova模組
- Webpack4 學習筆記 - 01:webpack的安裝和簡單配置Web筆記
- golang學習筆記(1):安裝&helloworldGolang筆記
- Redis學習筆記【01】 - 安裝RedisRedis筆記
- matlab學習筆記一:安裝Matlab筆記
- Mysql學習筆記1--安裝MySql筆記
- 通過例子學習 Keystone - 每天5分鐘玩轉 OpenStack(19)
- Intel MKL 在VS中的配置與安裝筆記Intel筆記
- Elasticsearch的配置學習筆記Elasticsearch筆記
- Vue 學習筆記 (三) -- VueCli 3 專案配置Vue筆記