云虚拟化教程 openstack安装教程
[root@localhost ~]# grep -P "vmx|svm" /proc/cpuinfo #查看是否支持虚拟化
[root@localhost ~]# lsmod |grep kvm
[root@localhost ~]# yum install -y qemu-kvm \ libvirt-daemon \ libvirt-daemon-driver-qemu \ libvirt-client[root@localhost ~]# systemctl enable --now libvirtd[root@localhost ~]# virsh version #安装 libvirtd
硬盘文件 /var/lib/libvirt/images/
配置文件 /etc/libvirt/qemu/
[root@localhost ~]# cp cirros.qcow2 /var/lib/libvirt/images/
[root@localhost ~]# cp cirros.qcow2 /var/lib/libvirt/images/
[root@localhost ~]# cd /var/lib/libvirt/images/
[root@localhost ~]# qemu-img create -f qcow2 -b cirros.qcow2 vmhost.img 30G
[root@localhost ~]# qemu-img info vmhost.img #查看信息
创建配置文件 /etc/libvirt/qemu/networks/vbr.xml
[root@localhost ~]# vim /etc/libvirt/qemu/networks/vbr.xml
<network>
<name>vbr</name>
<forward mode='nat'/>
<bridge name='vbr' stp='on' delay='0'/>
<ip address='192.168.100.254' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.100.100' end='192.168.100.200'/>
</dhcp>
</ip>
</network>
创建虚拟交换机
[root@localhost ~]# cd /etc/libvirt/qemu/networks/
[root@localhost ~]# virsh net-define vbr.xml
[root@localhost ~]# virsh net-start vbr
[root@localhost ~]# virsh net-autostart vbr
[root@localhost ~]# ifconfig # 查看验证

虚拟机配置文件
官方文档地址 https://libvirt.org/format.html
修改配置文件,启动运行虚拟机
[root@localhost ~]# cp node_base.xml /etc/libvirt/qemu/vmhost.xml
[root@localhost ~]# vim /etc/libvirt/qemu/vmhost.xml
2: <name>vmhost</name>
3: <memory unit='KB'>1024000</memory>
4: <currentMemory unit='KB'>1024000</currentMemory>
5: <vcpu placement='static'>2</vcpu>
26: <source file='/var/lib/libvirt/images/vmhost.img'/>
创建虚拟机
[root@localhost ~]# virsh list
[root@localhost ~]# virsh define /etc/libvirt/qemu/vmhost.xml
[root@localhost ~]# virsh start vmhost
[root@localhost ~]# virsh console vmhost # 两次回车
退出使用 ctrl + ]
使用 lrzsz 上传下载文件
[root@localhost ~]# yum install lrzsz

