OpenStack部署
一、主要組件
Horizon:用於管理Openstack各種服務的、基於web的管理接
口;通過圖形界面實現創建用戶、管理網絡、啟勱實例等操作。
Keystone:為其他服務提供認證和授權的集中身份管理服務;也提供了集中的目錄服務;支持多種身份認證模式,如果密碼認證、令牌認證、以及AWS(亞馬遜Web服務)登陸;為用戶和其他服務提供了SSO認證服務。
Neutron:一種軟件定義網絡服務;用於創建網絡、子網、路由器、管理浮動IP地址;可以實現虛擬交換機、虛擬路由器;可用於在項目中創建×××。
Cinder:為虛擬機管理存儲卷的服務;為運行在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登陸管理界面
未完待續……
OpenStack部署