openstack私有云搭建

Openstack一般来说由以下四个功能节点组成,分别是:控制节点、网络节点、存储节点和计算节点,但由于现在采用虚拟机搭建,所以选择双节点(控制节点、计算节点)搭建。
虚拟机1:控制节点(Controller)Centos7.2 1511(minal)
50G硬盘,2G运行内存,2个处理器
虚拟机2:计算节点(Compute)Centos7.2 1511(minal)
50G硬盘,4G运行内存,2个处理器
注:控制节点同时作为控制节点和网络节点,计算节点同时作为计算节点和存储节点。

一、VMware虚拟机安装:

使用VMware-workstation-full-14.1.1

二、创建虚拟网卡、更改虚拟网卡:

打开VMware选择 编辑——虚拟网络编辑器——更改设置
			
	我们需要添加一张虚拟网卡 VMnet2 并将它设置为NAT模式

Openstack服务器平台搭建 openstack平台搭建步骤_centos

这里将VMnet1的子网设置为 192.168.100.0 作为两台虚拟机的内网
VMnet2的子网设置为 192.168.200.0 作为两台虚拟机的外网
若未将VMnet2设置为NAT模式是无法连接外网的

三、创建虚拟机(controller、compute)
步骤如下:

Openstack服务器平台搭建 openstack平台搭建步骤_openstack搭建_02

Openstack服务器平台搭建 openstack平台搭建步骤_IP_03


Openstack服务器平台搭建 openstack平台搭建步骤_IP_04


然后点击 网络适配器 选择自定义 VMnet1;网络适配器2 选择自定义 VMnet2

注:这一步必须在开启虚拟机之前设置好,不然等进入虚拟机后只有一张网卡或没有网卡,那时你就只能重新创建虚拟机

设置完成后点击 确定 开启虚拟机

四、核心步骤:
(1)修改主机名(控制节点和计算机点):root目录下

vi /etc/sysconfig/network  修改hostname=controller/compute
	
vi /etc/hosts,然后将localhost.localdomain改为controller/compute

输入reboot重启后输入hostname验证是否变为controller和compute

(2)修改网络配置:

配置控制节点和计算节点IP地址
控制节点修改第一个网卡

vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改:

DEVICE=eth0    //配置网卡的设备名称
IPADDR=192.168.100.10    //配置实际网络地址
BOOTPROTO=static    //配置静态网络地址
ONBOOT=yes    //开机启动网络
PREFIX=24

保存退出
配置域名解析(两个节点)

vi /etc/hosts

添加如下信息:

192.168.100.10 controller
192.168.100.20 compute

保存退出

#service network restart

计算节点修改第一个网卡:

vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0    //配置网卡的设备名称
IPADDR=192.168.100.20    //配置实际网络地址
BOOTPROTO=static    //配置静态网络地址
ONBOOT=yes     //开机启动网络
PREFIX=24

保存退出

vi /etc/hosts

添加如下信息:

192.168.100.10 controller
192.168.100.20 compute

保存退出

service network restart

测试:

在controller节点:  ping compute 和ping www.baidu.com
在compute节点:  ping controller和ping www.baidu.com

(3)修改防火墙和selinux(两个节点都需要):

配置防火墙:

iptables -F    //清除所有chains链(INPUT/OUTPUT/FORWARD)中所有的rule规则
 iptables -Z    //清空所有chains链(INPUT/OUTPUT/FORWARD)中包及字节计数器
 iptables -X      //清除用户自定义的chains链(INPUT/OUTPUT/FORWARD)中的rule规则
 service iptables save     //保存修改的Iptables规则
 service iptables stop     //关闭防火墙
 chkconfig iptables off     //开机不启动防火墙

配置selinux:

vi /etc/selinux/config 
SELINUX=permissive
  //表示系统会收到警告讯息但是不会受到限制,作为selinux的debug模式用处

保存修改内容后退出

(4)controller节点上传镜像:

