很多新手在入门OpenStack时往往会被复杂的部署步骤所困扰,如何快速拥有一个openstack实验环境呢,我选择packstack,虽然是上古年间的工具,但是不得不说,真香~~~

1、实验环境



注意:环境是VMware虚拟机搭建的,ens33是nat模式,ens34是仅主机模式,本次实验使用212网段为管理ip,211网段为公网(假装)ip,用作访问外网

2、配置yum源。

习惯使用国内的源(阿里),因为比较快

http://mirrors.aliyun.com/repo/ 供君选用

先安装好wget

yum -y install wget

删除/etc/yum.repos.d/* 实验环境删除比较方便,生产环境推荐备份

下载国内centos yum源

wget http://mirrors.aliyun.com/repo/Centos-7.repo

本次安装openstack rocky版

阿里云开源镜像站

https://mirrors.aliyun.com/centos/7/cloud/x86_64/

选择自己需要的版本

创建并编辑

/etc/yum.repos.d/openstack-rocky.repo

[openstack]

name=openstack

baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-rocky/

gpgcheck=0

failovermethod=priority ####(有多个url可供选择时,yum选择的次序,详情见http://www.t086.com/article/5015)

enabled=1

因为在安装过程中会报错qemu版本过低,所以还需要配置qemu的源

https://mirrors.aliyun.com/centos/7/virt/x86_64/kvm-common/

创建并编辑

/etc/yum.repos.d/CentOS-qemu.repo

[centos-qemu-ev]

name=qemu

baseurl=https://mirrors.aliyun.com/centos/7/virt/x86_64/kvm-common/

gpgcheck=0

enabled=1

完成后清除yum源缓存并重新生成本地缓存,如果第一次有报错可以再执行一次

yum clean all && yum makecache

将node1节点也配置成同样的源即可

3、配置firewalld,selinux(所有节点)

如果是大佬,可以对firewalld和selinux规则进行详细配置,不然就全关上。

firewalld:systemctl stop firewalld && systemctl disable firewalld

selinux:setenforce 0(临时生效)或者sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config,重启机器

4、配置hosts文件,并配置时钟同步(强同步,简单,生产环境不推荐 )

hosts文件,向所有/etc/hosts文件写入

192.168.211.60 packstack

192.168.211.61 node1

时钟同步服务(此同步方式仅是节点间同步,并未与互联网同步,只适用于实验环境)

packstack节点,安装ntp服务

yum -y install ntp

编辑/etc/ntp.conf

注释掉

#server 0.centos.pool.ntp.org iburst

#server 1.centos.pool.ntp.org iburst

#server 2.centos.pool.ntp.org iburst

#server 3.centos.pool.ntp.org iburst

添加

server 127.127.1.0

fudge 127.127.1.0 stratum 10

启动ntp服务并开机自启动

systemctl start ntpd && systemctl enable ntpd

node1节点安装ntpdate

ntpdate packstack

5、安装packstack并配置应答文件(从第五步开始,只在packstack做配置)

这个时候,做个快照什么的,简直美滋滋

yum -y install openstack-packstack

生成应答文件

packstack --gen-answer-file=filename 文件名字可以随便起

执行完此命令后,会提示更改了你的ssh公钥,我们只需要把公钥拷贝到node1节点就可以实现免密登录了

ssh-copy-id node1

配置packstack应答文件

把不需要安装的功能都否掉

CONFIG_MANILA_INSTALL=n

CONFIG_SWIFT_INSTALL=n

CONFIG_AODH_INSTALL=n

规划节点

CONFIG_CONTROLLER_HOST=192.168.212.60

CONFIG_COMPUTE_HOSTS=192.168.212.61

CONFIG_NETWORK_HOSTS=192.168.212.60

修改所有密码

使用工具安装,密码是随机生成的 实验环境不方便 所以我们把密码统一改成000000

sed -i.bak -r 's/(.+_PW)=[0-9a-z]+/\1=000000/g' deploy.conf

6、开始部署

packstack --answer-file=deploy.conf

此时可以喝杯茶,或者吃个饭,完事就可以看到安装完成的openstack了

完成后即可在浏览器打开http://192.168.212.60访问dashboard

7、配置网络

创建br-ex网桥配置

创建并编辑/etc/sysconfig/network-scripts/ifcfg-br-ex

DEVICE=br-ex

ONBOOT=yes

DEVICETYPE=ovs

TYPE=OVSBridge

BOOTPROTO=static

IPADDR=192.168.211.60

NETMASK=255.255.255.0

GATEWAY=192.168.211.1

将ens33网卡桥接到br-ex上去

修改/etc/sysconfig/network-scripts/ifcfg-ens33

DEVICE=ens33

ONBOOT=yes

DEVICETYPE=ovs

TYPE=OVSPort

BOOTPROTO=yes

OVS_BRIDGE=br-ex

桥接完成后查看网卡信息,会发现ens33已经没有了ip地址,ip转移到了br-ex网桥上

通过dashboard创建外部网络(选择简单的flat类型)

创建租户网络

创建租户路由

为路由添加接口到刚刚创建的子网上

创建完成后查看网络拓扑

因为packstack测试镜像cirros都已经下好了 现在就可以愉快的启动实例了

曾经被openstack的网络搞的头皮发麻,这里发一下简单的流量走向,请大佬不喜勿喷,如有错误请大佬指点