OpenStack私有云基础架构与运维(openEuler版)(微课版) 课件 项目3、4 云基础架构平台部署、云基础架构平台运维_第1页
OpenStack私有云基础架构与运维(openEuler版)(微课版) 课件 项目3、4 云基础架构平台部署、云基础架构平台运维_第2页
OpenStack私有云基础架构与运维(openEuler版)(微课版) 课件 项目3、4 云基础架构平台部署、云基础架构平台运维_第3页
OpenStack私有云基础架构与运维(openEuler版)(微课版) 课件 项目3、4 云基础架构平台部署、云基础架构平台运维_第4页
OpenStack私有云基础架构与运维(openEuler版)(微课版) 课件 项目3、4 云基础架构平台部署、云基础架构平台运维_第5页
已阅读5页,还剩120页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目3云基础架构平台部署知识准备项目实施拓展知识拓展任务1243学习OpenStack的多种部署方式学习Kolla-ansible概念学习Ansible概念掌握Kolla-ansible部署模式搭建云平台的技能具备OpenStack云平台部署的能力掌握云平台扩容的方法激发创新思维与探索精神,促进科学态度的形成培育诚信为本的道德品质,树立忠诚可靠的行为准则塑造精益求精的工作态度,追求严谨细致的职业风。01知识准备引言如今OpenStack日渐崛起,有很多企业采用了OpenStack,OpenStack开发者、用户遍及全球。国内OpenStack产业生态也正在形成中,三大运营商纷纷有所行动,开始引入OpenStack架构技术。为了更好适应国内OpenStack产业应用发展的需求,需要读者更深入学习和实践OpenStack相关技术。接下来本文将详细介绍OpenStack的多种部署方式、便于用户根据实际应用需求选择合适的部署模式。OpenStack手动部署OpenStack工具部署OpenStack自动化部署支持两种部署模式OpenStack部署工具安装命令脚本化all-in-onemulti-node商业部署工具Fuel开源部署工具RDO容器化部署工具Kolla概念验证环境快速部署工具PackStackAnsible脚本自动化部署DevStack环境部署PuppetOpenStack的多种部署方式02项目实施任务0202任务0303云基础环境构建典型云平台部署OpenStack基础平台扩容项目实施任务0101任务01

云基础环境构建在本项目实践中,将逐步演示如何利用Kolla-Ansible工具从零开始搭建单节点OpenStack环境,为实际私有云平台建设提供实践参考。1.规划节点单节点部署OpenStack云平台,各节点主机名和IP地规划见下表。表1各节点主机名和IP地址规划列表(单节点部署模式下)任务01

云基础环境构建2.环境准备在物理机上申请一台安装openEuler-22.09操作系统的虚拟机作为OpenStackall-in-one节点。all-in-one节点类型为4vCPU、8GB内存、120GB系统硬盘。需要给虚拟机设置两个网络接口,分别是仅主机模式和NAT模式,all-in-one节点配置如图所示。任务01

云基础环境构建3.系统基本环境设置

(1)需要完成修改主机名

(2)更新系统软件包。

(3)修改网卡地址(代码如右所示)(4)载入网卡配置并启动相应的网卡

[root@controller~]#cat\/etc/sysconfig/network-scripts/ifcfg-ens160… … …BOOTPROTO=noneONBOOT=yesIPADDR=1PREFIX=24[root@controller~]#cat\/etc/sysconfig/network-scripts/ifcfg-ens224… … …BOOTPROTO=noneNBOOT=yesIPADDR=1PREFIX=24GATEWAY=DNS1=DNS2=9任务01

云基础环境构建

4.安装Ansible和Kolla-ansible为了可以使用pip3安装和管理Python3软件包,安装pip3。[root@controller~]#dnf-yinstallpython3-pip使用镜像源来加速pip安装包的下载速度并更新Python3中的pip工具到最新版本,保证pip工具的可用性和安全性。安装Ansible,并查看所安装的版本号。[root@controller~]#pip3install-U'ansible>=4,<6'[root@controller~]#ansible--version安装Kolla-ansible和Kolla-ansible环境必需的依赖项并创建Kolla-ansible配置文件目录。将inventory文件复制到/etc/ansible目录。随着Kolla-ansible版本的更迭,从Yoga版本开始需要安装AnsibleGalaxy的依赖项。[root@controller~]#pip3installcryptography==38.0.4[root@controller~]#kolla-ansibleinstall-deps任务01

云基础环境构建

5.Ansible运行配置优化在使用Kolla-ansible部署OpenStack时,它会执行大量的命令和任务,因此对Ansible进行调优可以加快执行速度,具体的优化如下。[root@controller~]#cat<<MXD>/etc/ansible/ansible.cfg[defaults]host_key_checking=Falsepipelining=Trueforks=100timeout=800devel_warning=Falsedeprecation_warnings=Falselog_path=wxic_cloud.loginventory=yoga_all-in-oneexecutable=/bin/shremote_port=22remote_user=rootverbosity=0show_custom_stats=Trueinterpreter_python=auto_legacy_silent[colors]ok=greenskip=brightgraywarn=brightpurple[privilege_escalation]become_user=root[galaxy]display_progress=TrueMXD修改好以后,可以使用ansible-configview命令查看:[root@controller~]#ansible-configview[defaults]host_key_checking=False#SSH服务关闭密钥检测… … …任务01

