1、前言python
任何一個剛學習openstack的朋友,在搭建openstack環境的時候都會遇到許多問題,並且不知道如何解決會致使沒法進行下一步的學習,固然我也不例外,因此在此寫博文記錄本身的學習過程並讓一樣在搭建openstack時遇到問題的朋友提供參考。mysql
在這裏,我是使用VMware Workstation上的虛擬機搭建openstack,版本爲icehouse;操做系統版本爲CentOS6.5-x86_64位。linux
2、openstack架構c++
(1)外部網絡:爲雲主機提供上網業務和外界登錄openstack使用(在上圖爲藍色模塊)git
(2)管理網絡:三節點之間通訊,好比keystone、認證、RabbitMQ消息隊列等(在上圖爲紅色模塊)sql
(3)業務網絡:網絡節點和計算節點之間的虛擬機數據通訊,好比DHCP、L二、L3(在上圖爲綠色模塊)數據庫
3、網絡劃分vim
根據上面的openstack架構圖,我對上面的網絡劃分畫了個概圖,方便你們直觀瞭解。bash
4、VMware配置網絡環境及系統安裝服務器
1.安裝VMware Workstation
2.打開虛擬網絡編輯器,進行網絡配置
A.添加網絡-->選擇網絡VMnet1-->選擇NAT模式-->進行NAT配置,配置以下圖
B.添加網絡-->選擇網絡VMnet2-->選擇僅主機模式並配置網絡,配置以下圖
C.完成後的配置以下圖
3.添加三臺機器,先別安裝系統,硬件配置以下
A.控制節點
B.網絡節點
C.計算節點
4.開始安裝系統,最小化安裝便可;安裝完成後在全部節點執行下列操做
(1)編輯/etc/selinux/config文件,關閉selinux
SELINUX=disabled
(2)清空iptables規則並保存
# iptables -F
# service iptables save
(3)安裝工具包
# yum install -y gcc gcc-c++ wget lrzsz vim
(4)以上操做完成後重啓系統
5、主機設置
1.控制節點
(1)網卡配置
【eth0】
IP:10.0.0.11
netmask:255.255.255.0
gateway:10.0.0.2
(2)主機名設定爲controller
(3)編輯/etc/hosts文件,添加如下內容[該操做在全部節點都要執行]
# controller 10.0.0.11 controller # network 10.0.0.21 network # compute1 10.0.0.31 compute1
2.網絡節點
(1)網卡配置
【eth0】
IP:10.0.0.21
netmask:255.255.255.0
gateway:10.0.0.2
【eth1】
IP:10.0.1.21
netmask:255.255.255.0
【eth2】
DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
請注意:不要修改和刪除eth2的HWADDR和UUID
(2)設置主機名爲network
3.計算節點
(1)網卡配置
【eth0】
IP:10.0.0.31
netmask:255.255.255.0
gateway:10.0.0.2
【eth1】
IP:10.0.1.31
netmask:255.255.255.0
(2)設置主機名爲compute1
4.確認網絡已經配置好
(1)控制節點
# ping -c 4 openstack.org 【ping通外網】
# ping -c 4 network 【ping通網絡節點的管理網絡】
# ping -c 4 compute1 【ping通計算節點的管理網絡】
(2)網絡節點
# ping -c 4 openstack.org 【ping通外網】
# ping -c 4 controller 【ping通控制節點的管理網絡】
# ping -c 4 compute1 【ping通計算節點的管理網絡】
(3)計算節點
# ping -c 4 openstack.org 【ping通外網】
# ping -c 4 controller 【ping通控制節點的管理網絡】
# ping -c 4 network 【ping通網絡節點的管理網絡】
6、基礎環境準備
1.安裝NTP(Network Time Protocol)
爲作到每一個節點的時間同步,須要在每一個節點上安裝ntp服務,並在crontab中添加如下計劃任務
*/5 * * * * /usr/sbin/ntpdate 3.cn.pool.ntp.org >/dev/null 2>&1
2.數據庫安裝
大多數的openstack服務都須要利用數據庫來存儲信息。這些服務都使用在控制節點上運行的MySQL數據庫,因此你必須在控制節點上安裝MySQL數據庫;在其餘節點上安裝MySQL Python庫來訪問MySQL。
(1)控制節點
A.在控制節點,安裝mysql客戶端和服務器端的相關包、python庫
# yum install -y mysql mysql-server MySQL-python
B.爲配合openstack的使用,須要對mysql的配置文件作一些修改
①將[mysqld]模塊中的bind-address設置爲controller節點的管理網絡的IP,確保其餘節點經過管理網絡獲取mysql服務。
[mysql]
bind-address = 10.0.0.11
②在[mysqld]模塊添加以下配置,來設置UTF-8字符集和InnoDB
[mydqld]
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
C.啓動mysql服務,並設置開機啓動
# service mysqld start
# chkconfig mysqld on
D.刪除匿名用戶及設置mysql的root密碼
# mysql_install_db
# mysql_secure_installation
(2)其餘節點
除controller節點外,其餘節點只需安裝python庫
# yum install -y MySQL-python
3.OpenStack包
注意:在移除和禁用任何更新服務,都將可能影響你的openstack環境,請在全部節點上執行這些過程
(1)安裝yum-plugin-priorities
# yum install -y yum-plugin-priorities
(2)爲了使用RDO源庫,要下載和安裝rdo-release-icehouse包
# yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-1.noarch.rpm
(3)安裝epel源
# yum install -y http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
(4)安裝openstack-utils包
# yum install -y openstack-utils
(5)安裝selinux包自動管理openstack
# yum install -y openstack-selinux
(6)升級系統包
# yum -y upgrade
注意:在升級過程當中會包含一個新的內核,請從新啓動你的系統將其激活
4.消息代理服務器安裝
OpenStack在各服務之間使用消息代理服務來協調操做和狀態信息,該服務一般運行在控制器節點上。OpenStack支持幾種消息代理服務,包括RabbitMQ、Qpid和ZeroMQ。
(1)安裝消息代理服務
# yum install -y qpid-cpp-server
(2)配置消息代理服務
編輯/etc/qpidd.conf文件,修改下列值
auth=no
(3)完成安裝
# service qpidd start
# chkconfig qpidd on
在此,三節點架構的基礎環境部署完畢。