openstack雲平台基礎架構
本來要搭建4節點,控制節點,網路節點,計算節點,存儲節點,但是。。。。。此次搭建使用雙節點測試,更多叢集部署請自行增加即可。
步驟
- openstack雲平台基礎架構
-
- 1.搭建虛拟機:
- 2.IAAS搭建流程
-
- Controller搭建
- Compute:(2核,8G)
- 元件部署
-
- controller
- compute
1.搭建虛拟機:
Controller 控制節點–網絡節點
要求: 記憶體4G+,2核+,雙網卡(NET模式,僅主機模式),虛拟化引擎打開,硬碟一個大小看需求,鏡像centos7。
Compute (計算節點)–存儲節點
要求:記憶體8G+,2核+,雙網卡(NET模式,僅主機模式),虛拟化引擎打開,硬碟3個大小看需求,鏡像centos7。
說明:雙網卡采用NAT和僅主機模式是為了更好的安全考慮,一個用于外網一個用于内部網絡使用。
2.IAAS搭建流程
第一步 基礎搭建:
Controller搭建
1.修改主機名:
$ hostnamectl set-hostname controller
2.修改selinux
$ vi /etc/sysconfig
修改内容:disabled
3.關閉防火牆:
systemctl stop firewalld(重新開機自動關閉)
systemctl disable firewalld
4.YUM源配置
(1)建立目錄 用于上傳
$ mkdir /opt/centos
$ mkdir /opt/iaas
(2)上傳CentOS-7-x86_64-DVD-1511.iso和 openstack-IaaS-v2.2.iso鏡像至伺服器上;(可以使用xftp上傳至opt目錄)
【注】為了更好的了解,此處采用再次上傳的方式。
因為根據官網搭建,步驟零碎繁瑣,是以将一些核心配置及需要的元件軟體包等内容制作了屬于自己的鏡像。
openstack-IaaS-v2.2.iso是單獨制作的openstack平台需要的軟體包和核心配置內建的iso
(3)挂載鏡像
$ mount [-o loop] /opt/CentOS-7-x86_64-DVD-1511.iso /opt/centos
$ mount [-o loop] /opt/XianDian-IaaS-v2.2.iso /opt/iaas
[注] 系統一旦重新開機,需要重新挂載。可以使用自動挂載
$ chmod 777 /etc/rc.local 授權
在 /etc/rc.local 中插入挂載指令
(4)編寫本地yum倉庫源
$ mv /etc/yum.repos.d/* /opt(移除yum.repos.d下的所有内容 防止與下面的源檔案沖突)
在/etc/yum.repos.d建立centos.repo源檔案(touch)
[centos]
name=centos
baseurl=file:///opt/centos #挂在路徑 可以采用ip方式
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1
驗證:
$ yum clean all
$ yum repolist
5.安裝 ftp服務:
$ yum -y install vsftpd #安裝ftp服務
$ sed -i ‘anon_root=/opt/’ /etc/vsftpd/vsftpd.conf(指定隻能通路opt下)
$ systemctl start vsftpd
$ systemctl enable vsftpd
6.編輯環境變量
安裝xiandian服務:
$ yum install iaas-xiandian -y(在/ipt/iaas/base下 存在iaas-xiandian軟體包)
修改核心基礎配置:
$ vi /etc/xiandian/openrc.sh(可以通過xftp直接對檔案修改)
HOST_IP=192.168.10.100 #控制節點IP
HOST_NAME=controller #控制節點主機名
HOST_IP_NODE=192.168.10.200 #計算節點
HOST_NAME_NODE=compute #計算節點
RABBIT_USER=openstack #消息隊列服務
RABBIT_PASS=000000 #所有的服務密碼都設定為000000
DB_PASS=000000 #資料庫
DOMAIN_NAME=demo #預設雲平台域名
ADMIN_PASS=000000
DEMO_PASS=000000
KEYSTONE_DBPASS=000000 #keystone服務
GLANCE_DBPASS=000000 #
GLANCE_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=ifcfg-eno... #網卡檔案名
CINDER_DBPASS=000000
CINDER_PASS=000000
TROVE_DBPASS=000000
TROVE_PASS=000000
BLOCK_DISK=sdb #存儲節點 作為塊存儲cinder 空白分區名
SWIFT_PASS=000000
OBJECT_DISK=sdc #存儲節點 對象存儲swift 空白分區名
STORAGE_LOCAL_NET_IP=192.168.10.200 #存儲節點
HEAT_DBPASS=000000
HEAT_PASS=000000
CEILOMETER_DBPASS=000000
CEILOMETER_PASS=000000
AODH_DBPASS=000000
AODH_PASS=000000
【注】:詳細配置可見官網
關于網卡,根據需求來配置NAT或者僅主機
Compute:(2核,8G)
1.修改主機名
$ hostnamectl set-hostname compute
2.修改selinux
$ vi /etc/sysconfig
修改内容:disabled
3.關閉防火牆
$ systemctl disable firewalld
$ systemctl stop firewalld
4.YUM源配置:
編寫本地yum倉庫源
$ mv /etc/yum.repos.d/* /opt #移走源
$ touch /etc/yum.repos.d centos.repo #建立新的源檔案
$ vi /etc/yum.repos.d/centos.rpo #修改源檔案
[centos]
name=centos
baseurl=ftp://192.168.10.100/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://192.168.10.100/iaas/iaas-repo
gpgcheck=0
enabled=1
驗證:
yum clean all
yum repolist
5.編輯環境變量:
$ yum install iaas-xiandian -y
$ vi /etc/xiandian/openrc.sh
HOST_IP=192.168.10.100(控制節點)
HOST_NAME=controller
HOST_IP_NODE=192.168.10.200 #(計算節點)
HOST_NAME_NODE=compute
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=demo #搭建dashboard後登入的域名)
ADMIN_PASS=000000 #(登入的密碼)
DEMO_PASS=000000
KEYSTONE_DBPASS=000000
GLANCE_DBPASS=000000
GLANCE_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=ifcfg-eno.... #網卡檔案名
CINDER_DBPASS=000000
CINDER_PASS=000000
TROVE_DBPASS=000000
TROVE_PASS=000000
BLOCK_DISK=sdb(空白分區名 lsblk)
SWIFT_PASS=000000
OBJECT_DISK=sdc(空白分區名)
STORAGE_LOCAL_NET_IP=192.168.10.200(計算節點)
HEAT_DBPASS=000000
HEAT_PASS=000000
CEILOMETER_DBPASS=000000
CEILOMETER_PASS=000000
AODH_DBPASS=000000
AODH_PASS=000000
【注】此處配置網卡檔案名需要和控制節點保持一緻
元件部署
controller
【注】因為服務較多且每個服務都需要安裝及配置不同的子元件,是以這裡就介紹下每一步幹那些事情,指令就不一一贅述了。詳見官網
文本中會讀取使用openrc.sh配置内容
執行以下的交本完成服務安裝:
iaas-pre-host.sh #主要行為:關閉防火牆,解除安裝網絡管理工具,設定iptables,映射IP和主機名等
iaas-install-mysql.sh #安裝及配置ntp時間服務;資料庫服務 mongodb&mariadb ;消息隊列rabbitmq
iaas-install-keystone.sh # httpd服務,安裝keystone服務及與之相關的資料庫,端點,服務,使用者,角色,域名,環境變量等
iaas-install-glance.sh#glance服務及子元件,同樣資料庫,與之對應的端點,使用者,角色,配置檔案連結資訊,keystone注冊等
iaas-install-nova-controller.sh #安裝nova服務及子元件,同樣資料庫,與之對應的端點,使用者,角色,配置檔案連結資訊,keystone注冊等
iaas-install-neutron-controller.sh#安裝網絡服務同樣資料庫,與之對應的端點,使用者,角色,配置keystone注冊,nova連結,同時建立網橋等行為 此處很重要關系到雲主機通信
iaas-install-neutron-controller-gre.sh;#更多關于網橋的配置及相關服務安裝
iaas-install-dashboard.sh #web界面
iaas-install-cinder-controller.sh#安裝cinder服務及子元件,同樣資料庫,與之對應的端點,使用者,角色,配置檔案連結資訊,keystone注冊等
iaas-install-swift-controller.sh(先執行此腳本);#安裝swift服務及子元件,同樣資料庫,與之對應的端點,使用者,角色,配置檔案連結資訊,keystone注冊等
compute
iaas-pre-host.sh
iaas-install-nova-compute.sh
iaas-install-neutron-compute.sh
iaas-install-neutron-compute-gre.sh;
iaas-install-cinder-compute.sh
iaas-install-swift-compute.sh
最後通路dashboard頁面,域名,使用者,密碼登入資訊都在keystone交本中寫好了。