云基础环境构建6.Kolla-ansible环境初始配置(1)修改主机清单文件进入/etc/ansible目录,将提供的主机清单all-in-one文件过滤掉注释和空行,覆盖到yoga_all-in-one文件。[root@controller~]#cd/etc/ansible/[root@controlleransible]#awk'!/^#/&&!/^$/'all-in-one>yoga_all-in-one(2)检查主机清单文件是否配置正确[root@controller~]#ansible-mpingalllocalhost|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3.10"},"changed":false,"ping":"pong"}任务01

云基础环境构建(3)配置OpenStack各服务组件的密码在使用Kolla-ansible部署OpenStackYoga平台时,各个服务组件的密码存储在/etc/kolla/passwords.yml文件中,此文件默认所有的密码是空白的,必须手动或者通过运行随机密码生成器来填写,在部署时建议使用随机密码生成器来生成各个服务的密码。[root@controller~]#kolla-genpwd#修改Horizon界面登录密码为wxic@2024[root@controller~]#sed-i\'s/keystone_admin_password:.*/keystone_admin_password:\wxic@2024/g'/etc/kolla/passwords.yml#验证修改结果[root@controller~]#grepkeystone_admin/etc/kolla/passwords.ymlkeystone_admin_password:wxic@2024任务01

云基础环境构建(4)编辑globals.yml文件本次部署all-in-one时只安装了OpenStack的核心组件,在globals.yml指定参数enable_openstack_core:"yes",安装Glance、Keystone、Neutron、Nova、Heat和Horizon服务,其中要注意一个选项是kolla_internal_vip_address的地址,因为本次Haproxy和keepalived都未启用,故该地址为ens160网卡的地址(本次部署使用1),部署完成后使用该地址登录Horizon。

在/etc/kolla/config/目录自定义Neutron服务的一些配置,这将在部署集群时使用自定义的配置覆盖掉默认的配置。(代码略)任务01

云基础环境构建7.部署集群环境在all-in-one节点安装OpenStackCLI客户端。[root@controller~]#dnf-yinstallpython3-openstackclient为了使部署的all-in-one节点网络路由正常工作,需要在Linux系统中启用IP转发功能,修改所有节点的/etc/sysctl.conf文件,并配置在系统启动时自动加载br_netfilter模块。(代码略)在all-in-one节点使用命令安装OpenStack集群所需要的基础依赖项和修改一些配置文件,如安装Docker和修改Hosts文件等。任务01

云基础环境构建Docker默认镜像拉取地址在国外,在国内拉取镜像速度比较慢,可以修改国内镜像地址来加速镜像的拉取,编辑all-in-one节点/etc/docker/daemon.json文件,添加registry-mirrors部分的内容。在all-in-one节点进行部署前检查,openEuler22.09系统执行过程中如果出现"openEulerreleaseNAversion22.09isnotsupported.Supportedreleasesare:20.03"提示,不必理会继续接下来的操作,不会影响后面的部署。[root@controller~]#kolla-ansibleprechecks任务01

云基础环境构建在all-in-one节点使用以下命令下载OpenStack集群all-in-one节点所需要的全部镜像。[root@controller~]#dockerpull99cloud/skyline:latest[root@controller~]#kolla-ansiblepull任务01

云基础环境构建在all-in-one节点执行以下命令部署OpenStack集群。[root@controller~]#kolla-ansibledeploy任务01

云基础环境构建上述步骤完成后,OpenStack集群部署结束,所有的服务已经启动并正常运行,输入globals.yml文件中定义的kolla_internal_vip_address地址在浏览器登录Horizon界面,用户名为admin,密码为passwords.yml文件中keystone_admin_password的值wxic@2024,单节点部署模式下的Horizon登录和概览界面如图所示。任务01

云基础环境构建8.OpenStackCLI客户端设置OpenStack集群部署完成后,客户端执行命令则需要生成clouds.yaml和admin-openrc.sh文件,这些是管理员(admin)用户的凭据,执行以下命令。[root@controller~]#kolla-ansiblepost-deploy任务01

云基础环境构建执行以下命令,将生成的文件移动到/etc/openstack目录下,并在/etc/profile.d/目录编写/openstack-yoga.sh脚本。[root@controller~]#mkdir/etc/openstack[root@controller~]#mv/etc/kolla/admin-openrc.sh/etc/openstack/[root@controller~]#cat<<MXD>/etc/profile.d/openstack-yoga.sh#!/usr/bin/envbashsource/etc/openstack/admin-openrc.shMXD#重启终端后便可以正常使用openstack命令[root@controller~]#logout使用OpenStack相关命令验证客户端是否可以正常使用和服务是否正常启动,还可以通过查看本次部署OpenStack版本的详细信息,包括各个组件的版本号。任务01

云基础环境构建9.安装Skyline服务(1)创建Skyline服务的数据库在MariaDB容器中创建Skyline服务的数据库并赋予远程访问权限。(2)创建Skyline用户并添加admin角色创建Skyline服务的新用户skyline,密码为wxic@yoga,在默认域default中创建,并向Skyline用户分配admin角色。(3)修改Skyline服务配置文件创建Skyline服务需要的配置文件目录和日志文件目录。[root@controller~]#mkdir-p/etc/skyline/var/log/skyline/var/lib/skyline/var/log/nginx任务01

