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
在此,三节点架构的基础环境部署完毕。