将CentOS-6.8-x86_64-bin-DVD1.iso和XianDian-IaaS-v1.4.iso文件放到root目录下

  mkdir -p /opt/centos  /opt/openstack   
            (创建centos、openstack目录)
 
  mount -o loop CentOS-6.8-x86_64-bin-DVD1.iso /mnt/     
          (将centos镜像文件挂载到mnt目录下)
  cp -rvf /mnt/* /opt/centos/   
          (将mnt目录下挂载的内容拷贝至/opt/centos目录)
  umount /mnt/     
         (拷贝完成后取消挂载)
  mount -o loop XianDian-IaaS-v1.4.iso /mnt/     
        (将openstack镜像文件挂载到mnt目录下)
  cp -rvf /mnt/* /opt/openstack/
  umount /mnt/        
       (拷贝完成后取消挂载,mnt目录下的文件将会消失)

(5)Controller节点配置yum源:

mkdir /opt/repo    
 mv /etc/yum.repos.d/*.repo /opt/repo/ 
 vi /etc/yum.repos.d/local.repo

添加如下信息:

[centos]
name=centos
baseurl=file:///opt/centos/  
gpgcheck=0
enabled=1
[openstack]
name=openstack
baseurl=file:///opt/openstack/iaas-repo/ 
gpgcheck=0
enabled=1

保存后退出

yum clean all (清理yum缓存)
 yum list

(6)Controller节点安装FTP服务:

1、 如果下载vsftpd失败就用2,如果成功就按步骤3往下

yum install -y vsftpd

2、将vsftpd-2.2.2-24.el6.x86_64.rpm放到root下,使用rpm -i vsftpd-2.2.2- 24.el6.x86_64.rpm命令进行安装,安装完毕后,执行步骤3
3、在命令行执行:

vi /etc/vsftpd/vsftpd.conf  
       (在vsftpd.conf内添加)
anon_root=/opt    
       (/opt为centos、mitaka文件的路径)
service vsftpd start
     (启动vsftpd服务)
chkconfig vsftpd on 
     (设置vsftpd服务开机自启)

(7)compute节点配置yum源:

mkdir /opt/repo    
 mv /etc/yum.repos.d/*.repo /opt/repo/ 
 vi /etc/yum.repos.d/local.repo
 
[centos]
name=centos
baseurl=ftp://192.168.100.10/centos/
gpgcheck=0
enabled=1
[openstack]
name=openstack
baseurl=ftp://192.168.100.10/openstack/iaas-repo/ 
gpgcheck=0
enabled=1

保存并退出

yum clean all     (清理yum缓存)
 yum list

验证:在浏览器中输入ftp://192.168.100.10

(8)配置npt服务:

Controller节点:

yum install -y ntp
vi /etc/ntp.conf

加入内容:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

保存退出

service ntpd start 
chkconfig ntpd on
service ntpd status

Compute节点:

yum install -y ntp
 ntpdate controller

(9)控制节点安装消息代理服务:

yum install qpid-cpp-server
启动消息代理
 vi /etc/qpidd.conf
将文档末尾的auth=yes改为no
service qpidd start
chkconfig qpidd on

(10)安装openstack软件包:

Controller和compute节点:

yum -y install iaas-xiandian
yum install openstack-utils  -y
yum install openstack-selinux  -y
yum upgrade -y  

vi /etc/xiandian/openrc.sh环境变量需修改部分:

“#”是注释,注意下面哪些地方取消了注释(另:原设置密码为:000000)

##--------------------system config--------------------##
##Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.100.10

##Controller Server hostname. example:controller
HOST_NAME=controller

##Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.100.20

##Compute Node hostname. example:compute
HOST_NAME_NODE=compute

##--------------------MySQL config---------------------##
##Password for MySQL root user . exmaple:000000
DB_PASS=000000

##--------------------Keystone config------------------##
##Password for Keystore admin user. exmaple:000000
ADMIN_PASS=000000

##Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000

##--------------------Glance config--------------------##
##Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000

##Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000

##--------------------Nova config----------------------##
##Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000

##Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000

##--------------------Neturon config-------------------##
##Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000

##Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000

##metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000

##External Network Interface. example:eth1
INTERFACE_NAME=eth1

保存退出
重启两个节点reboot

(11)安装数据库:

控制节点执行

source iaas-install-mysql.sh

计算节点安装mysql数据库客户端

yum -y install MySQL-python

(12)安装keystone认证服务:

Controller节点:

source iaas-install-keystone.sh
source /etc/keystone/admin-openrc.sh

(13)安装glance镜像服务:

Controller节点:

source  iaas-install-glance.sh
测试:上传镜像
cd /opt/openstack/images/
glance image-create --name "centos6.5" --disk-format qcow2  --container-format bare --is-public True --progress <  centos_65_x86_6420140327.qcow2或者执行
glance image-create --name "centos6.5" --disk-format qcow2 --container-format bare --is-public True --progress < centos(TAB补全)

(14)安装nova服务:

Controller节点:

source iaas-install-nova-controller.sh
使用U盘将python-libguestfs-1.20.11-17.el6.x86_64.rpm文件拷到opt/centos/packages文件夹下

在compute节点:

source iaas-install-nova-compute.sh

(15)创建neutron网络服务:

Controller节点:

使用U盘将dnsmasq-utils-2.48-17.el6.x86_64.rpm文件拷到opt/centos/packages文件夹下
source iaas-install-neutron-controller.sh
source iaas-install-neutron-controller-gre.sh
是否覆盖网卡1的配置?写y
如果提示有重启失败的服务,执行service 失败服务名称 restart
compute节点:
source iaas-install-neutron-compute.sh
source iaas-install-neutron-compute-gre.sh
是否覆盖网卡1的配置?写y

(17)安装设置dashboard服务(controller节点):

iaas-install-dashboard.sh
 setsebool -P httpd_can_network_connect on

(18)此刻环境配置已经全部完成,在浏览器输入192.168.100.10/dashboard/即可访问web界面
用户名admin 密码000000