云基础环境构建(4)运行Skyline服务运行初始化引导容器生成数据库Skyline的表结构,并查看日志以验证数据库是否正常连接和表结构的创建。经查询,生成了alembic_version、revoked_token、settings三张表结构。表结构创建成功后,删除数据库初始化引导容器skyline_bootstrap。然后运行skyline-apiserver服务容器skyline,设置重启策略为always,并挂载配置文件和日志目录的数据卷,将容器的网络连接设置为主机的网络。Skyline服务组件安装结束,在浏览器访问http://1:9942地址便可以看到Skyline登录界面。项目实施任务0101任务0202任务0303云基础环境构建典型云平台部署OpenStack基础平台扩容任务02典型云平台部署本项目实施聚焦于利用先进的Kolla-Ansible部署工具,在双节点场景下部署OpenStack集群,通过详尽步骤展示高可用私有云平台的构建过程,为企业级私有云建设提供切实可行的技术参照与实战指导。1.规划节点双节点部署OpenStack云平台,各节点主机名和IP地址规划见表2。表2各节点主机名和IP地址规划列表(双节点部署模式下)任务02典型云平台部署2.环境准备在物理机上申请两台安装了openEuler-22.09操作系统的虚拟机分别作为OpenStack控制节点和计算节点,处理器处勾选“虚拟化IntelVT-x/EPT或AMD-V/RVI(V)”。控制节点类型为4vCPU、16GB内存、120GB系统硬盘;计算节点类型为2vCPU、8GB内存、120GB系统磁盘以及4个20GB额外磁盘;需要给虚拟机设置两个网络接口,分别是仅主机模式和NAT模式。控制节点计算节点任务02典型云平台部署3.系统基本环境设置(1)修改主机名(双节点操作)(2)更新系统软件包所有节点更新系统软件包以获得最新的功能支持和错误(Bug)修复。(3)网卡名和网卡地址修改(双节点操作)修改完毕后需要载入网卡配置并启动相应的网卡。在使用Kolla-Ansible部署OpenStack时,确保所有节点网卡名一致是非常重要的,这有助于更加方便地进行脚本的维护和管理。禁用网卡命名规则,在/etc/default/grub文件里的GRUB_CMDLINE_LINUX后面追加net.ifnames=0biosdevname=0。任务02典型云平台部署4.安装Ansible和Kolla-ansible执行以下命令,下载并安装pip3。[root@controller~]#dnf-yinstallpython3-pip使用镜像源来加速pip安装包的下载速度。[root@controller~]#mkdir.pip[root@controller~]#cat<<WXIC>.pip/pip.conf[global]index-url=/simple[install]trusted-host=WXIC更新Python3中的pip工具到最新版本。[root@controller~]#pip3install--ignore-installed--upgradepip使用以下命令安装Ansible,并查看所安装的版本号。[root@controller~]#pip3install-U'ansible>=4,<6'[root@controller~]#ansible--versionansible[core2.12.10]任务02典型云平台部署安装Kolla-ansible和Kolla-ansible环境必需的依赖项。#控制节点[root@controller~]#dnf-yinstall\gitpython3-devellibffi-develgccopenssl-develpython3-libselinux[root@controller~]#dnf-yinstallopenstack-kolla-ansible[root@controller~]#kolla-ansible--version14.2.0#计算节点[root@compute01~]#dnf-yinstallpython3-libselinux创建kolla-ansible配置文件目录。[root@controller~]#mkdir-p/etc/kolla/{globals.d,config}[root@controller~]#chown$USER:$USER/etc/kolla任务02典型云平台部署将inventory文件复制到/etc/ansible目录。[root@controller~]#mkdir/etc/ansible[root@controller~]#cp\/usr/share/kolla-ansible/ansible/inventory/*/etc/ansible执行以下命令安装AnsibleGalaxy的依赖项。[root@controller~]#pip3installcryptography==38.0.4[root@controller~]#kolla-ansibleinstall-deps5.Ansible运行配置优化对Ansible进行调优以加快执行速度,具体优化见教材。使用ansible-configview命令查看修改后的配置。[root@controller~]#ansible-configview[defaults]#SSH服务关闭密钥检测host_key_checking=False…… …任务02典型云平台部署6.Kolla-ansible环境初始配置(1)修改主机清单文件进入/etc/ansible目录,编辑openstack_cluster清单文件来指定集群节点的主机及其所属组。在这个清单文件中还可以用来指定控制节点连接集群各个节点的用户名、密码等(注意:ansible_password为root用户的密码,所有节点的root用户密码不可以是纯数字)。(2)检查主机清单文件是否配置正确(3)配置OpenStack各服务组件密码(4)编辑globals.yml文件(代码详见教材)任务02典型云平台部署7.存储节点磁盘初始化(1)初始化Cinder服务磁盘在compute01节点使用一块20GB磁盘创建cinder-volumes卷组,该卷组名和globals.yml里面“cinder_volume_group”指定的参数一致。(2)初始化Swift服务磁盘在compute01节点使用三块20GB磁盘用于Swift存储设备的磁盘,并添加特殊的分区名称和文件系统标签,编写Swift_disk_init.sh脚本初始化磁盘。其中设备名KOLLA_SWIFT_DATA和globals.yml文件里面”swift_devices_name”指定的参数一致。任务02典型云平台部署8.部署集群环境在控制节点安装OpenStackCLI客户端。[root@controller~]#dnf-yinstallpython3-openstackclient为了使部署的控制节点网络路由正常工作,需要在Linux系统中启用IP转发功能,修改controller和compute01节点的/etc/sysctl.conf文件,并配置在系统启动时自动加载br_netfilter模块。在控制节点使用命令安装OpenStack集群所需要的基础依赖项和修改一些配置文件(如安装Docker和修改Hosts文件等)。任务02典型云平台部署修改国内镜像地址加速Docker镜像的拉取,编辑控制节点和计算节点的/etc/docker/daemon.json文件,添加registry-mirrors部分的内容,下面给出控制节点的配置示例,计算节点同样修改即可。[root@controller~]#cat/etc/docker/daemon.json{"bridge":"none","default-ulimits":{"nofile":{"hard":1048576,"name":"nofile","soft":1048576}},"ip-forward":false,"iptables":false,"registry-mirrors":["","","",""]}[root@controller~]#systemctldaemon-reload[root@controller~]#systemctlrestartdocker任务02典型云平台部署在控制节点生成Swift服务所需要的环,编写Swift-init.sh脚本,其中STORAGE_NODES的IP为Swift磁盘所在节点的IP。在控制节点进行部署前检查,openEuler22.09系统执行过程中如果出现"openEulerreleaseNAversion22.09isnotsupported.Supportedreleasesare:20.03"提示,不必理会继续接下来的操作,不会影响后面的部署。[root@controller~]#kolla-ansibleprechecks任务02典型云平台部署在控制节点使用以下命令下载OpenStack集群各个节点所需要的全部镜像,执行结果和用时如左图所示。[root@controller~]#dockerpull99cloud/skyline:latest[root@controller~]#kolla-ansiblepull在控制节点执行以下命令部署OpenStack集群,执行结果和用时如右图所示。[root@controller~]#kolla-ansibledeploy任务02典型云平台部署当上述步骤完成后,OpenStack集群部署完成,所有的服务已经启动并可正常运行。输入globals.yml文件中定义的kolla_internal_vip_address地址在浏览器登录Horizon界面,用户名为admin,密码为passwords.yml文件中keystone_admin_password的值wxic@2024,双节点部署模式下的Horizon登录和概览界面如图所示。任务02典型云平台部署9.OpenStackCLI客户端设置OpenStack集群部署完成后,客户端执行命令需要生成clouds.yaml和admin-openrc.sh文件,这些是admin用户的凭据,执行以下命令。[root@controller~]#kolla-ansiblepost-deploy创建OpenStack认证目录并编写openstack-yoga.sh脚本,在控制节点编写Playbook脚本完成以上操作,Playbook执行结果如图所示,并使用OpenStack相关命令验证客户端是否可以正常使用及服务是否正常启动。任务02典型云平台部署接下来安装Skyline组件,因为此次部署比单节点时多了更多组件,故在安装完成后登录首页查看服务列表,可以发现功能更加丰富,Skyline服务列表如图所示。项目实施任务0101任务0202任务0303云基础环境构建典型云平台部署OpenStack基础平台扩容任务03OpenStack基础平台扩容本任务的核心在于新增一个计算节点,通过详细的操作流程展示如何将新硬件资源融入OpenStack环境,以增强整体计算效能及资源调度灵活性,从而确保平台能够灵活应对日益攀升的应用处理压力,始终保持高效稳定的运行状态。1.规划节点多节点部署OpenStack云平台,各节点主机名和IP地址规划见表3。表3各节点主机名和IP地址规划列表(多节点部署模式下)任务03OpenStack基础平台扩容

