简介

OpenStack是一个开源的旨在为公共及私有云的建设与管理提供软件的云计算管理平台项目。
先电OpenStack是先电对OpenStack进行二次开发的版本,将其封装成镜像的形式,配置完成即可使用。

教程

资源准备

  • VMware Workstation
  • CentOS-7-x86_64-DVD-1511.iso
  • XianDian-IaaS-v2.2.iso

基本环境配置

网络概览

节点 外网网卡 内网网卡
Controller 192.168.100.10 192.168.200.10
Compute 192.168.100.20 192.168.200.20

虚拟机配置

虚拟网络

编辑->虚拟网络编辑器,如图进行配置:

图片

编辑->虚拟网络编辑器->VMnet8->NAT设置,如图进行配置:

图片

虚拟机

分别新建名为OpenStack ControllerOpenStack Compute,分别设置两个网络适配器为NAT仅主机模式,并使用CentOS-7-x86_64-DVD-1511.iso镜像文件,如图所示:

图片

新建完毕后,分别安装系统,完成后如图:

图片

新建虚拟机时,为避免VMware自动安装,应选择稍后安装操作系统并手动连接镜像,安装完毕后取消连接并改为物理驱动器。

主机名配置

分别在对应区域输入以下内容,并按Ctrl+D重新登录:

【Controller】

1
[root@controller ~]# hostnamectl set-hostname controller

【Compute】

1
[root@compute ~]# hostnamectl set-hostname compute

网络配置

输入ip addr查看网络相关信息,如图所示,外网网卡名称为eno16777736、内网网卡名称为eno33554960

图片

