天天看點

openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯

文章目錄

  • 一、openstack元件部署順序
  • 二 元件部署
    • 建立資料庫和對使用者授權
    • 配置httpd apache mod_wsgi
    • 初始化資料庫
    • 初始化fernet密鑰資料庫
    • 配置bootstrap身份認證服務
    • 建立配置檔案
    • 配置管理者得環境變量
    • 建立openstack域 項目 使用者
    • 建立使用者
  • 報錯

一、openstack元件部署順序

1、Keystone (apache) 全局安全認證

2、glance 提供鏡像服務

3、nova 提供計算服務

4、neutron 提供網絡服務

部署openstack元件時,需先行安裝認證服務(keystone),而認證服務是使用Apache運作的,安裝完成後才可以建立、管理賬号,然後安裝鏡像服務(glance)、計算服務(nova)、網絡服務(neutron)

其中計算服務和網絡服務分為管理端和用戶端,是以需要在openstack的管理端安裝計算服務和網絡服務的管理端,在建立虛拟機的node節點上安裝計算服務和網絡服務的用戶端,最後安裝dashboard服務,openstack各種元件的API都是通過apache運作的;

openstack的管理端負責建立、管理虛拟機過程的排程

通過openstack管理端建立虛拟機的相關資料最終都會記錄到mysql(mariadb)中;node節點沒有權限往資料庫中寫資料,隻有控制端有權限,并且node節點與控制端通訊是通過rabbitmq間接通訊,node節點會監聽rabbitmq,控制端也會監聽rabbitmq,控制端把建立虛拟機的指令發送到rabbitmq,由監聽rabbitmq指定隊列的node節點接收消息并建立虛拟機;

二 元件部署

建立資料庫和對使用者授權

create database keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'yy2234';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'yy2234';
flush privileges;
exit
           
openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯

配置httpd apache mod_wsgi

mod_wsgi讓apache能夠代理python程式的元件

yum -y install openstack-keystone httpd mod_wsgi
cp -a /etc/keystone/keystone.conf{,.bak}
grep -Ev "^$|#" /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf
openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:[email protected]/keystone   通過pymysql子產品通路mysql,指定使用者名密碼、資料庫的域名、資料庫名
openstack-config --set /etc/keystone/keystone.conf token provider fernet 指定token的提供者;提供者就是keystone自己本身   Fernet:一種安全的消息傳遞格式
           
openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯
openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯

初始化資料庫

su -s /bin/sh -c "keystone-manage db_sync" keystone
           
openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯

初始化fernet密鑰資料庫

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
用keystone使用者采用fernet加密方式
           
openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯

配置bootstrap身份認證服務

keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://ct:5000/v3/ \
--bootstrap-internal-url http://ct:5000/v3/ \
--bootstrap-public-url http://ct:5000/v3/ \
--bootstrap-region-id RegionOne
           
openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯

初始化openstack,會把openstack的admin使用者的資訊寫入到mysql的user表中,以及url等其他資訊寫入到mysql的相關表中;

#admin-url是管理網(如公有雲内部openstack管理網絡),用于管理虛拟機的擴容或删除;如果共有網絡和管理網是一個網絡,則當業務量大時,會造成無法通過openstack的控制端擴容虛拟機,是以需要一個管理網;

#internal-url是内部網絡,進行資料傳輸,如虛拟機通路存儲和資料庫、zookeeper等中間件,這個網絡是不能被外網通路的,隻能用于企業内部通路

#public-url是共有網絡,可以給使用者通路的(如公有雲) #但是此環境沒有這些網絡,則公用同一個網絡

#5000端口是keystone提供認證的端口

以下部分指的是openstack多節點的配置

#需要在haproxy伺服器上添加一條listen

#各種網絡的url需要指定controler節點的域名,一般是haproxy的vip的域名(高可用模式)

echo "ServerName controller" >> /etc/httpd/conf/httpd.conf  配置http伺服器
           
openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯

建立配置檔案

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/  建立軟連接配接到apache目錄下
systemctl enable httpd  開機自啟
systemctl start httpd   開啟服務
           
openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯

配置管理者得環境變量

環境變量用于建立角色和項目使用,但是建立角色和項目需要有認證資訊,是以通過環境變量聲明使用者名和密碼等認證資訊,欺騙openstack已經登入且通過認證,這樣就可以建立項目和角色;也就是把admin使用者的驗證資訊通過聲明環境變量的方式傳遞給openstack進行驗證,實作針對openstack的非互動式操作

cat >> ~/.bashrc << EOF
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://ct:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
EOF
source ~/.bashrc
通過配置環境變量,可以使用openstack指令進行一些操作
openstack user list  檢查清單
           
openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯

建立openstack域 項目 使用者

openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯

建立使用者

openstack role create user   建立使用者
openstack role list  檢視清單
openstack token issue  檢查清單項目是否建立成功
           
openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯
openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯

報錯

檢視清單 顯示http500

openstack篇 openstack keystone元件部署一、openstack元件部署順序二 元件部署報錯

原因:資料庫指向錯誤 hosts檔案映射成NET網卡 應該映射内網網卡 先檢查網絡配置 再檢查環境配置 檢查指向是否錯誤