2.环境准备在任务2的基础上增加一个计算节点类型为2vCPU、8GB内存、120GB的系统硬盘,处理器处勾选“虚拟化IntelVT-x/EPT或AMD-V/RVI(V)”选项;同样地,需要给虚拟机设置两个网络接口,网络接口1设置为内部网络,其网卡使用仅主机模式,作为控制节点通信和管理使用,网络接口2设置为外部网络,其网卡使用NAT模式,主要作为控制节点的数据网络。在集群部署完成后创建的云主机便使用网络接口2的这块网卡。创建新增计算节点2结果如图所示。任务03OpenStack基础平台扩容3.计算节点2系统初始化(1)修改主机名(2)更新系统软件包(3)网卡名和网卡地址修改在任务2中“系统基本环境设置”部分已经说明了集群环境网卡名称统一的必要性,故需要禁用计算节点2的网卡命名规则,使之与现有集群保持统一的网卡名称,下面给出计算节点2的修改示例。#在GRUB_CMDLINE_LINUX的后面追加net.ifnames=0biosdevname=0[root@compute02~]#grepGRUB_CMDLINE_LINUX/etc/default/grubGRUB_CMDLINE_LINUX="rd.lvm.lv=openeuler/rootcrashkernel=512Mnet.ifnames=0biosdevname=0"#更新GRUB2引导加载程序配置,并将其写入系统的引导记录中[root@compute02~]#grub2-mkconfig-o/boot/efi/EFI/openEuler/grub.cfgGeneratinggrubconfigurationfile...AddingbootmenuentryforUEFIFirmwareSettings...done