【Controller】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[root@controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=39b8cc5d-22a7-4289-be74-5c21f3796aa1
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.100.10
PREFIX=24
GATEWAY=192.168.100.1
DNS1=114.114.114.114
[root@controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno33554960
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno33554960
UUID=d26cfc34-4800-43db-8ffd-2a5252407d80
DEVICE=eno33554960
ONBOOT=yes
IPADDR=192.168.200.10
PREFIX=24
[root@controller ~]# systemctl restart network

【Compute】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=49dd13e2-c5ac-422e-a529-d74317c9c553
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.100.20
PREFIX=24
GATEWAY=192.168.100.1
DNS1=114.114.114.114
[root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno33554960
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno33554960
UUID=d26cfc34-4800-43db-8ffd-2a5252407d80
DEVICE=eno33554960
ONBOOT=yes
IPADDR=192.168.200.20
PREFIX=24
[root@compute ~]# systemctl restart network

挂载镜像

【Controller】

  • 挂载CentOS镜像:

    1
    2
    3
    4
    5
    6
    7
    [root@controller ~]# mkdir /opt/centos
    [root@controller ~]# mount /dev/cdrom /mnt
    [root@controller ~]# cp -r /mnt/* /opt/centos
    [root@controller ~]# umount /mnt
    [root@controller ~]# eject
    [root@controller ~]# du -sh /opt/centos
    4.2G /opt/centos
  • 挂载IaaS(XianDian)镜像:

    1
    2
    3
    4
    5
    6
    7
    [root@controller ~]# mkdir /opt/iaas
    [root@controller ~]# mount /dev/cdrom /mnt
    [root@controller ~]# cp -r /mnt/* /opt/iaas
    [root@controller ~]# umount /mnt
    [root@controller ~]# eject
    [root@controller ~]# du -sh /opt/iaas
    2.7G /opt/iaas

虚拟机->设置->CD/DVD中切换与连接镜像。

yum源配置

关闭防火墙并禁止开机自启:

【Controller/Compute】

1
2
[root@controller/compute ~]# systemctl stop firewalld
[root@controller/compute ~]# systemctl disable firewalld

【Controller】

  1. 删除/etc/yum.repos.d/目录下所有文件,并新建local.repo文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [root@controller ~]# rm -rf /etc/yum.repos.d/*
    [root@controller ~]# vi /etc/yum.repos.d/local.repo
    [centos]
    name=centos
    baseurl=file:///opt/centos
    gpgcheck=0
    enabled=1
    [iaas]
    name=iaas
    baseurl=file:///opt/iaas/iaas-repo
    gpgcheck=0
    enabled=1
    [root@controller ~]# yum clean all
    [root@controller ~]# yum repolist
  2. 配置FTP服务,使得Compute的yum可以获取数据。

    1
    2
    3
    4
    [root@controller ~]# yum install –y vsftpd
    [root@controller ~]# echo "anon_root=/opt/" >> /etc/vsftpd/vsftpd.conf
    [root@controller ~]# systemctl start vsftpd
    [root@controller ~]# systemctl enable vsftpd

【Compute】
删除/etc/yum.repos.d/目录下所有文件,并新建local.repo文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@compute ~]# rm -rf /etc/yum.repos.d/*
[root@compute ~]# vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=ftp://192.168.100.10/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://192.168.100.10/iaas/iaas-repo
gpgcheck=0
enabled=1
[root@compute ~]# yum clean all
[root@compute ~]# yum repolist

环境变量配置

安装并配置XianDian-IaaS

【Controller/Compute】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@controller/compute ~]# yum install -y iaas-xiandian
[root@controller/compute ~]# vi /etc/xiandian/openrc.sh
HOST_IP=192.168.100.10(controller的IP)
HOST_NAME=controller(controller的名称)
HOST_IP_NODE=192.168.100.20(compute的IP)
HOST_NAME_NODE=compute(compute的名称)
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=cool(域)
ADMIN_PASS=000000(admin账户密码)
DEMO_PASS=000000(demo账户密码)
KEYSTONE_DBPASS=000000
GLANCE_DBPASS=000000
GLANCE_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=eno33554960(内网网卡)
CINDER_DBPASS=000000
CINDER_PASS=000000
BLOCK_DISK=md126p4(空白分区)
TROVE_DBPASS=000000
TROVE_PASS=000000
SWIFT_PASS=000000
OBJECT_DISK=md126p5(空白分区)
STORAGE_LOCAL_NET_IP=192.168.100.20(compute的IP)
HEAT_DBPASS=000000
HEAT_PASS=000000
CEILOMETER_DBPASS=000000
CEILOMETER_PASS=000000
AODH_DBPASS=000000
AODH_PASS=000000

OpenStack部署

在对应区域输入以下内容,并按Ctrl+D重新登录:

【Controller/Compute】

1
[root@controller/compute ~]# iaas-pre-host.sh

相关脚本存放位置:/usr/local/bin

服务组件配置

组件概览

Controller Compute
MySQL-数据库 Nova-计算服务
Keystone-认证服务 Neutron-网络服务
Glance-镜像服务 -
Nova-计算服务 -
Neutron-网络服务 -
Dashboard-可视化服务 -

组件关系

图片

MySQL数据库安装

【Controller】

1
[root@controller ~]# iaas-install-mysql.sh

Keystone认证服务安装

【Controller】

1
[root@controller ~]# iaas-install-keystone.sh

Glance镜像服务安装

【Controller】

1
[root@controller ~]# iaas-install-glance.sh

Nova计算服务安装

【Controller】

1
[root@controller ~]# iaas-install-nova-controller.sh

【Compute】

1
[root@compute ~]# iaas-install-nova-compute.sh

Neutron网络服务

安装

【Controller】

1
[root@controller ~]# iaas-install-neutron-controller.sh

【Compute】

1
[root@compute ~]# iaas-install-neutron-compute.sh

配置

  • gre网络(首选)

    【Controller】

    1
    [root@controller ~]# iaas-install-neutron-controller-gre.sh

    【Compute】

    1
    [root@compute ~]# iaas-install-neutron-compute-gre.sh
  • flat网络

    【Controller】

    1
    [root@controller ~]# iaas-install-neutron-controller-flat.sh

    【Compute】

    1
    [root@compute ~]# iaas-install-neutron-compute-flat.sh
  • vlan网络

    【Controller】

    1
    [root@controller ~]# iaas-install-neutron-controller-vlan.sh

    【Compute】

    1
    [root@compute ~]# iaas-install-neutron-compute-vlan.sh

Dashboard可视化服务安装

【Controller】

1
[root@controller ~]# iaas-install-dashboard.sh

管理平台配置

访问

访问管理平台http://192.168.100.10/dashboard并输入以下内容登录;

cool
用户名 admin
密码 000000

网络配置

外部网络

管理员->系统->网络中点击创建网络,按照如下内容配置:

名称 ext-net
项目 service
供应商网络类型 GRE
段ID 1
管理状态 UP
共享的
外部网络

成功创建名为ext-net的外部网络,点击网络名称 ext-net并在子网中点击创建子网,按照如下内容配置:

子网名称 ext-subnet
网络地址 192.168.100.0/24
IP版本 IPv4
网关IP 192.168.100.1
禁用网关 ×
激活DHCP
分配地址池 192.168.100.2,192.168.100.254
DNS服务器 114.114.114.114
主机路由 -

私有网络

项目->网络->网络中点击创建网络,按照如下内容配置:

网络名称 int-net1
管理状态 UP
共享的 ×
创建子网
子网名称 int-subnet1
网络地址 192.168.200.0/24
IP版本 IPv4
网关IP 192.168.200.1
禁用网关 ×
激活DHCP
分配地址池 192.168.200.2,192.168.200.254
DNS服务器 114.114.114.114
主机路由 -

路由

项目->网络->路由中点击新建路由,按照如下内容配置:

路由名称 ext-router
管理状态 UP
外部网络 ext-net

成功创建名为ext-router的路由,点击名称 ext-router并在接口中点击增加接口,按照如下内容配置:

子网 int-net1: 192.168.200.0/24 (int-subnet1)
IP地址(可选) -
路由名称 -
路由id -

网络拓扑

项目->网络->网络拓扑中会显示对应的网络拓扑,如图所示:

图片

镜像配置

项目->计算->镜像中点击创建镜像,按照如下内容配置:

名称 CentOS7
描述 -
镜像源 镜像文件
镜像文件 CentOS-7-x86_64-DVD-1511.iso
镜像格式 ISO - 光盘镜像
构架 bare
最小磁盘(GB) -
最低内存(MB) -
公有 -
受保护的 -

SSH配置*

打开/etc/ssh/sshd_config并写入配置内容,启动服务后便可使用SSH工具进行连接:

1
2
3
4
5
[root@localhost ~]# vi /etc/ssh/sshd_config
Port 22
PermitRootLogin yes
PasswordAuthentication yes
[root@localhost ~]# systemctl start sshd

参考资料