一、前言
任何一个刚学习openstack的朋友,在搭建openstack环境的时候都会遇到许多问题,而且不知道如何解决会导致无法进行下一步的学习,当然我也不例外,所以在此写博文记录自己的学习过程并让同样在搭建openstack时遇到问题的朋友提供参考。
在这里,我是使用VMware Workstation上的虚拟机搭建openstack,版本为icehouse;操作系统版本为CentOS6.5-x86_64位。
二、openstack架构
(1)外部网络:为云主机提供上网业务和外界登陆openstack使用(在上图为蓝色模块)
(2)管理网络:三节点之间通信,比如keystone、认证、RabbitMQ消息队列等(在上图为红色模块)
(3)业务网络:网络节点和计算节点之间的虚拟机数据通信,比如DHCP、L2、L3(在上图为绿色模块)
三、网络划分
根据上面的openstack架构图,我对上面的网络划分画了个概图,方便大家直观了解。
四、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)以上操作完成后重启系统
五、主机设置
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通网络节点的管理网络】
六、基础环境准备
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库
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
在此,三节点架构的基础环境部署完毕。
全文完