任务03OpenStack基础平台扩容#修改的网卡名为eth0、eth1[root@compute02~]#cd/etc/sysconfig/network-scripts/[root@compute02network-scripts]#mvifcfg-ens160ifcfg-eth0[root@compute02network-scripts]#mvifcfg-ens224ifcfg-eth1[root@compute02network-scripts]#sed-i"s#ens160#eth0#"ifcfg-eth0[root@compute02network-scripts]#sed-i"s#ens224#eth1#"ifcfg-eth1#重启系统[root@compute02~]reboot#验证网卡名是否更改成功[root@compute02~]#nmclicshowNAMEUUID

TYPEDEVICEeth1

07400800-2242-32b9-88bb-5fcd323c9550

etherneteth1eth0

139eb82e-8cee-3395-81e7-ce6f3cc5cc40etherneteth0任务03OpenStack基础平台扩容4.集群增加计算节点2(1)修改主机清单文件在控制节点修改openstack_cluster主机清单文件,在组[compute]加入计算节点2的IP地址和root用户密码,修改后如右所示。[root@controller~]#cat/etc/ansible/openstack_cluster….[compute]00…#验证compute02节点能否连通[root@controller~]#ansible-mpingalllocalhost|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3"},"changed":false,"ping":"pong"}任务03OpenStack基础平台扩容0|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3"},"changed":false,"ping":"pong"}0|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3"},"changed":false,"ping":"pong"}0|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3"},"changed":false,"ping":"pong"}任务03OpenStack基础平台扩容(2)现有集群加入compute02节点为了使部署的计算节点2网络路由正常工作,需要在Linux系统中启用IP转发功能,修改计算节点2的/etc/sysctl.conf文件,并配置为在系统启动时自动加载br_netfilter模块。在控制节点使用命令安装计算节点2所需要的基础依赖项并修改一些配置文件,如在计算节点2安装Docker和修改Hosts文件等。任务03OpenStack基础平台扩容在计算节点2验证,Docker已经安装完毕,而且Hosts文件也已经修改完成。配置docker镜像下载加速,编辑计算节点2的/etc/docker/daemon.json文件,添加registry-mirrors部分的内容,计算节点2的修改示例如右所示。[root@compute02~]cat/etc/docker/daemon.json{"bridge":"none","default-ulimits":{"nofile":{"hard":1048576,"name":"nofile","soft":1048576}},"ip-forward":false,"iptables":false,"registry-mirrors":["","","",""]}[root@compute02~]systemctldaemon-reload[root@compute02~]systemctlrestartdocker任务03OpenStack基础平台扩容5.验证计算节点2是否加入集群(1)使用命令验证使用命令查看OpenStack环境中计算服务(Nova)的状态。[root@controller~]#openstackcomputeservicelist-cBinary-cHost-cStatus(2)在Horizon界面查看在Horizon界面左侧导航栏中选择“管理员→计算→虚拟机管理器”,在右侧界面中可以查看计算主机的状态,如图所示,此时发现计算节点2为激活状态,OpenStack扩容成功。根据本项目的要求,首先学习了OpenStack云平台的多种部署模式,其次针对目前企业较为流行的容器技术选用了Kolla-ansible模式部署OpenStack云平台,最后深入学习了Ansible的相关知识以加深对Kolla-ansible的理解。在掌握了这些基础知识之后,首先通过Kolla-ansible模式,以单节点部署模式完成OpenStack的快速构建,让读者能快速体验云平台的相关服务。其次以双节点部署模式完成典型OpenStack的平台部署,让读者对云平台构建的工作流程有全面的了解。最后在上述任务基础上,添加计算节点,实现云平台的扩容。项目小结03拓展知识AnsiblePlaybook基本编写Playbook是以YAML(YAMLAin'taMarkupLanguage)格式编写的文本文件,通常使用拓展名yml。Playbook使用空格字符缩进表示其数据结构,YAML对于空格数量没有要求。Playbook语法有如下特性。(1)以---(三个减号)开始,必须顶行写。(2)次行开始编写Playbook的内容,但是一般要求写明该Playbook的功能。(3)严格缩进,并且不能用Tab键缩进。(4)缩进级别必须一致,同样的缩进代表同样的级别,程序判别配置的级别是通过缩进结合换行来实现的。(5)K/V的值可同行写,也可换行写。同行使用“:”分隔,换行写需要以“-”分隔。Playbook的第一行是破折号加空格(表示该Playbook是列表的第一项)。name属性是可选的,它用于记录编写的Playbook的用途。hosts属性是指定对其运行的Playbook中的任务的主机。tasks属性其值指定要为Playbook运行的任务列表,user是需要运行的模块,其参数是一组键值对,它们是模块的子项。04拓展任务云平台主机聚合根据上述的任务3典型OpenStack平台部署,在此基础上继续完成主机聚合的实验。将控制节点的资源合并到计算节点中,以扩大云平台的资源池。进入云平台,在界面左侧导航栏中选择“管理员→虚拟机管理器”,右侧界面显示的是没有进行主机聚合之前的云平台资源概况,如图所示。云平台主机聚合1.控制节点修改inventory文件[root@controller~]#vi/etc/ansible/openstack_cluster#在compute主机组下面添加控制节点的IP地址[compute]#原有的computer01节点0#新添加的controller节点02.将控制节点的资源加入集群中#控制节点下载nova服务所需要的镜像[root@controller~]#kolla-ansible--limit0pull#控制节点部署nova-compute服务[root@controller~]#kolla-ansibledeploy--tagsnova云平台主机聚合3.云平台验证主机聚合进入云平台,在界面左侧导航栏中选择“管理员→虚拟机管理器”,界面右侧显示主机聚合后的云平台资源,如图所示。项目4云基础架构平台运维知识准备项目实施拓展知识拓展任务1243学习云服务组件的定义学习云服务组件的基本概述学习云服务组件的运维方法掌握云服务组件基础运维技能具备云服务组件的运维、管理和排错的综合能力掌握更多高级服务组件的运维方法培养创新创意的科学精神培养忠诚守信的优良品质培养认真严谨的工作作风01知识准备引言OpenStack最新发布了一份2022年用户调查报告指出,其部署在2022年达到了一个新的里程碑:现在拥有超过4000万个生产核心,与2021年相比增长了60%,自2020年以来增长了166%,且全球共有300多个公共云数据中心。由于OpenStack对混合云环境和Kubernetes集成支持的依赖增加,推动了OpenStack内核数量呈指数增长,目前Kubernetes部署在超过85%的OpenStack部署中。OpenInfra基金会测得生产中的OpenStack内核数量达到前所未有的4000万个。鉴于OpenStack版本的快速迭代和更新,为了该技术能更好地服务于未来的工作和生产,需要读者更深入学习和实践OpenStackYoga版的各类组件。接下来本项目将详细介绍OpenStack的云基础服务组件、存储服务组件和高级服务组件等概念和架构原理。云基础服务组件存储服务组件高级服务组件基础服务组件4个存储服务组件3个高级服务组件3个Keystone认证服务Glance镜像服务Neutron网络服务Nova计算服务Cinder块存储服务Swift对象存储服务Manila共享文件系统服务Heat编排服务Ceilometer监控服务Cloudkitty计费服务典型云服务组件02项目实施任务0101任务0202任务0303云基础服务组件运维管理存储服务组件运维管理高级服务组件运维管理项目实施任务01

