文章目錄
- 一、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

配置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:一種安全的消息傳遞格式
初始化資料庫
su -s /bin/sh -c "keystone-manage db_sync" keystone
初始化fernet密鑰資料庫
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
用keystone使用者采用fernet加密方式
配置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的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伺服器
建立配置檔案
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ 建立軟連接配接到apache目錄下
systemctl enable httpd 開機自啟
systemctl start httpd 開啟服務
配置管理者得環境變量
環境變量用于建立角色和項目使用,但是建立角色和項目需要有認證資訊,是以通過環境變量聲明使用者名和密碼等認證資訊,欺騙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 role create user 建立使用者
openstack role list 檢視清單
openstack token issue 檢查清單項目是否建立成功
報錯
檢視清單 顯示http500
原因:資料庫指向錯誤 hosts檔案映射成NET網卡 應該映射内網網卡 先檢查網絡配置 再檢查環境配置 檢查指向是否錯誤