openstack
环境准备
基础条件:CentOS或Redhat裸机一台,内存16G以上,并自行安装基础工具包(net-tools及vim等)
配置物理机YUM源(请使用官方提供的最完整的仓库)
TIPS: 前面的步骤均为环境准备,具体安装步骤请看该博客最后部分
搭建KVM平台
yum -y install qemu-kvm \
> libvirt-client \
> livbirt-daemon \
> libvirt-daemon-driver-qemu
systemctl restart libvirtd
物理机:添加一个虚拟网卡
vim /etc/libvirt/qemu/network/vbr.xml
vbr
virsh net-define vbr.xml ##创建虚拟网络
virsh net-start vbr ##启动虚拟网络
virsh net-autostart vbr ##设置vbr虚拟网络开机自启动
virsh net-list ##查看虚拟网络
物理机:搭建FTP服务(保证与虚拟机的文件传输)
yum -y install vsftpd
vim /etc/vsftpd/vsftpd.conf
listen=YES
listen_ipv6=NO
systemctl start vsftpd
systemctl enable vsftpd
物理机:搭建DNS和NTP服务
yum -y install bind-chroot
vim /etc/named.conf
listen-on port 53 { 192.168.1.254; };
allow-query { any; };
forwarders { 202.106.196.115; };
dnssec-enable no;
dnssec-validation no;
systemctl restart named
yum -y install chrony
vim /etc/chrony.conf
server ntp1.aliyun.com iburst
bindacqaddress 0.0.0.0
allow 0/0
systemctl restart chronyd
chronyc sources -v
虚拟机openstack,nova:
yum -y install chrony
vim /etc/chrony.conf
server 192.168.1.254 iburst
systemctl restart chronyd
chronyc sources -v
创建后端模板虚拟机
qemu-img create -f qcow2 node.qcow2 8G ##创建后端盘
在virt-manager中使用该后端盘新建一台虚拟机,具体操作如下:
选择网络安装
-->URL: ftp://176.204.xx.xx/centos
-->RAM: 2048MiB CPU: 2
-->选择或创建自定义存储 /var/lib/libvirt/images/node.qcow2
-->选择网络 虚拟网络'vbr':NAT
-->最小化分区Minimal Install
-->关闭 KUDMP
-->选择手动分区 I will configure partitioning
-->New mount points will use the following partitioning scheme:
Standard Partition
选择 /
设置root密码,并等待安装完成
进入后端模板虚拟机:
vim /etc/selinux/config ##禁用selinux
cd /etc/yum.repos.d/
rm -f *
vi centos.repo
[local_source]
name=centos
baseurl=ftp://192.168.1.254/centos
enabled=1
gpgcheck=0
yum repolist
yum -y install vim net-tools
卸载防火墙和NetworkManager
yum -y remove firewalld-*
yum -y remove python-firewall
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
IPV6INIT=no
TYPE=Ethernet
BOOTPROTO=dhcp
yum -y remove NetworkManager-*
systemctl stop NetworkManager
systemctl restart network
ip route show ##将看到一条空路由,会有一定的影响
vim /etc/sysconfig/network
NOZEROCONF=yes ##添加本行,禁用空路由
systemctl restart network
ip route show
导入gpg key
yum -y install lftp
vim /etc/yum.repos.d/centos.repo
gpgcheck=1 ##仅修改本行
lftp 192.168.1.254/centos
>get RPM-GPG-KEY-CentOS7
>bye
rpm --import RPM-GPG-KEY-CentOS7
yum -y install psmisc ##验证导入KEY后能否安装软件
打开串口终端,方便使用virsh console连接
vim /etc/sysconfig/grub
GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=ttyS0,115200n8"
GRUB_DISABLE_LINUX_UUID="true"
GRUB_ENABLE_LINUX_LABEL="true"
grub2-mkconfig -o /boot/grub2/grub.cfg ##重新生成grub.cfg
vim /etc/fstab
##将UUID修改为/dev/vda1
安装分区扩展软件(有扩容需求时执行)
yum -y install cloud-utils-growpart
shutdown
物理机:virt-sysprep -d node ##执行信息清理工作
快速创建虚拟机
virsh undefine node ##取消定义,保证后端模板只读
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 -b node.qcow2 node1.img 30G
sed 's,node,node1,' /root/node.xml > /etc/libvirtd/qemu/node1.xml
virsh define /etc/libvirtd/qemu/node1.xml
virsh start node1
添加一块新的网卡和设备
virsh console node1
ip link show
Ctrl + ] ##退出虚拟机,进入物理机
virsh edit node1
##在第一个 后添加4行
poweroff -p
virsh start --console node1
ip link show
ifconfig -a
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth1
vim ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
IPV6INIT=yes
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.4.100
PREFIX=24
systemctl restart network
物理机:为虚拟机node1添加一块硬盘
qemu-img create -f qcow2 disk.img 20G
virsh edit node1
halt -p
virsh start node1
lsblk
离线修改前,后端磁盘的方式(非需要操作,需谨慎)
##注意:修改后端盘后,所有前端盘都会失效
guestmount -a /var/lib/libvirt/images/node.qcow2 -i /mnt/ ##-a 指定镜像的位置 -i 指定一个空的目录
chroot /mnt/
cd /mnt/
umount /mnt
切记:每台机器只能有一个网关!
在/etc/sysconfig/network-scripts/ifcfg-eth0将网关配置为192.168.1.254
使private1能够上网
物理机:
virsh net-edit private1
虚拟机openstack:
创建openstack存储卷
yum -y install lvm2
vgcreate cinder-volumes /dev/vdb
修改centos1708YUM源的gpgcheck=1,并导入公钥,
rpm --import RPM-GPG-KEY-CentOS-7
yum -y install qemu-kvm \
> libvirt-client \
> livbirt-daemon \
> libvirt-daemon-driver-qemu \
> python-setuptools
最后的环境检测
sestatus ##查看SELinux状态并禁用
rpm -qa |grep firewall ##查看是否已卸载防火墙
rpm -qa |grep NetworkManager ##查看是否已卸载NetworkManager
ping 192.168.4.xx ##查看ip是否正确
yum repolist ##查看YUM源
vgs ##查看是否存在cinder-volumes卷组
gpgcheck=1 ##查看是否已修改第一个系统源的gpgcheck=1
virsh ##查看KVM平台是否搭建成功
##注意:需修改所有ip为静态IP,取消DHCP服务
##两台虚拟机均需符合以上配置:第一台修改主机名为openstack,内存8G;第二台修改主机名为nova,内存6G
开始安装openstack
虚拟机openstack:
yum -y install openstack-packstack
packstack --gen-answer-file answer.ini ##ini文件自带颜色,便于发现错误
vim answer.ini ##修改应答文件
CONFIG_DEFAULT_PASSWORD=Taren1 ##第11行
CONFIG_CINDER_INSTALL=n ##第25行 使用本机硬盘存储,不适用共享存储
CONFIG_SWIFT_INSTALL=n ##第42行
CONFIG_NTP_SERVERS=192.168.1.254 ##第75行
CONFIG_CINDER_VOLUMES_CREATE=n ##第554行
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行
packstack --answer-file answer.ini
openstack安装完成后
vim /etc/httpd/conf.d/15-horizon_vhost.conf
WSGIApplicationGroup %{GLOBAL} ##添加本行
apachectl graceful
在虚拟机家目录下:
cat ~/keystonerc_admin ##查看密码
物理机:
firefox 192.168.1.100 ##通过浏览器访问dashboard,可以看到登录页面