云基础服务组件运维管理

云基础服务组件运维管理涉及Keystone认证服务运维管理、Glance镜像服务运维管理、Neutron网络服务运维管理和Nova计算服务运维管理。1.Keystone认证服务运维管理以Kolla-ansible部署的单节点OpenStack云平台为实验工作平台,配置并启用Keystone认证服务。假设OpenStack云平台上有两个租户,租户A和租户B,他们分别属于两个部门,该公司对镜像管理比较严格,只有管理员有权限对镜像进行上传和管理。但公司有一个镜像需要共享给租户A,而对租户B为不可见。要实现这样的资源隔离最简单的方法就是由租户A中的用户自行上传镜像,这样租户A中的用户就能看到这个镜像,而租户B中的用户是看不到的。但由于租户A中的用户是普通用户,无权管理镜像,只能由管理员通过命令开放给租户A才能得以实现。接下来通过如下步骤实现上述目标。任务01

云基础服务组件运维管理

(1)创建租户创建租户A,命令如下所示。[root@controller~]#openstackprojectcreate--domaindefaultA在OpenStack界面上查看租户A,结果如图所示。任务01

云基础服务组件运维管理

创建租户B,命令如下。[root@controller~]#openstackprojectcreate\--domaindefaultB在OpenStack界面上查看租户B。(2)创建用户创建普通用户userA,密码为123456,命令如下。[root@controller~]#openstackusercreate\--domaindefault--password123456userA在OpenStack界面上查看用户userA。任务01

云基础服务组件运维管理

创建普通用户userB,密码为123456,命令如下。[root@controller~]#openstackusercreate\--domaindefault

--password123456userB在OpenStack界面上查看用户userB。(3)赋予角色将用户userA分配到租户A中,赋予用户userA以member的角色。[root@controller~]#openstackroleadd--projectA--useruserAmember将用户userB分配到租户B中,赋予用户userB以member的角色。[root@controller~]#openstackroleadd--projectB--useruserBmember使用命令查询租户列表信息和用户列表信息。[root@controller~]#openstackprojectlist任务01

云基础服务组件运维管理

(4)上传镜像将cirros-0.6.1-x86_64-disk.img下载至控制节点的/root目录下,命令如下所示。[root@controller~]#wget\/cirros-dev/cirros/releases/download/0.6.1/cirros-0.6.1-x86_64-disk.img创建一个cirros-0.6.1镜像,命令如下所示。[root@controller~]#openstackimagecreate\--disk-formatqcow2

--container-formatbare\--progress--filecirros-0.6.1-x86_64-disk.img"cirros-0.6.1"在OpenStack界面上查看userA、userB镜像内容。任务01

云基础服务组件运维管理

