OpenStack部署
一、主要組件
Horizon:用於管理Openstack各種服務的、基於web的管理接
口;通過圖形界面實現創建用戶、管理網絡、啓勱實例等操作。
Keystone:爲其他服務提供認證和授權的集中身份管理服務;也提供了集中的目錄服務;支持多種身份認證模式,如果密碼認證、令牌認證、以及AWS(亞馬遜Web服務)登陸;爲用戶和其他服務提供了SSO認證服務。
Neutron:一種軟件定義網絡服務;用於創建網絡、子網、路由器、管理浮動IP地址;可以實現虛擬交換機、虛擬路由器;可用於在項目中創建×××。
Cinder:爲虛擬機管理存儲卷的服務;爲運行在Nova中的實例提供永久的塊存儲;可以通過快照迚行數據備份;經常應用在實例存儲環境中,如果數據庫文件。
Nova:在節點上用於管理虛擬機的服務;Nova是一個分佈式的服務,能夠不Keystone交互實現認證,不Glance交互實現鏡像管理;Nova被設計成在標準硬件上能夠迚行水平擴展;啓動實例時,如果有需要則下載鏡像(託管節點,部署到管理節點外的其他主機)。
Glance:扮演虛擬機鏡像註冊的角色;允許用戶爲直接存儲拷貝服務器鏡像;這些鏡像可以用於新建虛擬機的模板。(後端鏡像)
二、OpenStack結構圖
三、基礎環境準備[前文自動化部署虛擬機(kvm)中已經準備完畢]
1. 禁用 selinux
2. 卸載 firewalld
3. 卸載 NetworkManager
4. 配置主機IP地址
5. 配置主機yum客戶端
6. 創建cinder-volumes的卷組
7. 導入公鑰(gpgcheck=1 rpm --import ftp://192.168.1.254/CentOS7/RPM-GPG-KEY-CentOS-7)
8. 安裝依賴的軟件包
四、部署安裝OpenStack
[OpenStack管理節點、Nova節點 配置]
1)yum源配置
[local_repo]
name=CentOS7
baseurl="ftp://192.168.1.254/CentOS7"
enabled=1
gpgcheck=1
[openstack-ext]
name=Packages
baseurl="ftp://192.168.1.254/openstack-ext"
enabled=1
gpgcheck=0
[rhel-7-server-rhceph-2-osd-rpms]
name=rhel-7-server-rhceph-2-osd-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-osd-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-rhceph-2-tools-rpms]
name=rhel-7-server-rhceph-2-tools-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-tools-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-rhscon-2-agent-rpms]
name=rhel-7-server-rhscon-2-agent-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-agent-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-rhscon-2-installer-rpms]
name=rhel-7-server-rhscon-2-installer-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-installer-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-rhscon-2-main-rpms]
name=rhel-7-server-rhscon-2-main-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-main-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-rhceph-2-mon-rpms]
name=rhel-7-server-rhceph-2-mon-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-mon-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-openstack-10-tools-rpms]
name=rhel-7-server-openstack-10-tools-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-tools-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-openstack-10-rpms]
name=rhel-7-server-openstack-10-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-openstack-10-optools-rpms]
name=rhel-7-server-openstack-10-optools-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-optools-rpms"
enabled=1
gpgcheck=0
[rhel-7-server-openstack-10-devtools-rpms]
name=rhel-7-server-openstack-10-devtools-rpms
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
配置完成以後 yum repolist 能看到 12 個源及 10,731 個包
2)配置卷組
OpenStack管理節點虛擬機 [8G內存]:
]#pvcreate /dev/vdb
]#vgcreate cinder-volumes /dev/vdb
注:OpenStack虛擬機的模板機是minimal安裝未安裝邏輯卷相關命令,需要利用yum provides vgcreate 查出此命令由哪個軟件包提供,並安裝。
3)導入公鑰
修改yum倉庫gpgcheck=1
]#rpm --import ftp://192.168.1.254/CentOS7/RPM-GPG-KEY-CentOS-7
注:此步驟在製作模板機的時候已經操作完成,可忽略。
4)安裝額外軟件包
]#yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
[ penStack管理節點虛擬機配置 ]
五、安裝OpenStack
1)安裝openstack
]# yum install -y openstack-packstack
]#packstack --gen-answer-file answer.ini
2)修改應答文件
配置默認密碼:
11: CONFIG_DEFAULT_PASSWORD=Taren1
設置禁用 swift (對象存儲) 模塊:
42: CONFIG_SWIFT_INSTALL=n
NTP 服務器地址:
75: CONFIG_NTP_SERVERS=192.168.1.254
計算節點IP地址:
98: CONFIG_COMPUTE_HOSTS=192.168.1.19
需要配置vxlan網絡的 IP 地址:
102: CONFIG_NETWORK_HOSTS=192.168.1.19
禁用自動創建 cinder-volumns 卷組:
554: CONFIG_CINDER_VOLUMES_CREATE=n
設置網絡支持協議:
840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan
設置組播地址:
876: CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5
設置虛擬交換機:
910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex
設置虛擬交換機所連接的物理網卡:
921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
設置隧道網絡使用的網卡:
936: CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1
禁用測試的DEMO:
1179:CONFIG_PROVISION_DEMO=n
保存配置文件,安裝 openstack
]#packstack --answer-file=answer.ini
六、網絡配置(安裝配置自動生成)
1)多計算節點拓撲
2)配置br-ex爲外部OVS網橋
]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex
ONBOOT="yes"
NM_CONTROLLED="no"
IPADDR="192.168.1.66"
PREFIX="24"
GATEWAY="192.168.1.254"
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO="static"
TYPE=OVSBridge
3) 配置eth0爲外部OVS網橋的端口
]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
4) 驗證OVS配置
[1].ovs-vsctl show
[2].ip -o addr show
]# ovs-vsctl show
Bridge br-ex
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
… …
Port br-ex
Interface br-ex
type: internal
Port "eth0"
Interface "eth0"
七、Horizon BUG 處理
horizon 軟件配置 bug
修改 /etc/httpd/conf.d/15-horizon_vhost.conf
ServerAliaslocalhost
WSGIDaemonProcessapache group=apache processes=3 threads=10 user=apache
WSGIProcessGroupapache
36: WSGIApplicationGroup %{GLOBAL} 第36行添加
八、重新加載配置文件,網頁測試
重新載入配置文件:
]#apachectl graceful
查看用戶名密碼:
]# cat keystonerc_admin
利用瀏覽器輸入http://192.168.1.202登陸管理界面
未完待續……