openstack详细安装配置过程
搭建yum源:
1 [root@roompc901 yum.repos.d]# vim /etc/fstab 2 /var/lib/libvirt/images/iso/CentOS7-1708.iso /local_repo iso9660 defaults 0 0
虚拟机的模板配置:
1 [root@roompc901 ~]# cd /etc/libvirt/qemu/networks/ 2 [root@roompc901 networks]# cd autostart/ 3 [root@roompc901 autostart]# rm -f * 4 [root@roompc901 autostart]# cd .. 5 [root@roompc901 networks]# virsh 6 [root@roompc901 networks]# virsh net-define vbr.xml 7 virsh # net-start vbr 8 virsh # net-autostart private1
创建虚拟机模板:
1 [root@roompc901 images]# qemu-img create -f qcow2 demo.img 2 3 [root@roompc901 ~]# systemctl restart libvirtd.service 4 5 [root@roompc901 networks]# ps -efww | grep -i qemu //查看已启动虚拟机的进程信息 6 [root@centos7 ~]# yum provides ifconfig //查看yum源中的ifconfig文件位置
yum源的key验证:
下载RPM-GPG-KEY-CentOS-7
导入 :
1 [root@roompc901 networks]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
修改:gpgcheck=1
使用:yum install lftp lrzsz 验证
1 [root@centos7 ~]# yum list | grep bash //查看是否安装tab 2 bash-completion.noarch 3 [root@centos7 ~]# yum install lftp bridge-utils 4 [root@centos7 ~]# lftp 192.168.1.254 5 lftp 192.168.1.254:~> ls 6 drwxr-xr-x 8 0 0 2048 Sep 05 2017 CentOS7
删除网络配置里的个性化信息
– /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT="yes“
IPV6INIT="no"
TYPE="Ethernet"
BOOTPROTO ="dhcp"
– 禁用空路由
– /etc/sysconfig/network
NOZEROCONF="yes"
– 重新生成 grub.cfg
[root@centos7 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
安装分区扩展软件
1 [root@localhost ~]# yum install -y cloud-utils-growpart 2 virt-sysprep -d 虚拟机名称 3 [root@roompc901 libvirt]# yum provides virt-sysprep 4 [root@roompc901 libvirt]# yum -y install libguestfs-tools-c-1.36.3-6.el7.x86_64 5 [root@roompc901 libvirt]# virt-sysprep -d centos7.0 6 [root@roompc901 libvirt]# virsh undefine centos7.0 7 [root@roompc901 libvirt]# cd /var/lib/libvirt/images/ 8 [root@roompc901 images]# qemu-img create -b demo.img -f qcow2 demo1.img 32G 9 [root@roompc901 nsd1804]# sed 's/node/node1/' node.xml >/etc/libvirt/qemu/node1.xml 10 [root@roompc901 nsd1804]# vimdiff node.xml node.xml.bak
1)创建 2 个虚拟机
要求:
虚拟机1
8G 内存
2块网卡
第一块网卡连接虚拟交换机 vbr
第二块网卡连接虚拟交换机 private1
设置静态 IP,默认网关 192.168.1.254
2块硬盘
其中 / 的 vda1 要求 50G
vdb 20G
2)虚拟机2
6G 内存
2块网卡
第一块网卡连接虚拟交换机 vbr
第二块网卡连接虚拟交换机 private1
设置静态 IP,默认网关 192.168.1.254
要求与第一台虚拟主机的两个 IP 都能 ping 通
硬盘
/ 的 vda1 要求 50G
添加网卡
添加硬盘
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 disk.img 20G
############################################################
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 demo.img 8G
准备环境 (真机)
禁用 selinux 配置文件 /etc/selinux/config
SELINUX=disabled
禁用 firewalld
systemctl stop firewalld
systemctl (un)mask firewalld
1 yum 源的安装和配置(网络yum源)
光盘作为 yum 源 CentOS7-1708.iso (共9591包)
有 repodata 目录的才可以作为 yum 源
自定义 yum 源
创建一个 repodata
createrepo .
更新
createrepo --update .
2 dns 服务
yum install bind bind-chroot
编辑配置文件 named.conf
listen-on port 53 { 192.168.1.254; };
allow-query { any; };
forwarders { 202.106.196.115; };
dnssec-enable no;
dnssec-validation no;
[root@openstack ~]# yum -y install bind-utils
[root@nova01 ~]# yum -y install bind-utils
3 时间服务器
yum install -y chrony
server:配置 /etc/chrony.conf
server ntp1.aliyun.com iburst
bindacqaddress 0.0.0.0
allow 0/0
client:配置 /etc/chrony.conf
server 192.168.1.254 iburst
检查状态
chronyc sources -v
* 同步成功,+ 备胎 , ? 同步失败
#######################################################################
初始化虚拟机
1 修改 /etc/selinux/config
SELINUX=disabled
2 配置网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0
3 停止 firewalld NetworkManager
systemctl stop firewalld
systemctl stop NetworkManager
4 卸载
yum remove -y NetworkManager-* firewalld-* python-firewall
5 重启机器
6 配置 yum 源
[local_repo]
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/centos7"
enabled=1
gpgcheck=0
7 安装软件
yum provides 命令
yum install 包名
8 验证数字签名
下载 RPM-GPG-KEY-CentOS-7
导入 rpm --import RPM-GPG-KEY-CentOS-7
修改 local.repo gpgcheck=1
使用 yum install lftp lrzsz 验证
9 配置网络,禁用空路由
配置文件 /etc/sysconfig/network
NOZEROCONF="yes"
网卡配置文件见范例
10 添加串口终端
配置文件 /etc/default/grub
修改内容看范例
修改完成之后创建引导文件
grub2-mkconfig -o /boot/grub2/grub.cfg
11 修改 fstab
blkid
修改 UUID=xxxxxx 为 /dev/xvda1
12 安装分区扩展软件
yum install -y cloud-utils-growpart
扩展磁盘分区空间(让 /dev/vda1 变大)
/usr/bin/growpart /dev/vda 1
扩展文件系统识别空间(让 df -h 可使用空间变大)
/usr/sbin/xfs_growfs /
13 关闭虚拟机,清理信息 (真机)
设置语言为英文 LANG=en_US.UTF-8
virt-sysprep -d 虚拟机名称
14 删除虚拟机定义
virsh undefine centos7.0
15 快速创建虚拟机
例如创建虚拟机 node1
创建磁盘文件
cd /var/lib/libvirt/images
qemu-img create -b node.img -f qcow2 node1.img 32G
创建虚拟机配置文件
sed 's/node/node1/' node.xml >/etc/libvirt/qemu/node1.xml
virsh define /etc/libvirt/qemu/node1.xml
启动虚拟机
virsh start node1
连接查看虚拟机
virsh console node1
#-----------------------------------------#
添加网卡
添加硬盘
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 disk.img 20G
#-----------------------------------------#
创建 2 个虚拟机
要求:
虚拟机1
8G 内存
2块网卡
第一块网卡连接虚拟交换机 vbr
第二块网卡连接虚拟交换机 private1
设置静态 IP,默认网关 192.168.1.254
2块硬盘
其中 / 的 vda1 要求 50G
vdb 20G
虚拟机2
6G 内存
2块网卡
第一块网卡连接虚拟交换机 vbr
第二块网卡连接虚拟交换机 private1
设置静态 IP,默认网关 192.168.1.254
要求与第一台虚拟主机的两个 IP 都能 ping 通
硬盘
/ 的 vda1 要求 50G
/etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="none"
IPADDR="192.168.1.2"
PREFIX="24"
GATEWAY="192.168.1.254"
配置网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth1
# Generated by dracut initrd
DEVICE="eth1"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="none"
IPADDR="192.168.4.2"
PREFIX="24"
# 环境检查
sestatus 检查 selinux 是否关闭了
rpm -qa |grep -P "firewalld|NetworkManager" 是否卸载了 NetworkManager 和 firewalld
chronyc sources -v 检查时间服务器是否可用
nslookup 检查 dns 服务器是否可用
yum repolist 检查包 9591 个
free -m 查看内存是否够 8G
lsblk 查看是否有 20G 的 vdb 设备
ifconfig 查看是否两块网卡,而且都能 ping 通
# 配置 openstack yum 源 共 12 个 10731 包
1 [openstack_extras] 2 name=openstack extras 3 baseurl="ftp://192.168.1.254/openstack-ext" 4 enabled=1 5 gpgcheck=0 6 7 [rhel-7-server-openstack-10-devtools-rpms] 8 name=rhel-7-server-openstack-10-devtools-rpms 9 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-devtools-rpms 10 enabled=1 11 gpgcheck=0 12 13 [rhel-7-server-openstack-10-optools-rpms] 14 name=rhel-7-server-openstack-10-optools-rpms 15 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-optools-rpms 16 enabled=1 17 gpgcheck=0 18 19 [rhel-7-server-openstack-10-rpms] 20 name=rhel-7-server-openstack-10-rpms 21 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-rpms 22 enabled=1 23 gpgcheck=0 24 25 [rhel-7-server-openstack-10-tools-rpms] 26 name=rhel-7-server-openstack-10-tools-rpms 27 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-tools-rpms 28 enabled=1 29 gpgcheck=0 30 31 [rhel-7-server-rhceph-2-mon-rpms] 32 name=rhel-7-server-rhceph-2-mon-rpms 33 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-mon-rpms 34 enabled=1 35 gpgcheck=0 36 37 [rhel-7-server-rhceph-2-osd-rpms] 38 name=rhel-7-server-rhceph-2-osd-rpms 39 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-osd-rpms 40 enabled=1 41 gpgcheck=0 42 43 [rhel-7-server-rhceph-2-tools-rpms] 44 name=rhel-7-server-rhceph-2-tools-rpms 45 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-tools-rpms 46 enabled=1 47 gpgcheck=0 48 49 [rhel-7-server-rhscon-2-agent-rpms] 50 name=rhel-7-server-rhscon-2-agent-rpms 51 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-agent-rpms 52 enabled=1 53 gpgcheck=0 54 55 [rhel-7-server-rhscon-2-installer-rpms] 56 name=rhel-7-server-rhscon-2-installer-rpms 57 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-installer-rpms 58 enabled=1 59 gpgcheck=0 60 61 [rhel-7-server-rhscon-2-main-rpms] 62 name=rhel-7-server-rhscon-2-main-rpms 63 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-main-rpms 64 enabled=1 65 gpgcheck=0
Openstack
Openstack主要组件
• Horizon
– 用于管理Openstack各种服务的、基于web的管理接口
– 通过图形界面实现创建用户、管理网络、启劢实例等操作
• Keystone
– 为其他服务提供认证和授权的集中身份管理服务
– 也提供了集中的目录服务
– 支持多种身份认证模式,如果密码认证、令牌认证、以及AWS(亚马逊Web服务)登陆
– 为用户和其他服务提供了SSO认证服务
• Neutron
– 一种软件定义网络服务
– 用于创建网络、子网、路由器、管理浮劢IP地址
– 可以实现虚拟交换机、虚拟路由器
– 可用于在项目中创建VPN
• Cinder
– 为虚拟机管理存储卷的服务
– 为运行在Nova中的实例提供永久的块存储
– 可以通过快照迚行数据备份
– 经常应用在实例存储环境中,如果数据库文件
• Nova
– 在节点上用于管理虚拟机的服务
– Nova是一个分布式的服务,能够不Keystone交互实现
认证,不Glance交互实现镜像管理
– Nova被设计成在标准硬件上能够迚行水平扩展
– 启劢实例时,如果有需要则下载镜像
• Glance
– 扮演虚拟机镜像注册的角色
– 允许用户为直接存储拷贝服务器镜像
– 这些镜像可以用于新建虚拟机的模板
1. 配置主机IP地址
2. 配置主机yum客户端
3. 创建cinder-volumes的卷组
4. 导入rabbitmq的公钥
5. 安装依赖的软件包
6. 创建cinder-volumes的卷组
7. 导入公钥
8. 安装依赖的软件包
demo2:
安装 openstack
1、配置卷组,安装依赖软件包
yum install -y lvm2
pvcreate /dev/vdb
vgcreate cinder-volumes /dev/vdb
vgs
yum install -y qemu-kvm \
libvirt-daemon libvirt-client libvirt-daemon-driver-qemu \
python-setuptools
2、安装 packstack
yum -y install openstack-packstack
安装openstack的应答文件
packstack --help | grep answer
packstack --gen-answer-file=answer.ini
3、安装 openstack
yum install -y openstack-packstack
创建安装 openstack 的应答文件
packstack --gen-answer-file=answer.ini
编辑应答文件 answer.ini
配置默认密码
1 11: CONFIG_DEFAULT_PASSWORD=Taren1 //设置禁用 swift (对象存储) 模块 2 42: CONFIG_SWIFT_INSTALL=n //NTP 服务器地址 3 75: CONFIG_NTP_SERVERS=192.168.1.254 /计算节点IP地址 4 98: CONFIG_COMPUTE_HOSTS=192.168.1.19 //需要配置vxlan网络的 IP 地址 5 102: CONFIG_NETWORK_HOSTS=192.168.1.19 //禁用自动创建 cinder-volumns 卷组 6 554: CONFIG_CINDER_VOLUMES_CREATE=n //设置网络支持协议 7 840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan //设置组播地址 8 876: CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5 //设置虚拟交换机 9 910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex //设置虚拟交换机所连接的物理网卡 10 921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 //设置隧道网络使用的网卡 11 936: CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1 //禁用测试的DEMO 12 1179:CONFIG_PROVISION_DEMO=n
3、安装 openstack
安装
1 packstack --answer-file=answer.ini 2 3 **** Installation completed successfully ****** 4 5 [root@openstack ~]# ifconfig 6 br-ex: flags=4163 mtu 1500 7 8 [root@openstack ~]# vim /etc/httpd/conf.d/15-horizon_vhost.conf 9 10 WSGIApplicationGroup %{GLOBAL} 11 ServerAlias localhost 12 WSGIDaemonProcess apache group=apache processes=3 13 threads=10 user=apache 14 WSGIProcessGroup apache 15 WSGIApplicationGroup %{GLOBAL} <--- 这里为添加
• 重新载入配置文件 apache graceful
1 [root@openstack ~]# apachectl graceful 2 [root@openstack ~]# cat keystonerc_admin 3 unset OS_SERVICE_TOKEN 4 export OS_USERNAME=admin 5 export OS_PASSWORD=5931f32650194f4c 6 export OS_AUTH_URL=http://192.168.1.2:5000/v2.0 7 export PS1='[\u@\h \W(keystone_admin)]\$ ' 8 [root@roompc901 ~]# firefox http://192.168.1.2 9 [root@openstack ~]# openstack 10 (openstack) help 11 (openstack) openstack user 12 (openstack) openstack user set --password "a" u1 13 [root@openstack system]# cd /usr/lib/systemd/system 14 [root@openstack system]# ls openstack-nova-compute.service 15 [root@openstack system]# systemctl restart openstack-nova-compute.service
利用已安装openstack主机在重新安装
1 [root@nova01 ~] yum install -y qemu-kvm \ 2 libvirt-daemon libvirt-client libvirt-daemon-driver-qemu \ 3 python-setuptools 4 5 [root@openstack ~] && [root@nova01 ~]vim /etc/hosts 6 192.168.1.3 nova01 7 192.168.1.2 openstack