[root@openstack ~]# openstack user list
Missing value auth-url required for auth plugin password
# 没有登录获取数据失败
[root@openstack ~]# source keystonerc_admin
[root@openstack ~(keystone_admin)]# openstack user list
组件
Horizon 组件,提供web管理界面
Keystone 组件,提供集中的认证和授权
Nova 组件,计算节点创建管理云主机
Glance 组件,管理云主机镜像
Swift 组件,存储云使用的对象存储服务
Neutron 组件,管理云服务的内部、外部网络路由等
Cinder 组件,管理云主机的存储卷服务
安装
[root@repo ~]# yum install -y chrony
[root@repo ~]# vim /etc/chrony.conf
# 注释掉所有 server 开头的行,添加
server ntp.aliyun.com iburst
bindacqaddress 0.0.0.0
allow 0/0
local stratum 10
[root@repo ~]# systemctl enable chronyd
[root@repo ~]# systemctl restart chronyd
[root@repo ~]# ss -ltun # 查看 123 端口是否被监听成功
[root@repo ~]# yum install -y vsftpd
[root@repo ~]# systemctl enable --now vsftpd
[root@repo ~]# mkdir -p /var/ftp/{extras,openstack}
[root@repo ~]# cd /var/iso
[root@repo ~]# mount -t iso9660 -o ro,loop RHEL7-extras.iso /var/ftp/extras
[root@repo ~]# mount -t iso9660 -o ro,loop RHEL7OSP-10.iso /var/ftp/openstack
# 在openstack上验证
[root@openstack ~]# curl ftp://192.168.1.250/extras/
[root@openstack ~]# curl ftp://192.168.1.250/openstack/
[root@openstack ~]# vim /etc/selinux/config
# 修改 SELINUX=disabled
[root@openstack ~]# yum -y remove firewalld-*
[root@openstack ~]# reboot
# 重启后验证
[root@openstack ~]# sestatus
SELinux status: disabled
[root@openstack ~]# rpm -qa |grep -i firewalld
[root@openstack ~]#
卸载 NetworkManager
[root@openstack ~]# systemctl stop NetworkManager
[root@openstack ~]# yum remove -y NetworkManager
[root@openstack ~]# systemctl enable --now network
网卡配置文件注解
# Generated by dracut initrd # 注释
DEVICE="eth0" # 驱动名称,与ifconfig 看到的名称一致
ONBOOT="yes" # 开机启动
NM_CONTROLLED="no" # 不接受 NetworkManager 控制
TYPE="Ethernet" # 类型
BOOTPROTO="static" # 协议(dhcp|static|none)
IPADDR="192.168.1.10" # IP地址
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.1.254" # 默认网关
Yum安装源配置
[root@openstack ~]# vim /etc/yum.repos.d/openstack.repo
[local_extras]
name=CentOS-$releasever - Extras
baseurl="ftp://192.168.1.250/extras"
enabled=1
gpgcheck=0
[local_openstack]
name=CentOS-$releasever - OpenStack
baseurl="ftp://192.168.1.250/openstack/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[local_openstack_devtools]
name=CentOS-$releasever - Openstack devtools
baseurl="ftp://192.168.1.250/openstack/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
[root@openstack ~]# yum makecache
[root@openstack ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
CentOS-Base CentOS-7 - Base 9,911
local_extras CentOS-7 - Extras 76
local_openstack CentOS-7 - OpenStack 680
local_openstack_devtools CentOS-7 - Openstack devtools 3
repolist: 10,670
[root@openstack ~]# vim /etc/chrony.conf
# 注释掉所有 server 开头的行,添加
server 192.168.1.250 iburst
[root@openstack ~]# systemctl restart chronyd
[root@openstack ~]# chronyc sources -v # 验证配置 ^* 代表成功
[root@openstack ~]# vim /etc/hosts
192.168.1.10 openstack
192.168.1.11 nova01
192.168.1.12 nova02
192.168.1.250 repo
# 删除所有 search 开头的行
[root@openstack ~]# sed '/^search /d' -i /etc/resolv.conf
[root@nova01 ~]# yum install -y qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools
[root@nova01 ~]# systemctl enable --now libvirtd
[root@nova01 ~]# virsh version # 验证
[root@openstack ~]# vim /etc/hosts
192.168.1.10 openstack
192.168.1.11 nova01
192.168.1.12 nova02
192.168.1.250 repo
# 删除所有 search 开头的行
[root@openstack ~]# sed '/^search /d' -i /etc/resolv.conf
packstack工具安装
只需要在 openstack 上安装即可
[root@openstack ~]# yum install -y python-setuptools openstack-packstack
# 创建应答文件
[root@openstack ~]# packstack --gen-answer-file=answer.ini
# 修改应答文件
42: CONFIG_SWIFT_INSTALL=n //存储对象组件
45: CONFIG_CEILOMETER_INSTALL=n //计费模块
49: CONFIG_AODH_INSTALL=n //计费模块
53: CONFIG_GNOCCHI_INSTALL=n //计费模块
75: CONFIG_NTP_SERVERS=192.168.1.250 //时间服务器
98: CONFIG_COMPUTE_HOSTS=192.168.1.11 //计算节点IP
102: CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11 //网络节点IP
333: CONFIG_KEYSTONE_ADMIN_PW=a //管理员密码
840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan //支持协议
910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex //网桥设备
921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 //出口网卡
1179: CONFIG_PROVISION_DEMO=n //演示模块
openstack安装
使用应答文件安装,只需要在 openstack 上安装即可
[root@openstack ~]# packstack --answer-file=answer.ini
修改 apache 配置
[root@openstack ~]# vim /etc/httpd/conf.d/15-horizon_vhost.conf
# 在配置文件倒数第三行添加
WSGIApplicationGroup %{GLOBAL}
[root@openstack ~]# systemctl reload httpd
[root@openstack ~]# openstack user list
Missing value auth-url required for auth plugin password
# 没有登录获取数据失败
[root@openstack ~]# source keystonerc_admin
[root@openstack ~(keystone_admin)]# openstack user list