什麼是openstack
OpenStack 是一系列開源工具(或開源項目)的組合,主要使用池化虛拟資源來建構和管理私有雲及公共雲。其中的六個項目主要負責處理核心雲計算服務,包括計算、網絡、存儲、身份和鏡像服務。還有另外十多個可選項目,使用者可把它們捆綁打包,用來建立獨特、可部署的雲架構。
雲計算模式
一、IaaS:基礎設施即服務(個人比較習慣的):使用者通過網絡擷取虛機、存儲、網絡,然後使用者根據自己的需求操作擷取的資源
二、PaaS:平台即服務:将軟體研發平台作為一種服務, 如Eclipse/Java程式設計平台,服務商提供程式設計接口/運作平台等
三、SaaS:軟體即服務 :将軟體作為一種服務通過網絡提供給使用者,如web的電子郵件、HR系統、訂單管理系統、客戶關系系統等。使用者無需購買軟體,而是向提供商租用基于web的軟體,來管理企業經營活動
OpenStack 中有哪些項目?
OpenStack 架構由大量開源項目組成。其中包含 6 個穩定可靠的核心服務,用于處理計算、網絡、存儲、身份和鏡像; 同時,還為使用者提供了十多種開發成熟度各異的可選服務。OpenStack 的 6 個核心服務主要擔綱系統的基礎架構,其餘項目則負責管理控制台、編排、裸機部署、資訊傳遞、容器及統籌管理等操作。
Keystone: 認證所有 OpenStack 服務并對其進行授權。同時,它也是所有服務的端點目錄。
Glance: 可存儲和檢索多個位置的虛拟機磁盤鏡像。
Nova:是一個完整的 OpenStack 計算資源管理和通路工具,負責處理規劃、建立和删除操作。
Neutron :能夠連接配接其他 OpenStack 服務并連接配接網絡。
Horizon:web管理界面
Swift: 是一種高度容錯的對象存儲服務
Cinder 通過自助服務 API 通路持久塊存儲。
openstack 安裝
環境準備
主機名稱 | IP位址 | 最小資源配置 |
---|---|---|
openstack | 192.168.1.10 | 2CPU,8G記憶體 |
nova01 | 192.168.1.11 | 2CPU,3G記憶體 |
nova02 | 192.168.1.12 | 2CPU,3G記憶體 |
repo | 192.168.1.250 | 2CPU,1G記憶體 |
上傳 RHEL7-extras.iso、RHEL7OSP-10.iso 到功能伺服器[repo]
功能伺服器安裝配置
時間源伺服器
[[email protected] ~]# yum install -y chrony
[[email protected] ~]# vim /etc/chrony.conf
# 注釋掉所有 server 開頭的行,添加
server ntp.aliyun.com iburst
bindacqaddress 0.0.0.0
allow 0/0
local stratum 10
[[email protected] ~]# systemctl enable chronyd
[[email protected] ~]# systemctl restart chronyd
[[email protected] ~]# ss -ltun # 檢視 123 端口是否被監聽成功
網絡yum源伺服器
[[email protected] ~]# yum install -y vsftpd
[[email protected] ~]# systemctl enable --now vsftpd
[[email protected] ~]# mkdir -p /var/ftp/{extras,openstack}
[[email protected] ~]# cd /var/iso
[[email protected] ~]# mount -t iso9660 -o ro,loop RHEL7-extras.iso /var/ftp/extras
[[email protected] ~]# mount -t iso9660 -o ro,loop RHEL7OSP-10.iso /var/ftp/openstack
# 在openstack上驗證
[[email protected] ~]# curl ftp://192.168.1.250/extras/
[[email protected] ~]# curl ftp://192.168.1.250/openstack/
openstack 實驗架構圖例
openstack系統環境安裝配置
以下操作,openstack,nova01 都需要做
[[email protected] ~]# vim /etc/selinux/config
# 修改 SELINUX=disabled
[[email protected] ~]# yum -y remove firewalld-*
[[email protected] ~]# reboot
# 重新開機後驗證
[[email protected] ~]# sestatus
SELinux status: disabled
[[email protected] ~]# rpm -qa |grep -i firewalld
[[email protected] ~]#
解除安裝 NetworkManager
[[email protected] ~]# systemctl stop NetworkManager
[[email protected] ~]# yum remove -y NetworkManager
[[email protected] ~]# systemctl enable --now network
網卡配置檔案注解
- # Generated by dracut initrd # 注釋
- DEVICE=“eth0” # 驅動名稱,與ifconfig 看到的名稱一緻
- ONBOOT=“yes” # 開機啟動
- NM_CONTROLLED=“no” # 不接受 NetworkManager 控制
- TYPE=“Ethernet” # 類型
- BOOTPROTO=“static” # 協定(dhcp|static|none)
- IPADDR=“192.168.1.10” # IP位址
- NETMASK=“255.255.255.0” # 子網路遮罩
- GATEWAY=“192.168.1.254” # 預設網關
Yum安裝源配置
确認軟體包總數是 10670
[[email protected] ~]# vim /etc/yum.repos.d/openstack.repo
[local_extras]
name=CentOS-$releasever - Extras
baseurl="ftp://192.168.1.250/extras"
enabled=1
gpgcheck=0
[local_openstack]
name=CentOS-$releasever - OpenStack
baseurl="ftp://192.168.1.250/openstack/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[local_openstack_devtools]
name=CentOS-$releasever - Openstack devtools
baseurl="ftp://192.168.1.250/openstack/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
[[email protected] ~]# yum makecache
[[email protected] ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
CentOS-Base CentOS-7 - Base 9,911
local_extras CentOS-7 - Extras 76
local_openstack CentOS-7 - OpenStack 680
local_openstack_devtools CentOS-7 - Openstack devtools 3
repolist: 10,670
時間伺服器配置
[[email protected] ~]# vim /etc/chrony.conf
# 注釋掉所有 server 開頭的行,添加
server 192.168.1.250 iburst
[[email protected] ~]# systemctl restart chronyd
[[email protected] ~]# chronyc sources -v # 驗證配置 ^* 代表成功
主機名與DNS配置
[[email protected] ~]# vim /etc/hosts
192.168.1.10 openstack
192.168.1.11 nova01
192.168.1.12 nova02
192.168.1.250 repo
# 删除所有 search 開頭的行
[[email protected] ~]# sed '/^search /d' -i /etc/resolv.conf
nova虛拟環境安裝
nova01 安裝
[[email protected] ~]# yum install -y qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools
[[email protected] ~]# systemctl enable --now libvirtd
[[email protected] ~]# virsh version # 驗證
packstack工具安裝
隻需要在 openstack 上安裝即可
openstack安裝
使用應答檔案安裝,隻需要在 openstack 上安裝即可
# 建立應答檔案
[[email protected] ~]# packstack --gen-answer-file=answer.ini
# 修改應答檔案
42: CONFIG_SWIFT_INSTALL=n //存儲對象元件
45: CONFIG_CEILOMETER_INSTALL=n //計費子產品
49: CONFIG_AODH_INSTALL=n //計費子產品
53: CONFIG_GNOCCHI_INSTALL=n //計費子產品
75: CONFIG_NTP_SERVERS=192.168.1.250 //時間伺服器
98: CONFIG_COMPUTE_HOSTS=192.168.1.11 //計算節點IP
102: CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11 //網絡節點IP
333: CONFIG_KEYSTONE_ADMIN_PW=a //管理者密碼
840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan //支援協定
910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex //網橋裝置
921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 //出口網卡
1179: CONFIG_PROVISION_DEMO=n //示範子產品
做快照!!!
做快照!!!
做快照!!!
安裝過程大約 10 ~ 30 分鐘不等
web頁面登入
修改 apache 配置
[[email protected] ~]# vim /etc/httpd/conf.d/15-horizon_vhost.conf
# 在配置檔案倒數第三行添加
WSGIApplicationGroup %{GLOBAL}
[[email protected] ~]# systemctl reload httpd
浏覽器通路 http://192.168.1.10/
指令行登入openstack
[[email protected] ~]# openstack user list
Missing value auth-url required for auth plugin password
# 沒有登入擷取資料失敗
[[email protected] ~]# source keystonerc_admin
[[email protected] ~(keystone_admin)]# openstack user list
+----------------------------------+---------+
| ID | Name |
+----------------------------------+---------+
| 0e5367062de6478a9fe2d0456cb5fddb | nova |
| 27191744bc6349f5b34822c083f7874e | admin |
| 803074aab6fe49a19b983d9fbb7322be | glance |
| cf35dd75778d4479965e2f39771956de | neutron |
| d5f4ffae68e54210a6bb29fba36acaaa | cinder |
+----------------------------------+---------+
# 登入以後擷取資料成功
nova02 安裝
openstack 實驗架構圖例
openstack系統環境安裝配置
[[email protected] ~]# vim /etc/selinux/config
# 修改 SELINUX=disabled
[[email protected] ~]# yum -y remove firewalld-*
[[email protected] ~]# reboot
# 重新開機後驗證
[[email protected] ~]# sestatus
SELinux status: disabled
[[email protected] ~]# rpm -qa |grep -i firewalld
[[email protected] ~]#
解除安裝 NetworkManager
[[email protected] ~]# systemctl stop NetworkManager
[[email protected] ~]# yum remove -y NetworkManager
[[email protected] ~]# systemctl enable --now network
網卡配置檔案
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.1.12"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.254"
Yum安裝源配置
确認軟體包總數是 10670
[[email protected] ~]# vim /etc/yum.repos.d/openstack.repo
[local_extras]
name=CentOS-$releasever - Extras
baseurl="ftp://192.168.1.250/extras"
enabled=1
gpgcheck=0
[local_openstack]
name=CentOS-$releasever - OpenStack
baseurl="ftp://192.168.1.250/openstack/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[local_openstack_devtools]
name=CentOS-$releasever - Openstack devtools
baseurl="ftp://192.168.1.250/openstack/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
[[email protected] ~]# yum makecache
[[email protected] ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
CentOS-Base CentOS-7 - Base 9,911
local_extras CentOS-7 - Extras 76
local_openstack CentOS-7 - OpenStack 680
local_openstack_devtools CentOS-7 - Openstack devtools 3
repolist: 10,670
時間伺服器配置
[[email protected] ~]# vim /etc/chrony.conf
# 注釋掉所有 server 開頭的行,添加
server 192.168.1.250 iburst
[[email protected] ~]# systemctl restart chronyd
[[email protected] ~]# chronyc sources -v # 驗證配置 ^* 代表成功
主機名與DNS配置
[[email protected] ~]# vim /etc/hosts
192.168.1.10 openstack
192.168.1.11 nova01
192.168.1.12 nova02
192.168.1.250 repo
# 删除所有 search 開頭的行
[[email protected] ~]# sed '/^search /d' -i /etc/resolv.conf
nova虛拟環境安裝
[[email protected] ~]# yum install -y qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools
[[email protected] ~]# systemctl enable --now libvirtd
[[email protected] ~]# virsh version # 驗證
nova02安裝
在 openstack 上安裝 nova02,修改第一次安裝的配置檔案,不能重新生成!!!
[[email protected] ~]# vim answer.ini
98: CONFIG_COMPUTE_HOSTS=192.168.1.12
102: CONFIG_NETWORK_HOSTS=192.168.1.12
安裝過程大約 10 ~ 30 分鐘不等
web頁面登入
修改 apache 配置
[[email protected] ~]# vim /etc/httpd/conf.d/15-horizon_vhost.conf
# 在配置檔案倒數第三行添加
WSGIApplicationGroup %{GLOBAL}
[[email protected] ~]# systemctl reload httpd
浏覽器通路 http://192.168.1.10/
總結
Horizon 元件,提供web管理界面
Keystone 元件,提供集中的認證和授權
Nova 元件,計算節點建立管理雲主機
Glance 元件,管理雲主機鏡像
Swift 元件,存儲雲使用的對象存儲服務
Neutron 元件,管理雲服務的内部、外部網絡路由等
Cinder 元件,管理雲主機的存儲卷服務