上传镜像后,userA和userB都不能看到该镜像。接下来做相关配置,使得A租户中的用户可以看到该镜像。(5)权限配置首先将镜像共享给A租户。[root@controller~]#openstackimageaddprojectcirros-0.6.1A在共享之后,镜像的状态是Pending状态,此时还需要激活镜像。[root@controller~]#openstackimagesetcirros-0.6.1--projectA--accept[root@controller~]#openstackimagememberlistcirros-0.6.1此时镜像的状态变为Accepted,切换至用户userA和用户userB中,分别查看镜像列表信息。[root@controller~]#exportOS_PROJECT_NAME=A[root@controller~]#exportOS_USERNAME=userA[root@controller~]#exportOS_PASSWORD=123456[root@controller~]#glanceimage-list可以发现,用户userA可查询到该镜像,用户userB不可以。通过这种方式,可以使管理员设置不同租户对不同镜像或文件资源的访问权限,实现资源隔离。任务01

云基础服务组件运维管理

2.Glance镜像服务运维管理(1)上传镜像下载镜像文件openEuler-22.09-x86_64.qcow2并创建名为openEuler-22.09、格式为qcow2的镜像,命令和结果如下所示。[root@controller~]#wgethttps:///openeuler/openEuler-22.09/virtual_machine_img/x86_64/openEuler-22.09-x86_64.qcow2.xz[root@controller~]#tar-xvfopenEuler-22.09-x86_64.qcow2.xz[root@controller~]#openstackimagecreate--disk-formatqcow2\--container-formatbare--progress--fileopenEuler-22.09-x86_64.qcow2"openEuler-22.09"(2)查看镜像列表使用相关命令查询镜像列表,并查询image-test镜像的详细信息,命令如下所示。[root@controller~]#openstackimagelist任务01

云基础服务组件运维管理

(3)使用Skyline界面创建镜像通过Skyline界面,使用镜像URL链接创建镜像。(4)删除镜像使用相关命令删除刚刚创建的镜像,命令如下。[root@controller~]#openstackimage\delete7f200158-bd9b-4e87-88fd-8042b21f198b注意:删除的ID为刚才查询的实际镜像ID。任务01

云基础服务组件运维管理

3.Neutron网络服务运维管理(1)创建网络使用OpenStack相关命令创建名称为neutron-test的网络,命令如下所示。[root@controller~]#openstacknetworkcreateneutron-test(2)网络列表使用相关命令查询所创建网络的列表信息,命令如下所示。[root@controller~]#openstacknetworklist(3)删除网络使用相关命令删除上一步创建的网络,并进行验证,命令和结果如下所示。[root@controller~]#openstacknetworkdeleteneutron-test[root@controller~]#openstacknetworklist此处并没有返回值,表示网络已经被删除。(4)创建路由使用相关命令创建一个名为route-test的路由,查看路由列表之后便删除,命令如下所示。[root@controller~]#openstackroutercreateroute-test[root@controller~]#openstackrouterlist[root@controller~]#openstackrouterdelete[routeID]任务01

云基础服务组件运维管理

4.Nova计算服务运维管理(1)创建实例创建实例类型,命令如下所示。[root@controller~]#openstackflavorcreate2V_4G_20G--vcpus2--ram4096--disk20查看可用实例类型列表,命令如下所示。[root@controller~]#openstackflavorlist查看可用镜像列表,命令如下所示。[root@controller~]#openstackimagelist查看可用网络列表,命令如下所示。[root@controller~]#openstacknetworklist创建实例使用的安全组,命令如下所示。[root@controller~]#openstacksecuritygroupcreatesecgroup01[root@controller~]#openstacksecuritygrouplist创建用于连接实例的SSH密钥对并查看密钥对列表,命令如下所示。[root@controller~]#openstackkeypaircreate--public-key.ssh/id_rsa.pubcontroller_key[root@controller~]#openstackkeypairlist任务01

云基础服务组件运维管理

创建实例cirros-0.6.1,命令如下所示。[root@controller~]#netID=$(openstacknetworklist|grepint-net|awk'{print$2}')[root@controller~]#openstackservercreate--flavor2V_4G_20G--imagecirros-0.6.1--security-groupsecgroup01--nicnet-id=$netID--key-namecontroller_key"cirros-0.6.1"查看外部网络列表,申请浮动IP地址并绑定至实例上。首先查看网络列表,命令如下所示。[root@controller~]#openstacknetworklist–external申请浮动IP地址3,命令如下所示。[root@controller~]#openstackfloatingipcreateext-net--floating-ip-address3绑定浮动IP地址到实例,命令如下所示。[root@controller~]#openstackserverlist[root@controller~]#openstackportlist--device-id\46ec44a0-ad70-42b3-9d29-d7050c8500fc[root@controller~]#openstackfloatingipset–port\1c7f3208-b375-495f-985f-e67c596652bd3[root@controller~]#openstackserverlist任务01

云基础服务组件运维管理

为安全组secgroup01添加因特网控制报文协议(InternetControlMessageProtocol,ICMP)协议入口访问规则,命令如下所示。[root@controller~]#openstacksecuritygrouprulecreate--protocolicmp--ingresssecgroup01为安全组secgroup01添加TCP协议入口访问规则,命令如下所示。[root@controller~]#openstacksecuritygrouprulecreate--protocoltcp--dst-port22:22secgroup01[root@controller~]#openstacksecuritygrouprulelistsecgroup01使用SSH登录实例进行测试,命令如下所示。[root@controller~]#openstackserverlist(2)查看实例详细信息,命令如下所示。[root@controller~]#openstackconsoleurlshowcirros-0.6.1[root@controller~]#openstackservershowcirros-0.6.1任务01

