首先开启路由转发:
#cd /e t c/sysctl.d/
#vim 99-sysctl.conf
net ipv4.ip_forward = 1
真机上配置虚拟网卡配置文件:
[root@localhost ~]# cd /etc/libvirt/qemu/networks/
[root@localhost networks]# vim vbr.xml
[root@localhost networks]# virsh net-define vbr.xml //激活虚拟网卡
[root@localhost networks]# virsh net-start vbr //开启虚拟网卡
[root@localhost networks]# ifconfig
创建虚拟磁盘:
[root@localhost ~]# cd /var/lib/libvirt/images/
[root@localhost images]# qemu-img create -f qcow2 node.qcow2 16G
装虚拟机:
网络安装--》提供URL地址ftp://176.233.4.241/centos7 选择根据安装介质自动侦测操作系统--》2G 内存+2个CPU--》选择创建自定义存储--》选择自己创建的qcow2--》起名 选择在安装前自定义配置,选择网络--》完成
装机配置:
选择英语环境--》选择最小安装--》选择手动配置磁盘--》选择标准分区,添加根分区--》去选kdump--》开始安装
配置系统:(除了装包,还要卸载firewalld,NetworkManager,禁用SElinux)
#cd /etc/yum.repos.d/
#rm -rf *
#vi dvd.repo //配yum源
#yum provides ifconfig
yum -y install net-tools
#yum provides vim
#yum -y install vim-enhanced
#yum provides ip
#yum -y install iproute
#yum -y install bash-completion //table键补齐
配DNS:
#vim /e tc/resolve.conf
nameserver 176.233.0.227
禁用空路由
#vim /e tc/sysconfig/network
NOZEROCONF=”yes”
配置console连接:
[root@localhost ~]# vim /etc/sysconfig/grub
GRUB_CMDLINE_LINUX="rhgb quiet console=tty0 console=ttyS0" //修改这一行 rhgb quiet//显示过程
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg //查找启动项
测试console连接
#virsh console centos7.0 //直接连接虚拟机名称
创建虚拟机模板:
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
#Generated by dracut initrd
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
IPV6INIT=no
BOOTPROTO=dhcp
TYPE=Ethernet
[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# cp centos7.0.xml centos7.xml //拷贝配置文件
[root@localhost qemu]# virsh undefine centos7.0 //删除虚拟机
[root@localhost qemu]# vim centos7.xml //编辑配置文件删除UUID、MAC地址 能多删不能少删
创建虚拟机:
1、创建虚拟机配置文件
[root@localhost qemu]# cp centos7.xml node1.xml
[root@localhost qemu]# vim node1.xml
或者:[root@localhost qemu]# sed 's/node/node1/g' centos7.xml > node1.xml
2、创建虚拟机磁盘文件
[root@localhost images]# cd /etc/libvirt/qemu/
[root@localhost qemu]# virsh define node1.xml
[root@localhost qemu]# cd /var/lib/libvirt/images/
[root@localhost images]# qemu-img create -b node.qcow2 -f qcow2 node1.img
[root@localhost qemu]# virsh start node1 //启动虚拟机
[root@localhost qemu]# virsh console node1 //console连接
上面咱们把模板做好 下来部署openstack环境
基础环境检查
- 禁用 selinux
- 卸载 firewalld
- 卸载 NetworkManager
- 配置主机IP地址
- 配置主机yum客户端
- 创建cinder-volumes的卷组
- 导入公钥
- 安装依赖的软件包
安装环境前的准备
物理机:
安装配置dns, 能作为转发dns服务器即可
yum provides named
yum -y install bind-9.9.4-50.el7.x86_64
vim /etc/named.conf
options {
listen-on port 53 { 192.168.1.254; }; //这个是真机的 vbr 网桥的IP
//listen-on-v6 port 53 { ::1; }; ///注释掉这一行 IPV6 的
allow-query { any; }; ///这一行括号改成any
recursion yes;
forwarders { 176.233.0.227; }; //真机的DNS地址
dnssec-enable no; // yes 改成no
dnssec-validation no; // yes 改成no
systemctl restart named //重启服务
systemctl enable named //开机自起
安装配置时间服务器 chronyd server
vim /etc/chrony.conf //添加以下配置
server ntp1.aliyun.com iburst //指定阿里云的时间服务器
bindacqaddress 0.0.0.0 //默认只能自己访问 加上这一行允许任何人访问
allow 0/0
stemctl restart chronyd.service //重起服务
chronyc sources -v //测试成功同步与否
? 不成功 + 备胎 星 是成功 - 是有差距
^*120.25.115.20 2 10 377 782 -835us[ -789us] +/- 21ms
添加一个网桥 vbr1 不需要能上网
cd /etc/libvirt/qemu/networks/
cp vbr.xml vbr1.xml
vim vbr1.xml //vbr.xml参照前边的vbr.xml
cd /etc/libvirt/qemu/networks/
virsh net-autostart vbr1 开机自启 网卡
配置2个虚拟机
1.安装管理节点最少 8G内存
单独添加一块硬盘给openstack cinder 使用20G
单独添加一块网卡 使用vbr1
cd /etc/libvirt/qemu/
cp centos7.example.xml node1.xml 以下蓝的必须一样
vim node1.xml
node1 //名字改成node1
9 //大于给的内存 上面说的给8G
9 //大于给的内存
cd /var/lib/libvirt/images/
qemu-img create -b node.qcow2 -f qcow2 node1.img 200G
qemu-img create -f qcow2 disk.img 20G
cd /etc/libvirt/qemu/
virsh define node1.xml
virsh start node1
virsh console node1
yum -y install cloud-utils-growpart-0.29-2.el7.noarch
growpart /dev/vda 1 //这是先扩展空间
xfs_growfs / //在扩展文件系统
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
ONBOOT=yes
NETBOOT=no
IPV6INIT=no
BOOTPROTO=none
TYPE=Ethernet
IPADDR=192.168.2.10
PREFIX=24
GATEWAY=192.168.2.254
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT=yes
NETBOOT=no
IPV6INIT=no
BOOTPROTO=none
TYPE=Ethernet
IPADDR=192.168.1.10
PREFIX=24
GATEWAY=192.168.1.254
2.安装 nova 节点 最少5G 内存
单独添加一块网卡 使用vbr1
cd /etc/libvirt/qemu/
cp centos7.example.xml node2.xml 以下蓝的必须一样
vim node1.xml
cd /var/lib/libvirt/images/
qemu-img create -b node.qcow2 -f qcow2 node2.img 200G
cd /etc/libvirt/qemu/
virsh define node2.xml
virsh start node2
virsh console node2
yum -y install cloud-utils-growpart-0.29-2.el7.noarch
growpart /dev/vda 1 //这是先扩展空间
xfs_growfs / //在扩展文件系统
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
ONBOOT=yes
NETBOOT=no
IPV6INIT=no
BOOTPROTO=none
TYPE=Ethernet
IPADDR=192.168.2.11
PREFIX=24
GATEWAY=192.168.2.254
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT=yes
NETBOOT=no
IPV6INIT=no
BOOTPROTO=none
TYPE=Ethernet
IPADDR=192.168.1.11
PREFIX=24
GATEWAY=192.168.1.254
部署安装环境
物理机
cd /var/ftp/
mkdir openstack
mkdir openstack.ex
vim /et c/fstab
/home/CentOS7-1708.iso /var/ftp/Centos7 iso9660 defaults 0 0
/home/RHEL7-extras.iso /var/ftp/openstack.ext iso9660 defaults 0 0
/home/RHEL7OSP-10.iso /var/ftp/openstack iso9660 defaults 0 0
/home/CentOS7-1708.iso RHEL7-extras.iso RHEL7OSP-10.iso 这三个镜像必须在物理机的/home下
[root@hanhan openstack]# pwd
/var/ftp/openstack
[root@hanhan openstack]# ls
docs rhel-7-server-rhceph-2-osd-rpms
rhel-7-server-openstack-10-devtools-rpms rhel-7-server-rhceph-2-tools-rpms
rhel-7-server-openstack-10-optools-rpms rhel-7-server-rhscon-2-agent-rpms
rhel-7-server-openstack-10-rpms rhel-7-server-rhscon-2-installer-rpms
rhel-7-server-openstack-10-tools-rpms rhel-7-server-rhscon-2-main-rpms
rhel-7-server-rhceph-2-mon-rpms version.txt
[root@hanhan openstack.ext]# ls
comps.xml Packages repodata version.txt
[root@hanhan openstack.ext]# pwd
/var/ftp/openstack.ext
2台虚拟机的部署
yum search wget
yum -y install wget.x86_64
wget ftp://176.233.4.242/Centos7/RPM-GPG-KEY-CentOS-7
rpm --import RPM-GPG-KEY-CentOS-7 导入公钥
配置YUM源
vim /etc/yum.repos.d/dvd.repo
[centos7]
name=centos7
baseurl=ftp://192.168.1.254/Centos7
enabled=1
gpgcheck=1 //必须是1
[openstack1]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-devtools-rpms
enabled=1
gpgcheck=0
[openstack2]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-optools-rpms
enabled=1
gpgcheck=0
[openstackopenstackopenstack3]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-rpms
enabled=1
gpgcheck=0
[openstackopenstack4]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-tools-rpms
enabled=1
gpgcheck=0
[openstack5]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-mon-rpms
enabled=1
gpgcheck=0
[openstack6]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-osd-rpms
enabled=1
gpgcheck=0
[openstack7]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-tools-rpms
enabled=1
gpgcheck=0
[openstack8]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-agent-rpms
enabled=1
gpgcheck=0
[openstack9]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-installer-rpms
enabled=1
[openstack10]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-main-rpms
enabled=1
gpgcheck=0
[openstack11]
name=centos7
baseurl=ftp://192.168.1.254/openstack.ext
enabled=1
gpgcheck=0
scp /etc/yum.repo.d/dvd/repo 192.168.1.11:/etc/yum.repo.d/
配置时间同步
vim /etc/chrony.conf
server 192.168.1.254 iburst
yum -y install ntpdate
ntpdate 192.168.1.254
在10这台虚拟机上部署
1.pvcreate /dev/vdb //创建物理卷
2.vgcreate cinder-volumes /dev/vdb创建逻辑卷名字是cinder-volumes 名字必须是这个
3.安装依赖包yum install -y qemu-kvm 、libvirt-client、libvirt-daemon 、 libvirt-daemon-driver-qemu、 python-setuptools
配置 packstack
安装packstack
[root@vh02 ~]# yum install -y openstack-packstack
[root@vh02 ~]# packstack --gen-answer-file answer.ini //创建一个应答文件的模板
修改应答文件
[root@nova ~]# vim answer.ini
CONFIG_DEFAULT_PASSWORD=Taren1 //11行设置个密码
CONFIG_SWIFT_INSTALL=n //42行
CONFIG_NTP_SERVERS=192.168.1.254 //75行 NTPserver 的地址
CONFIG_COMPUTE_HOSTS=192.168.1.10,192.168.1.11 //98行
CONFIG_COMPUTE_HOSTS=192.168.1.10,192.168.1.11 //102行必须是同一网段的
CONFIG_CINDER_VOLUMES_CREATE=n //554行 禁止主机自己创建逻辑卷
CONFIG_CINDER_VOLUMES_SIZE=20G //561行逻辑卷的大小和咱们上面创建的一致
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan //840行
CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5 //876行配置一个组播地址
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex //910行把一个物理网络映射给一个设备
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 //921 绑定一个物理网络 上边指定的
CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1 //936 隧道网络配置
CONFIG_PROVISION_DEMO=n //1179 demo测试改成no
安装openstack
packstack --answer-file answer.ini
如果出现SSSE3报错
修改如图
配置下面的复合主机打V (勾) 2台虚拟机 关机执行
在11上装 libvirt-client 包
在执行安装命令就OK了
配置外部OVS网桥
配置br-ex为外部OVS网桥 以下是运行成功自动生成的
[root@nova ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex
ONBOOT="yes"
NM_CONTROLLED="no"
IPADDR="192.168.1.66"
PREFIX="24"
GATEWAY="192.168.1.254"
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs //驱动协议
OVSBOOTPROTO="static" //手动配置
TYPE=OVSBridge
配置外部OVS网桥端口
• 配置eth0为外部OVS网桥的端口
[root@nova ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
验证OVS配置
- ovs-vsctl show
- ip -o addr show
[root@nova ~]# ovs-vsctl show
Bridge br-ex
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
... ...
Port br-ex
Interface br-ex
type: internal
Port "eth0"
Interface "eth0"
• 安装虽然没有报错,但默认无法打开 Horizon,这是
一个软件的配置 BUG
– /etc/httpd/conf.d/15-horizon_vhost.conf
– WSGIApplicationGroup %{GLOBAL}
ServerAlias localhost
WSGIDaemonProcess apache group=apache processes=3
threads=10 user=apache
WSGIProcessGroup apache
WSGIApplicationGroup %{GLOBAL} <--- 这里添加
重新载入配置文件 apachectl graceful基本配置
剩下的在图形界面操作这里不多做解释