Day68
私有云管理
项目管理
概念
项目是由admin角色的用户创建的
项目:一组隔离的资源和对象。由一组关联的用户进行管理。
根据配置的需求,项目对应一个组织、一个公司或是一个使用客户等。
项目中可以有多个用户,项目中的用户用来管理虚拟资源
项目相关信息保存到数据库中
默认项目
缺省情况下,packstack安装的openstack中有两个独立的项目。
admin:为admin账户创建的项目
services:与安装的各个服务相关联
Horizon创建项目
通过命令行管理项目
创建名为tedu项目
openstack project create tedu
查看项目
openstack project list
删除myproject
openstack project delete tedu
用户管理
用户定义
用户在openstack中用于身份认证
管理用户admin一般在packstack安装过程中创建
其他用户由管理员创建,并指定可以访问的项目
非管理员创建后保存到数据库
用户权限
非管理员用户具有以下权限
启动实例
创建镜像
分配浮动IP
创建网络和路由器
创建防火墙以及规则、规则策略
查看网络拓扑、项目使用状况等
创建用户
命令行管理用户
创建uu用户,指定密码xxx
openstack user create --password xxx uu
列出已有用户
openstack user list
删除用户
openstack user delete uu
修改密码
openstack user set --password redhat uu
云主机类型
云主机类型就是资源的模板
它定义了一台云主机可以使用的资源,如内存大小、磁盘容量和CPU核心数等
openstack提供了几个默认的云主机类型
管理员还可以自定义云主机类型
云主机类型参数
Name:云主机类型名称
ID:云主机类型ID,系统自动生成一个UUID
VCPUs:虚拟cpu数目
RAM(MB):内存大小
Root disk(GB):外围磁盘大小
临时磁盘:第二外围磁盘
swap磁盘:交换磁盘大小
Horizon管理云主机类型
命令行管理云主机类型
创建一个云主机类型demo.tiny
openstack flavor create --public demo.tiny --id auto --ram 512 --disk 10 —vcup 1
列出所有的云主机类型
openstack flavor delete demo.tiny
删除云主机类型
openstack flavor delete demo.tiny
镜像管理
基本概念
在红帽Openstack平台中,镜像指的是虚拟机磁盘文件。
磁盘文件中应该已经安装了可启动的操作系统。
镜像管理功能由Glance服务提供
它形成了创建虚拟机实例最底层的块结构
镜像可以由用户自己制作,也可以从红帽子官方站点下载
镜像磁盘格式
raw:非结构化磁盘镜像格式
vhd:VMware、Xen、Mycrosoft、VirtualBox 等均支持的磁盘格式。
vmdk:是Vmware的虚拟磁盘格式
vdi:VirtualBox虚拟机和QEMU支持的磁盘格式
iso:光盘数据内容的归档格式
qcow2: QEMU支持的磁盘格式。空间自动扩展,并支持写时复制copy-on-write
镜像容器支持的格式
bare:镜像中没有容器或元数据封装
ovf:一种开源的文件规范,描述了一个开源、安全、有效、可拓展的便携式虚拟打包以及软件分布格式
ova:亚马逊内核镜像
ami:亚马逊主机镜像
通过命令行管理镜像
上传镜像
openstack image create --disk-format qcow2 --file /root/small.img Redhat-6
列出已有镜像
openstack image list
删除镜像
openstack image delete Redhat-6
虚拟化网络
云网络管理
网络管理
实例被分配到子网中,以实现网络连通性
每个项目可以有一到多个子网
每个项目都能拥有多个私有网络
各个项目的私有网络相互不受干扰
网络间可用VLAN隔离
提供商网络:
将实例连接到现有网络,实现虚拟机实例与外部系统共享一二层网络
通过Horizon设置外部网络
1)登陆admin用户,创建外网public
2)退出admin用户 ,登陆uu用户,创建public的子网wan
3)public外网不需要激活DHCP
4)创建内网lan
5)创建lan的子网
7)给内网分配地址池
8)新建路由
9)选择路由子网
配置云主机
云主机管理
创建云主机
浮动IP与安全组
浮动IP是干什么用的
浮动IP一般花钱购买的
浮动IP地址用于从外界访问虚拟机实例
浮动IP地址只能从现有浮动IP地址池中分配
虚拟机实例启动后,可以为其关联一个浮动IP地址
虚拟机实例也可以接触IP地址绑定
创建浮动IP
安全组
安全租用于控制对虚拟机实例的访问
安全组在高层定义了那些网络及哪些协议是被授权可以访问虚拟机实例的
每个项目都可定义自己的安全组
项目成员可以编辑默认的规则,也可以添加新的规则
每个规则都有出和入两个方向
所有项目都有一个默认的default安全组
设置安全组规则,允许外界ping通云主机
计算机节点扩容
基础环境准备
[root@nova02 ~]# vim /etc/selinux/config
# 修改 SELINUX=disabled
[root@nova02 ~]# yum -y remove firewalld-*
[root@nova02 ~]# reboot
# 重启后验证
[root@nova02 ~]# sestatus
SELinux status: disabled
[root@nova02 ~]# rpm -qa |grep -i firewalld
[root@nova02 ~]#
卸载 NetworkManager
[root@nova02 ~]# systemctl stop NetworkManager
[root@nova02 ~]# yum remove -y NetworkManager
[root@nova02 ~]# systemctl enable --now network
网卡配置文件
[root@nova02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.1.12"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.254"
Yum安装源配置
确认软件包总数是 10670
[root@nova02 ~]# 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@nova02 ~]# yum makecache
[root@nova02 ~]# 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@nova02 ~]# vim /etc/chrony.conf
# 注释掉所有 server 开头的行,添加
server 192.168.1.250 iburst
[root@nova02 ~]# systemctl restart chronyd
[root@nova02 ~]# chronyc sources -v # 验证配置 ^* 代表成功
主机名与DNS配置
[root@nova02 ~]# 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@nova02 ~]# sed '/^search /d' -i /etc/resolv.conf
nova虚拟环境安装
[root@nova02 ~]# yum install -y qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools
[root@nova02 ~]# systemctl enable --now libvirtd
[root@nova02 ~]# virsh version # 验证
nova02安装
在 openstack 上安装 nova02,修改第一次安装的配置文件,不能重新生成!!!
[root@openstack ~]# vim answer.ini
98: CONFIG_COMPUTE_HOSTS=192.168.1.12
102: CONFIG_NETWORK_HOSTS=192.168.1.12
安装过程大约 10 ~ 30 分钟不等
[root@openstack ~]# packstack --answer-file=answer.ini
web页面登录
修改 apache 配置
[root@openstack ~]# vim /etc/httpd/conf.d/15-horizon_vhost.conf
# 在配置文件倒数第三行添加
WSGIApplicationGroup %{GLOBAL}
[root@openstack ~]# systemctl reload httpd
浏览器访问 http://192.168.1.10/
openstack错误分析:
1)进入控制台不显示内容
解决办法:可以重新启动一下openstack-nova-console
2)若出现云主机处于错误状态
解决办法:
可能是主机down掉
可能是内存不足
可能是内网出现了问题,检查内网,或者把内网删除(不会建立的可以参考案例4),重新建立,之后重新启动openstack
[root@openstack ~]# systemctl restart openstack-nova-compute
WSGIApplicationGroup %{GLOBAL}
[root@openstack ~]# systemctl reload httpd
浏览器访问 http://192.168.1.10/
openstack错误分析:
1)进入控制台不显示内容
[外链图片转存中…(img-OoYxzR8D-1607559272987)]
解决办法:可以重新启动一下openstack-nova-console
2)若出现云主机处于错误状态
[外链图片转存中…(img-119UKEPZ-1607559272988)]
解决办法:
可能是主机down掉
可能是内存不足
可能是内网出现了问题,检查内网,或者把内网删除(不会建立的可以参考案例4),重新建立,之后重新启动openstack
[root@openstack ~]# systemctl restart openstack-nova-compute