云基础服务组件运维管理

(3)使用OpenStackAPI启动、关闭和重建实例curl命令是一种在命令行下使用的网络工具,用于向服务器发送请求并获取响应,它可以模拟各种HTTP请求,常用于调试Web服务器和API。curl命令的基本参数如下。-s:在请求的过程中不显示进度条。-H:添加请求头部。-X:指定请求方法(例如GET、POST、PUT、DELETE)。使用curl调用后返回的JSON(JavaScriptObjectNotation,JavaScript对象表示法)数据不易读,这时可以使用python3-mjson.tool命令将响应数据格式化输出。查询实例列表;查询实例cirros-0.6.1的ID、状态等;停止、启动和重建实例cirros-0.6.1的命令和结果详见教材。项目实施任务0101任务0202任务0303云基础服务组件运维管理存储服务组件运维管理高级服务组件运维管理任务02存储服务组件运维管理

存储服务组件运维管理涉及Cinder块存储服务运维管理、Swift对象存储服务运维管理和Manila共享文件系统服务运维管理。1.Cinder块存储服务运维管理(1)创建镜像和网络下载镜像文件,命令如下所示。[root@controller~]#wgethttp:///0.6.1/cirros-0.6.1-x86_64-disk.img创建名为cirros-0.6.1的镜像,命令如下所示。[root@controller~]#openstackimagecreate--disk-formatqcow2--container-formatbare\--progress--filecirros-0.6.1-x86_64-disk.img"cirros-0.6.1"查看镜像列表,命令如下所示。[root@controller~]#openstackimagelist创建网络network-flat,网络类型为flat,命令如下所示。[root@controller~]#openstacknetworkcreate--provider-network-typeflat\--provider-physical-networkprovider--externalnetwork-flat任务02存储服务组件运维管理

查看网络列表,命令如下所示。[root@controller~]#openstacknetworklist创建子网network-flat-subnet,网络地址分配为00~00,网关为,命令如下所示。[root@controller~]#openstacksubnetcreate--networknetwork-flat\--subnet-range/24\--allocation-poolstart=00,end=00\--gatewaynetwork-flat-subnet查看子网列表,命令如下所示。[root@controller~]#openstacksubnetlist(2)启动云主机创建云主机类型2V_1G_10G,命令如下所示。[root@controller~]#openstackflavorcreate2V_1G_10G--vcpus2--ram1024--disk10任务02存储服务组件运维管理

使用先前创建的镜像、云主机类型和网络,启动云主机cirros-test,命令如下所示。[root@controller~]#openstackservercreate--imagecirros-0.6.1\--flavor2V_1G_10G--networknetwork-flatcirros-test查看云主机列表,命令如下所示。[root@controller~]#openstackserverlist(3)查看Cinder服务状态查看Cinder服务状态,命令如下所示。[root@controller~]#openstackvolumeservicelist(4)创建卷创建一个2GB云硬盘(卷),命令如下所示。[root@controller~]#openstackvolumecreate--size2SSD_2G(5)查看卷查看当前卷列表,命令如下所示。[root@controller~]#openstackvolumelist查看volume卷的详细信息,命令如下所示。[root@controller~]#openstackvolumeshowSSD_2G任务02存储服务组件运维管理

(6)挂载云硬盘给云主机cirros-test挂载SSD_2G卷(云硬盘),命令如下所示。[root@controller~]#openstackserveraddvolumecirros-testSSD_2G查看当前卷列表,命令如下所示。[root@controller~]#openstackvolumelist[root@controller~]#openstackvolumelist(7)扩展卷将云主机cirros-test上挂载的volume卷(云硬盘)移除,该卷(云硬盘)仍存在,命令如下所示。[root@controller~]#openstackserverremovevolumecirros-testSSD_2G查看当前卷列表,命令如下所示。[root@controller~]#openstackvolumelist将volume卷(云硬盘)由原来的2GB扩容为3GB,并更名为SSD_3G,命令如下所示。[root@controller~]#openstackvolumesetSSD_2G--size3--nameSSD_3G查看当前卷列表,命令如下所示。[root@controller~]#openstackvolumelist任务02存储服务组件运维管理

(8)挂载云硬盘,验证卷大小给云主机cirros-test挂载扩容后的SSD_3G卷(云硬盘),命令和查询结果如下所示。[root@controller~]#openstackserveraddvolumecirros-testSSD_3G查看当前卷列表,命令如下所示。[root@controller~]#openstackvolumelist列出所有的虚拟机,命令如下所示。[root@compute01~]#dnf-yinstalllibvirt-client[root@compute01~]#virshlist--allIdNameState--------------------------------------------------2instance-00000003running使用命令行切换到云主机cirros-test的控制台,命令如下所示。[root@compute01~]#virshconsoleinstance-00000003用户名和密码登录云主机cirros-test的控制台,命令如下所示。[root@compute01~]#virshconsoleinstance-00000003任务02存储服务组件运维管理

列出云主机所cirros-test有可用的块设备信息,验证volume卷(云硬盘)扩容的大小,命令如下所示。$lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTSvda252:0010G0disk|-vda1252:1010G0part/`-vda15252:1508M0partvdb252:1603G0disk2.Swift

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论