OpenStack私有云基础架构与运维(openEuler版)(微课版)-实操手册汇 项目1-6 OpenStack云计算基础架构平台技术概述-云基础架构平台应用_第1页
OpenStack私有云基础架构与运维(openEuler版)(微课版)-实操手册汇 项目1-6 OpenStack云计算基础架构平台技术概述-云基础架构平台应用_第2页
OpenStack私有云基础架构与运维(openEuler版)(微课版)-实操手册汇 项目1-6 OpenStack云计算基础架构平台技术概述-云基础架构平台应用_第3页
OpenStack私有云基础架构与运维(openEuler版)(微课版)-实操手册汇 项目1-6 OpenStack云计算基础架构平台技术概述-云基础架构平台应用_第4页
OpenStack私有云基础架构与运维(openEuler版)(微课版)-实操手册汇 项目1-6 OpenStack云计算基础架构平台技术概述-云基础架构平台应用_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

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

文档简介

OpenStack云计算基础架构平台技术概述模块简介学习云计算的基础概念及核心技术的相关知识,并对常用的云计算平台软件进行对比。模块知识(1)具备运用一种或多种常见云基础架构软件的能力。(2)具备安装及部署虚拟机的工作能力。(3)掌握OpenStack云平台Dashboard的使用方法。环境准备1.OpenStackYoga版本初体验系统已经提前安装好版本的OpenStack,使用openEuler22.09系统,配置为双网卡,使用4vCPU/12GB内存/100GB硬盘配置。节点网络规划见表1-1。表1-1节点网络规划网卡名网段网关eth0/24无eth1任意DHCP模块内容1.实战案例——OpenStackYoga版本初体验(1)任务准备启动OpenStack-Yoga-Allinone系统后,使用浏览器访问\h0/即可进入Dashboard登录界面,如图1-1所示。图1-1Dashboard登录界面输入用户名“admin”,密码“000000”,单击“登入”按钮登录进入Dashboard操作界面,如图1-2所示。图1-2Dashboard操作界面(2)Dashboard核心组件验证操作界面中单击“身份管理→用户”,单击右上角的“创建用户”按钮,进入创建用户界面,如图1-3所示,在输入对应参数之后,单击“创建用户”按钮,创建用户。图1-3创建用户界面返回主界面,在Dashboard操作界面的用户列表中可以查看到创建成功的用户,如图1-4所示。图1-4用户列表使用SecureCRT工具连接controller节点,可以查看到创建的用户列表,如下所示。||#openstackuserlist|grepopenstack-test|4b4459b655744a018c9d076e056543c9 |openstack-test可以使用openstackusershow命令,查询openstack-test用户详细信息,如下所示。#openstackusershowopenstack-test#openstackusershowopenstack-test在Dashboard操作界面中单击“管理员→镜像→创建镜像”,进入镜像创建界面,在创建镜像界面中,可(cirros-0.6.1-x86_64-disk.img),在设置对应的镜像格式后,可以根据其他相应要求进行配置,最后单击“创建镜像”按钮来完成镜像的创建。“testnet”,下拉框选择项目“admin”,“Flat”,物理网络填写“provider”,勾选“共享的”以及“外部网络”选项,使云主机能够连通外网,然后单击“下一步”按钮,进入创建子网界面,填写子网名称testsubnet,网络地址IP为,然后单击“下一步”按钮,进入最后的确认界面,单击“创建网络”按钮。为了顺利创建实例,还需要提前创建实例类型。在Dashboard操作界面中单击“管理员→计算→实例类”按钮,在弹出的窗口输入相应的属性参数,名称为“test_flavor”,vCPU数量1,内存2048M,根磁盘10GB,最后单击右下方“创建实例类型”按钮即可完成创建。在以上几个模块都完成之后,就可以创建实例来使用。如果缺少了上述任何一个操作,都可能使实例创建失败。操作界面中单击“计算→实例”按钮,单击右方“创建实例”按钮,进入创建实例界面,输入实例名称“openstack-test”,如图1-5所示。图1-5创建实例界面接下来依次选择上述模块创建的“源”“实例类型”“网络”,单击“创建实例”按钮,完成实例的创建。创建完成后,等待片刻,即可在云主机列表中看到云主机“openstack-test”正在运行中,云主机孵化成功,如图1-6所示。图1-6云主机列表下拉列表中的“控制台”选项,进入云主机控制台界面,按照提示输入正确的登录名及密码,即可成功登录云主机,如图1-7所示。图1-7登录云主机私有云基础架构模块简介LAMP(Linux+Apache+MySQL/MariaDB+PHP,流行的开源软件组合)环境并部署WordPress服务。模块知识(1)了解传统架构及其存在的问题。(2)掌握传统架构下系统部署的方法。(3)掌握集群架构下系统部署的方法。(4)具备私有云基础架构下环境部署的能力,从而进一步认识不同IT基础架构的区别。环境准备1.传统架构下应用部署在单台操作系统openEuler22.09中模拟,节点规划见表1-1。表1-1节点规划操作系统主机名IP地址安装服务openEuler22.09web0100Apache、PHP、MariaDB2.集群架构下应用部署为了进一步说明集群架构相较于传统架构的优越性,本任务在前一任务的基础上,增加两台WordPress应用部署。每台虚拟机所安装的服务及节点规划情况见表1-2。表2-1节点规划操作系统主机名IP地址安装服务openEuler22.09web0100Apache、PHPopenEuler22.09database01MariaDBopenEuler22.09web0202Apache、PHP模块内容1.实战案例——传统架构下应用部署基础环境准备(1)修改系统主机为web01,命令如下所示。#hostnamectlset-hostnameweb01#hostnamectlset-hostnameweb01(2)配置本地Yum源#mkdir/opt/openEuler#mkdir/opt/openEuler#mv/etc/yum.repos.d/*/media#mountopenEuler-22.09-x86_64-dvd.iso/mnt/#cp-va/mnt/{Packages,repodata}/opt/openEuler/#cat<<MXD>/etc/yum.repos.d/openEuler.repo[openEuler22.09]name=openEulerbaseurl=file:///opt/openEuler/gpgcheck=0MXD(3)关闭防火墙与SELinux(线上环境此步骤不需要)#systemctldisable--nowfirewalld#systemctldisable--nowfirewalld#vi/etc/selinux/config//将SELINUX=enforcing改成SELINUX=disabled#setenforce0安装Apache服务具体操作如下。#dnfinstall-yhttpd#dnfinstall-yhttpd#systemctlenable--nowhttpd#apachectl-vServerversion:Apache/2.4.51(Unix)Serverbuilt: Sep 7202200:00:00安装PHP服务(1)安装PHP及其模块##dnf-yinstallphpphp-commonphp-cliphp-gdphp-pdophp-develphp-xmlphp-mysqlnd(2)编写测试界面文件#vi/var/www/html/php-test.php#vi/var/www/html/php-test.php<?phpphpinfo();?>(3)访问测试界面重启Apache服务,并到浏览器中访问\h00/php-test.php,PHP测试成功界面如图1-1所示。#systemctlrestarthttpd#systemctlrestarthttpd图1-1PHP测试成功界面安装并配置数据库服务(1)安装MariaDB服务安装数据库服务相关的软件包,设置开机自启并立即启动服务。#dnf-yinstallmariadbmariadb-server#dnf-yinstallmariadbmariadb-server#systemctlenable--nowmariadb.service(2)初始化MariaDB服务服务在本地连接时不需要用户密码,可免密进入,第一次登录需要修改root用户的密码,具体操作如下所示。#mysql#mysqlMariaDB[(none)]>setpassword=password("wxic@2024");QueryOK,0rowsaffected(0.001sec)(3)创建数据库创建WordPress数据库并开启root用户远程访问的权限。MariaDB[(none)]>createdatabaseMariaDB[(none)]>createdatabasewordpress;QueryOK,1rowaffected(0.00sec)MariaDB[(none)]>grantallprivilegesonwordpress.*toroot@'%'identifiedby'';QueryOK,0rowsaffected(0.00sec)安装Wordpress文件传输到/root目录下,然后将压缩包解压到Apache网页文件夹中。#tarxvfwordpress-6.4.1-zh_CN.tar.gz-C/var/www/html/#tarxvfwordpress-6.4.1-zh_CN.tar.gz-C/var/www/html/对解压出来的wordpress文件夹赋予权限。////设置http根目录/var/www/的所有组为apache#chown-R:apache/var/www////设置http根目录/var/www的所有者为apache#chown-Rapache/var/www///设置http根目录/var/www的组下的所有用户具有读写权限#chmod-R775/var/www/#systemctlrestarthttpd在浏览器中访问\h00/wordpress界面查看,可以访问到如图1-2所示的WordPress测试界面。图1-2WordPress测试界面接下来,输入数据库相关配置信息即可完成数据库连接,如图1-3所示。image-20240630015236354图1-3连接数据库数据库连接成功后,单击“运行安装程序”继续安装,如图1-4所示。图1-4WordPress数据库连接成功自定义站点相关的表单,例如登录用户名及密码等,如图1-5所示。图1-5WordPress站点配置至此,WordPress部署成功,如图1-6所示。图1-6WordPress部署成功界面2.实战案例——集群架构下应用部署为了进一步说明集群架构相较于传统架构的优越性,本任务在“实战案例——传统架构下应用部署”的基础上,使用三台openEuler22.09系统的虚拟机,拓展集群架构,完成WordPress应用的部署。基础环境准备(1)修改主机名三个节点分别修改主机名,命令如下:#hostnamectlset-hostnameweb01#hostnamectlset-hostnameweb01#hostnamectlset-hostnamedatabase#hostnamectlset-hostnameweb02(2)配置本地Yum源所有节点配置本地Yum源,命令如下:#mkdir/opt/openEuler#mkdir/opt/openEuler#mv/etc/yum.repos.d/*/media#mountopenEuler-22.09-x86_64-dvd.iso/mnt/#cp-va/mnt/{Packages,repodata}/opt/openEuler/#cat<<MXD>/etc/yum.repos.d/openEuler.repo[openEuler22.09]name=openEulerbaseurl=file:///opt/openEuler/gpgcheck=0MXD服务安装(1)安装Mariadb服务在“database”节点安装MariaDB服务并设置root用户密码,创建“wordpress”数据库,具体操作参考”实战案例——传统架构下应用部署“配置数据库服务的操作步骤,此处不再赘述。(2)安装WordPress、PHP服务,然后部署WordPress,具体操作步骤参考”实战案例——传统架构下应用部署“中安装WordPress的内容,此处不再赘述。web01节点和web02节点数据库连接信息的设置界面中,数据库主机均填写database节点的IP,完整的填写示例如图2-1所示。图2-1配置数据库信息服务验证web02节点验证界面,同样进行数据库连接,会发现网页提示已安装过,如图2-2所示,这说明web02节点已经连接上了database节点的MariaDB数据库。图2-2提示界面web02节点验证成功,直接单击“登录”便可以正常访问站点,如图2-3所示。图2-3web02节点验证成功界面即使把web01节点的Apache服务关闭,web02节点的WordPress仍然正常工作,如图2-4所示。[root@web01~][root@web01~]#systemctlstophttpd图2-4关闭web01节点后web02节点的测试界面database节点验证在database节点,登录MariaDB数据库,查看数据库列表信息,如下所示。#mysql-uroot-pwxic@2024#mysql-uroot-pwxic@2024MariaDB[(none)]>showdatabases;+--------------------+|Database |+--------------------+|information_schema||mysql ||performance_schema||wordpress |+--------------------+4rowsinset(0.000sec)数据库查看表单详情,结果如下所示,发现web01和web02的用户数据已经录入数据库中,说明在集群架构下部署WordPress应用是有效的。MariaDB[wordpress]>select*fromwp_users;MariaDB[wordpress]>select*fromwp_users;+----+------------+------------------------------------+---------------+----------------------+----------------------------------+---------------------+---------------------+-------------+--------------+|ID|user_login|user_passuser_email |user_url|user_nicename||user_registered|user_activation_key|user_status|display_name|+----+------------+------------------------------------+---------------+----------------------+----------------------------------+---------------------+---------------------+-------------+--------------+| 1|wxic |$P$BwLE9mzSx2l2Dvw1hKRU1o1y4YFcNw1|wxic |\hwxic@|\h00/wordpress|2023-12-0516:41:36|| 0|wxic |+----+------------+------------------------------------+---------------+----------------------+----------------------------------+---------------------+---------------------+-------------+--------------+1rowinset(0.000sec)云基础架构部署模块简介经过OpenStack更深入地学习和实践,通过梳理其不同的部署方式,选择最适合行业应用的Kolla-ansible部署模式完成OpenStack云平台的搭建,并进一步掌握云平台的扩容方法。模块知识(1)掌握Kolla-ansible部署模式搭建云平台的技能(2)掌握云平台扩容的方法(3)具备OpenStack云平台部署的能力环境准备云基础环境构建单节点部署OpenStack云平台,各节点主机名和IP地规划见表1-1。表1-1各节点主机名和IP地址规划列表(单节点部署模式下)节点类型主机名内部管理IP实例通信IPall-in-one节点controller11典型云平台部署双节点部署OpenStack云平台,各节点主机名和IP地址规划见表2-1。表2-1各节点主机名和IP地址规划列表(双节点部署模式下)节点类型主机名内部管理IP实例通信IP控制节点controller00计算节点compute0100OpenStack基础平台扩容多节点部署OpenStack云平台,各节点主机名和IP地址规划见表3-1。表3-1各节点主机名和IP地址规划列表(多节点部署模式下)节点类型主机名内部管理IP实例通信IP控制节点controller00计算节点1compute0100节点类型计算节点2主机名compute02内部管理IP0实例通信IP0模块内容实战案例——云基础环境构建系统基本环境设置(1)修改主机名#hostnamectlset-hostnamecontroller#hostnamectlset-hostnamecontroller#execbash(2)修改网卡地址(线上环境此步骤不需要)按照规划节点的IP规划,配置all-in-one节点的静态IP地址,修改以下示例配置中的参数。#cat/etc/sysconfig/network-scripts/ifcfg-ens160#cat/etc/sysconfig/network-scripts/ifcfg-ens160… … …BOOTPROTO=noneONBOOT=yesIPADDR=1PREFIX=24#cat/etc/sysconfig/network-scripts/ifcfg-ens224… … …BOOTPROTO=noneNBOOT=yesIPADDR=1PREFIX=24GATEWAY=DNS1=DNS2=9载入网卡配置并启动相应的网卡。#nmclicreload#nmclicreload#nmclicupens160#nmclicupens224(3)配置本地DNF源将提供的yoga-repo文件上传到系统的/opt目录,使用离线源进行实验,修改方式如下。#mv/etc/yum.repos.d/*/media/#mv/etc/yum.repos.d/*/media/#cat<<MXD>/etc/yum.repos.d/openEuler.repo[openEuler22.09]name=openstackbaseurl=file:///opt/yoga-repo/gpgcheck=0MXD安装Ansible和Kolla-ansible(1)为了可以使用pip3安装和管理Python3软件包,安装pip3。#dnf-yinstallpython3-pip#dnf-yinstallpython3-pip(3)使用清华镜像源来加速pip安装包的下载速度。#mkdir.pip#mkdir.pip#cat<<WXIC>.pip/pip.conf[global]index-url=/simple[install]trusted-host=WXIC(4)更新Python3中的pip工具到最新版本,保证pip工具的可用性和安全性。#pip3install--ignore-installed--upgradepip#pip3install--ignore-installed--upgradepip(5)使用以下命令安装Ansible,并查看所安装的版本号。#pip3install-U'ansible>=4,<6'#pip3install-U'ansible>=4,<6'#ansible--version(6)安装Kolla-ansible和Kolla-ansible环境必需的依赖项。##dnf-yinstallgitpython3-devellibffi-develgccopenssl-develpython3-libselinux#dnf-yinstallopenstack-kolla-ansible#kolla-ansible--version14.2.0(7)创建Kolla-ansible配置文件目录。#mkdir-p/etc/kolla/{globals.d,config}#mkdir-p/etc/kolla/{globals.d,config}#chown$USER:$USER/etc/kolla(8)将inventory文件复制到/etc/ansible目录。#mkdir/etc/ansible#mkdir/etc/ansible#cp/usr/share/kolla-ansible/ansible/inventory/*/etc/ansible(9)随着Kolla-ansible版本的更迭,从Yoga版本开始需要安装AnsibleGalaxy的依赖项,执行以下命令安装。#pip3installcryptography==38.0.4#pip3installcryptography==38.0.4#tarxvfkolla-ansible-deps.tar.gz-C/root/.ansibleAnsible运行配置优化在使用Kolla-ansible部署OpenStack时,它会执行大量的命令和任务,因此对Ansible进行调优可以加快执行速度,具体的优化如下。#cat<<MXD>#cat<<MXD>/etc/ansible/ansible.cfg[defaults]#SSH服务关闭密钥检测host_key_checking=False#如果不使用sudo,建议开启pipelining=True#执行任务的并发数forks=100timeout=800#禁用警告#devel_warning=Falsedeprecation_warnings=False#显示每个任务花费的时间callback_whitelist=profile_tasks#记录Ansible的输出,相对路径表示log_path=wxic_cloud.log#主机清单文件,相对路径表示inventory=yoga_all-in-one#命令执行环境,也可更改为/bin/bashexecutable=/bin/shremote_port=22remote_user=root#默认输出的详细程度#可选值0、1、2、3、4等#值越高输出越详细verbosity=0show_custom_stats=Trueinterpreter_python=auto_legacy_silent[colors]#成功的任务绿色显示ok=green#跳过的任务使用亮灰色显示skip=brightgray#警告使用亮紫色显示warn=brightpurple[privilege_escalation]become_user=root[galaxy]display_progress=TrueMXD修改好以后,可以使用ansible-configview命令查看。#ansible-configview#ansible-configview[defaults]#SSH服务关闭密钥检测host_key_checking=False… … …Kolla-ansible环境初始配置(1)修改主机清单文件进入/etc/ansible目录,将提供的主机清单all-in-one文件过滤掉注释和空行,覆盖到yoga_all-in-one文件。#cd/etc/ansible/#cd/etc/ansible/#awk'!/^#/&&!/^$/'all-in-one>yoga_all-in-one#ansible-mpingalllocalhost|SUCCESS=>{"ansible_facts"#ansible-mpingalllocalhost|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3.10"},"changed":false,"ping":"pong"}(3)配置OpenStack各服务组件的密码在使用Kolla-ansible部署OpenStackYoga平台时,各个服务组件的密码存储文件中,此文件默认所有的密码是空白的,必须手动或者通过运行随机密码生成器来填写,在部署时建议使用随机密码生成器来生成各个服务的密码,命令如下。#kolla-genpwd#kolla-genpwd修改Horizon界面登录密码为wxic@2024。#sed-i's/keystone_admin_password:.*/keystone_admin_password:#sed-i's/keystone_admin_password:.*/keystone_admin_password:wxic@2024/g'/etc/kolla/passwords.yml#grepkeystone_admin/etc/kolla/passwords.ymlkeystone_admin_password:wxic@2024(4)编辑globals.yml文件本次部署all-in-one时只安装了OpenStack的核心组件,在globals.yml指定参数enable_openstack_core:"yes",安装Glance、Keystone、Neutron、Nova、Heat和Horizon服务,的地址,因为本次Haproxy和keepalived都未启用,故该地址为ens160网卡的地址(本次部署使用1),部署完成后使用该地址登录Horizon。#cd/etc/kolla/#cd/etc/kolla/#cpglobals.yml{,_bak}#cat<<MXD>globals.yml---kolla_base_distro:"ubuntu"kolla_install_type:"source"openstack_release:"yoga"kolla_internal_vip_address:"1"kolla_sysctl_conf_path:/etc/sysctl.confdocker_client_timeout:120network_interface:"ens160"network_address_family:"ipv4"neutron_external_interface:"ens224"neutron_plugin_agent:"openvswitch"neutron_ipam_driver:"internal"openstack_region_name:"RegionWxic"openstack_logging_debug:openstack_logging_debug:"False"enable_openstack_core:"yes"glance_backend_file:"yes"nova_compute_virt_type:"kvm"nova_console:"novnc"enable_haproxy:"no"enable_keepalived:"no"MXD在/etc/kolla/config/目录自定义Neutron服务的一些配置,这将在部署集群时使用自定义的配置覆盖掉默认的配置。#cd/etc/kolla/config/#cd/etc/kolla/config/#mkdirneutron#cat<<MXD>neutron/dhcp_agent.ini[DEFAULT]dnsmasq_dns_servers=,,9MXD#cat<<MXD>neutron/ml2_conf.ini[ml2]tenant_network_types=flat,vxlan,vlan[ml2_type_vlan]network_vlan_ranges=provider:10:1000[ml2_type_flat]flat_networks=providerMXD#cat<<MXD>neutron/openvswitch_agent.ini[securitygroup]firewall_driver=openvswitch[ovs]bridge_mappings=provider:br-exMXD部署集群环境在all-in-one节点安装OpenStackCLI客户端。#dnf-yinstallpython3-openstackclient#dnf-yinstallpython3-openstackclient在all-in-one节点使用命令安装OpenStack集群所需要的基础依赖项和修改一些配置文件,如安装Docker和修改Hosts文件等,命令如下。#kolla-ansiblebootstrap-servers#kolla-ansiblebootstrap-servers在all-in-one节点进行部署前检查,openEuler22.09系统执行过程中如果出现"openEulerreleaseNAversion22.09isnotsupported.Supportedreleasesare:20.03"提示,不必理会继续接下来的操作,不会影响后面的部署,命令如下。#kolla-ansibleprechecks#kolla-ansibleprechecks在all-in-one节点使用以下命令下载OpenStack集群all-in-one节点所需要的全部镜像。#dockerpull99cloud/skyline:latest#dockerpull99cloud/skyline:latest#kolla-ansiblepull在all-in-one节点执行以下命令部署OpenStack集群。#kolla-ansibledeploy#kolla-ansibledeploy上述步骤完成后,OpenStack集群部署结束,所有的服务已经启动并正常运行,输入globals.yml文件中定义的kolla_internal_vip_address地址在浏览器登录Horizon界面,用户名为admin,密码为passwords.yml文件中keystone_admin_password的值wxic@2024。OpenStackCLI客户端设置OpenStack集群部署完成后,客户端执行命令则需要生成clouds.yaml和admin-openrc.sh文件,这些是管理员(admin)用户的凭据,执行以下命令。#kolla-ansiblepost-deploy#kolla-ansiblepost-deploy执行以下命令,将生成的文件移动到/etc/openstack目录下,并在/etc/profile.d/目录编写/openstack-yoga.sh脚本。#mkdir/etc/openstack#mkdir/etc/openstack#mv/etc/kolla/admin-openrc.sh/etc/openstack/#cat<<MXD>/etc/profile.d/openstack-yoga.sh#!/usr/bin/envbashsource/etc/openstack/admin-openrc.shMXD#logout使用OpenStack相关命令验证客户端是否可以正常使用和服务是否正常启动,执行结果如下所示。++----------------+----------+-----------+--------+---------+-----+-----------+2023-04-17T07:48:45000000up |enabled||novacontrollernova-compute ||5106b3e5-e73d-4f2f-aa66-47bbec61b2682023-04-17T07:48:45.000000up |enabled||internalcontrollernova-conductor ||1e8b67c1-1092-4274-ad2b-43e8cea9cce12023-04-17T07:48:46.000000up |enabled||internal| nova-scheduler | controllerfb6b76c1-7d67-4414-89d9-fee50fb72ff3|||||||||+----------------+----------+-----------+--------+---------+-----+-----------+| Status | State | Updated| ZoneHostBinary || ID |At |#openstackcomputeservicelist+----------------+----------+-----------+--------+---------+-----+-----------+安装Skyline服务Skyline是新一代的OpenStack管理界面,由九州云于2021年9月捐献给OpenStack社区。同年12月末,Skyline孵化完成,成为OpenStack正式项目。(1)创建Skyline服务的数据库在MariaDB容器中创建Skyline服务的数据库并赋予远程访问权限,命令及执行结果如下所示。#grep^database/etc/kolla/passwords.yml#grep^database/etc/kolla/passwords.ymldatabase_password:BraVkrGCC4hj59EXRYp9viZj8X8YM5CBC3v6l6Bn##dockercontainerls-fname=mariadb--format='{{.ID}}'58bd2b1faf08#dockerexec-it58bd2b1faf08sh(mariadb)[mysql@controller/]$mysql-uroot-pBraVkrGCC4hj59EXRYp9viZj8X8YM5CBC3v6l6BnWelcometotheMariaDBmonitor. Commandsendwith;or\g.YourMariaDBconnectionidis30361Serverversion:10.6.11-MariaDB-1:10.6.11+maria~binarydistributionCopyright(c)2000,2018,Oracle,MariaDBCorporationAbandothers.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.MariaDB[(none)]>CREATEDATABASEskylineDEFAULTCHARACTERSETutf8DEFAULTCOLLATEutf8_general_ci;QueryOK,1rowaffected(0.004sec)MariaDB[(none)]>GRANTALLPRIVILEGESONskyline.*TO'skyline'@'localhost'IDENTIFIEDBY'mariadb_yoga';QueryOK,0rowsaffected(0.006sec)MariaDB[(none)]>GRANTALLPRIVILEGESONskyline.*TO'skyline'@'%'IDENTIFIEDBY'mariadb_yoga';QueryOK,0rowsaffected(0.005sec)MariaDB[(none)]>flushprivileges;QueryOK,0rowsaffected(0.005sec)(2)创建Skyline用户并添加admin角色创建Skyline服务的新用户skyline,密码为wxic@yoga,在默认域default中创建,并向Skyline用户分配admin角色。#openstackusercreate--domaindefault--passwordwxic@yoga#openstackusercreate--domaindefault--passwordwxic@yogaskyline#openstackroleadd--projectservice--userskylineadmin(3)修改Skyline服务配置文件创建Skyline服务需要的配置文件目录和日志文件目录。#mkdir-p/etc/skyline/var/log/skyline/var/lib/skyline#mkdir-p/etc/skyline/var/log/skyline/var/lib/skyline/var/log/nginx查询keystone内部服务端点地址。##openstackendpointlist--interfaceinternal--servicekeystone-fvalue-cURL1:5000创建配置文件skyline.yaml。#cat<<MXD>#cat<<MXD>/etc/skyline/skyline.yamldefault:access_token_expire:3600access_token_renew:1800cors_allow_origins:[]#MySQL连接地址及密码database_url:mysql://skyline:mariadb_yoga@1:3306/skylinedebug:falselog_dir:/var/log/skylinelog_file:skyline_wxic.logprometheus_basic_auth_password:'wxic@yoga'prometheus_basic_auth_user:''prometheus_enable_basic_auth:falseprometheus_endpoint:1:9091secret_key:aCtmgbcUqYUy_HNVg5BDXCaeJgJQzHJXwqbXr0Nmb2osession_name:sessionssl_enabled:trueopenstack:base_domains:-heat_user_domain修改默认区域default_region:RegionWxicenforce_new_defaults:trueextension_mapping:floating-ip-port-forwarding:neutron_port_forwardingfwaas_v2:neutron_firewallqos:neutron_qosvpnaas:neutron_vpninterface_type:public#keystone认证地址keystone_url:1:5000/v3/nginx_prefix:/api/openstackreclaim_instance_interval:604800service_mapping:baremetal:ironiccompute:novacontainer:zuncontainer-infra:magnumdatabase:troveidentity:keystoneimage:glancekey-manager:barbicanload-balancer:octavianetwork:neutronobject-store:swiftorchestration:heatplacement:placementsharev2:manilav2volumev3:cindersso_enabled:falsesso_protocols:openid#修改region名sso_region:RegionWxicsystem_admin_roles:adminsystem_adminsystem_project:servicesystem_project_domain:Defaultsystem_reader_roles:system_readersystem_user_domain:Defaultsystem_user_name:skyline#skyline用户密码system_user_password:'wxic@yoga'setting:base_settings:flavor_familiesgpu_modelsgpu_modelsusb_modelsflavor_families:architecture:x86_architecturecategories:name:general_purposeproperties:[]name:compute_optimizedproperties:[]name:memory_optimizedproperties:[]name:high_clock_speedproperties:[]architecture:heterogeneous_computingcategories:name:compute_optimized_type_with_gpuproperties:[]name:visualization_compute_optimized_type_with_gpuproperties:[]gpu_models:nvidia_t4usb_models:usb_cMXD(4)运行Skyline服务运行初始化引导容器生成数据库Skyline的表结构,并查看日志以验证数据库是否正常连接和表结构的创建。#dockerrun-d--nameskyline_bootstrap\#dockerrun-d--nameskyline_bootstrap\-eKOLLA_BOOTSTRAP=""\-v/etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml\-v/var/log:/var/log\--net=host99cloud/skyline:latest6d78f3a1c491f199000d7a4cc03d785486ac62b58e29c14e6b924ef1efa28f58查看skyline_bootstrap容器的日志。#dockerlogs-fskyline_bootstrap#dockerlogs-fskyline_bootstrap删除数据库初始化引导容器skyline_bootstrap。#dockerrm-f#dockerrm-fskyline_bootstrapskyline_bootstrap服务容器skyline,设置重启策略为always,并挂载配置文件和日志目录的数据卷,将容器的网络连接设置为主机的网络。#dockerrun-d--nameskyline--restart=always\#dockerrun-d--nameskyline--restart=always\-v/etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml\-v/var/log:/var/log\-eLISTEN_ADDRESS=1:9942\--net=host99cloud/skyline:latestbffe9d5a70c144716e8cabf1940e092f0560ad6e62bfa5218c49eca62c7416bdSkyline服务组件安装结束,在浏览器访问1:9942地址便可以看到如登录界面。实战案例——典型云平台部署系统基本环境设置(1)修改主机名////控制节点#hostnamectlset-hostnamecontroller#execbash//计算节点#hostnamectlset-hostnamecompute01#execbash(2)修改网卡地址(线上环境此步骤不需要)按照规划节点的IP规划修改各节点的IP地址,修改示例给出的内容即可,下面给出控制节点的示例修改方法,计算节点类似,按照主机规划修改好各个节点的IP地址。#cat/etc/sysconfig/network-scripts/ifcfg-ens160#cat/etc/sysconfig/network-scripts/ifcfg-ens160… … …BOOTPROTO=noneONBOOT=yesIPADDR=0PREFIX=24[root@controller~]#cat/etc/sysconfig/network-scripts/ifcfg-ens224… … …BOOTPROTO=noneONBOOT=yesIPADDR=0PREFIX=24GATEWAY=DNS1=DNS2=9载入网卡配置并启动相应的网卡。#nmclicreload#nmclicreload#nmclicupens160#nmclicupens224(3)配置本地DNF源将提供的yoga-repo文件上传到系统的/opt目录,使用离线源进行实验,修改方式如下。#mv/etc/yum.repos.d/*/media/#mv/etc/yum.repos.d/*/media/#cat<<MXD>/etc/yum.repos.d/openEuler.repo[openEuler22.09]name=openstackbaseurl=file:///opt/yoga-repo/gpgcheck=0MXD安装Ansible和Kolla-ansible控制节点执行以下命令,安装pip3。#dnf-yinstallpython3-pip#dnf-yinstallpython3-pip使用镜像源来加速pip安装包的下载速度。#mkdir.pip#mkdir.pip#cat<<WXIC>.pip/pip.conf[global]index-url=/simple[install]trusted-host=WXIC更新Python3中的pip工具到最新版本。#pip3install--ignore-installed--upgradepip#pip3install--ignore-installed--upgradepip使用以下命令安装Ansible,并查看所安装的版本号。#pip3install-U'ansible>=4,<6'#pip3install-U'ansible>=4,<6'#ansible--versionansible[core2.12.10]安装Kolla-ansible和Kolla-ansible环境必需的依赖项。////控制节点#dnf-yinstallgitpython3-devellibffi-develgccopenssl-develpython3-libselinux#dnf-yinstallopenstack-kolla-ansible#kolla-ansible--version14.2.0//计算节点#dnf-yinstallpython3-libselinux创建kolla-ansible配置文件目录。#mkdir-p/etc/kolla/{globals.d,config}#mkdir-p/etc/kolla/{globals.d,config}#chown$USER:$USER/etc/kolla将inventory文件复制到/etc/ansible目录。#mkdir/etc/ansible#mkdir/etc/ansible#cp/usr/share/kolla-ansible/ansible/inventory/*/etc/ansible执行以下命令安装AnsibleGalaxy的依赖项。#pip3installcryptography==38.0.4#pip3installcryptography==38.0.4#tarxvfkolla-ansible-deps.tar.gz-C/root/.ansibleAnsible运行配置优化对Ansible进行调优以加快执行速度,具体优化如下。#cat<<MXD>#cat<<MXD>/etc/ansible/ansible.cfg[defaults]#SSH服务关闭密钥检测host_key_checking=False#如果不使用sudo,建议开启pipelining=True#执行任务的并发数forks=100timeout=800#禁用警告#devel_warning=Falsedeprecation_warnings=False#显示每个任务花费的时间callback_whitelist=profile_tasks#记录ansible的输出,相对路径表示log_path=wxic_cloud.log#主机清单文件,相对路径表示inventoryopenstack_cluster#命令执行环境,也可更改为/bin/bashexecutable=/bin/shremote_port=22remote_user=root#默认输出的详细程度#可选值0、1、2、3、4等#值越高输出越详细verbosity=0show_custom_statsTrueinterpreter_python=auto_legacy_silent[colors]#成功的任务绿色显示ok=green#跳过的任务使用亮灰色显示skip=brightgray#警告使用亮紫色显示warn=brightpurple[privilege_escalation]become_user=root[galaxy]display_progress=TrueMXDKolla-ansible环境初始配置(1)修改主机清单文件进入/etc/ansible目录,编辑openstack_cluster清单文件来指定集群节点的主机及其所属组。在这个清单文件中还可以用来指定控制节点连接集群各个节点的用户名、密码等(注意:ansible_password为root用户的密码,所有节点的root用户密码不可以是纯数字)。#cd/etc/ansible/#cd/etc/ansible/#awk'!/^#/&&!/^$/'multinode>openstack_cluster#cat-nopenstack_cluster[all:vars]ansible_password=wxic@2024ansible_become=false44 [control]5 06 [network]7 08 [compute]9 010 [monitoring]11 012 [storage]13 0… … …(2)检查主机清单文件是否配置正确使用以下命令测试各主机之间能否连通。#dnf-yinstallsshpass#dnf-yinstallsshpass#ansibleall-mpinglocalhost|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3.10"},"changed":false,"ping":"pong"}0|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3.10"},"changed":false,"ping":"pong"}0|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3.10"},"changed":false,"ping":"pong"}(3)配置OpenStack各服务组件密码在使用Kolla-ansible部署OpenStackYoga平台时建议使用随机密码生成器来生成各个服务的密码,命令如下。#kolla-genpwd#kolla-genpwd修改Horizon界面登录密码为wxic@2024,命令如下。#sed-i's/keystone_admin_password:.*/keystone_admin_password:#sed-i's/keystone_admin_password:.*/keystone_admin_password:wxic@2024/g'/etc/kolla/passwords.yml(4)编辑globals.yml文件在使用Kolla-ansible部署OpenStackYoga平台时,最重要的便是globals.yml文件的修改,通过阅读OpenStack官方文档的服务指南,按照自己的需求选择安装相关的组件。本次部署时安装了较多组件,具体的组件列表可查看以下修改后的globals.yml文件,其中要注意一个选项是kolla_internal_vip_address的地址,该地址为/24网段里的任何一个未被使用的IP(本次部署使用00),部署完成后使用该地址登录Horizon界面。#cd/etc/kolla/#cd/etc/kolla/#cpglobals.yml{,_bak}#cat<<MXD>globals.yml---kolla_base_distro:"ubuntu"kolla_install_type:"source"openstack_release:"yoga"kolla_internal_vip_address:"00"docker_registry:""network_interface:"eth0"neutron_external_interface:"eth1"neutron_plugin_agent:"openvswitch"openstack_region_name:"RegionWxic"enable_aodh:"yes"enable_barbican:"yes"enable_ceilometer:"yes"enable_ceilometer_ipmi:"yes"enable_cinder:"yes"enable_cinder_backup:"yes"enable_cinder_backend_lvm:"yes"enable_cloudkitty:"yes"enable_gnocchi:"yes"enable_gnocchi_statsd:"yes"enable_manila:"yes"enable_manila_backend_generic:"yes"enable_neutron_vpnaas:"yes"enable_neutron_qos:"yes"enable_neutron_bgp_dragent:"yes"enable_neutron_provider_networks:"yes"enable_redis:"yes"enable_swift:"yes"glance_backend_file:"yes"glance_file_datadir_volume:"/var/lib/glance/wxic/"barbican_crypto_plugin:"simple_crypto"barbican_library_path:"/usr/lib/libCryptoki2_64.so"cinder_volume_group:"cinder-wxic"cloudkitty_collector_backend:"gnocchi"cloudkitty_storage_backend:"influxdb"nova_compute_virt_type:"kvm"swift_devices_name:"KOLLA_SWIFT_DATA"MXD在/etc/kolla/config/目录自定义Neutron和Manila服务的一些配置,在部署集群时使用自定义的配置覆盖掉默认的配置。#cd/etc/kolla/config/#cd/etc/kolla/config/#mkdirneutron#cat<<MXD>neutron/dhcp_agent.ini[DEFAULT]dnsmasq_dns_servers=,,,9MXD#cat<<MXD>neutron/ml2_conf.ini[ml2][ml2]tenant_network_types=flat,vxlan,vlan[ml2_type_vlan]network_vlan_ranges=provider:10:1000[ml2_type_flat]flat_networks=providerMXD#cat<<MXD>neutron/openvswitch_agent.ini[securitygroup]firewall_driver=openvswitch[ovs]bridge_mappings=provider:br-exMXD#cat<<MXD>manila-share.conf[generic]service_instance_flavor_id=100MXD存储节点磁盘初始化(1)初始化Cinder服务磁盘在compute01节点使用一块20GB磁盘创建cinder-volumes卷组,该卷组名和globals.yml里面“cinder_volume_group”指定的参数一致。00wz--n-<20.00g<20.00g01VSize VFree#PV#LV#SNAttrVGcinder-wxic#pvcreate/dev/nvme0n2#vgcreatecinder-wxic/dev/nvme0n2#vgscinder-wxic(2)初始化Swift服务磁盘#cat<<MXD>Swift_disk_init.shindex=0fordinnvme0n3nvme0n4nvme0n5;doparted/dev/${d}-s#cat<<MXD>Swift_disk_init.shindex=0fordinnvme0n3nvme0n4nvme0n5;doparted/dev/${d}-s--mklabelgptmkpartKOLLA_SWIFT_DATA1-1sudomkfs.xfs-f-Ld${index}/dev/${d}p1((index++))doneMXD#chmod+xSwift_disk_init.sh#./Swift_disk_init.sh#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTSnvme0n3259:5020G0disk└─nvme0n3p1259:6020G0partnvme0n4259:7020G0disk└─nvme0n4p1259:8020G0partnvme0n5259:9020G0disk└─nvme0n5p1259:10020G0part部署集群环境在控制节点安装OpenStackCLI客户端。#dnf-yinstallpython3-openstackclient#dnf-yinstallpython3-openstackclientOpenStack集群所需要的基础依赖项和修改一些配置文件(如安装Docker和修改Hosts文件等)。#kolla-ansiblebootstrap-servers#kolla-ansiblebootstrap-servers在控制节点生成Swift服务所需要的环,编写Swift-init.sh脚本,其中STORAGE_NODES的IP为Swift磁盘所在节点的IP。#cat<<MXD>Swift-init.sh#!/usr/bin/envbashSTORAGE_NODES=(0)KOLLA_SWIFT_BASE_IMAGE="kolla/swift-base:master-ubuntu-jammy"mkdir-p/etc/kolla/config/swiftdockerrun\--rm\-v/etc/kolla/config/swift/:/etc/kolla/config/swift/\$KOLLA_SWIFT_BASE_IMAGE\swift-ring-builder\/etc/kolla/config/swift/object.buildercreate1031fornodein${STORAGE_NODES[@]};doforiin{0..2};dodockerrun\--rm\-v/etc/kolla/config/swift/:/etc/kolla/config/swift/\$KOLLA_SWIFT_BASE_IMAGE\swift-ring-builder\/etc/kolla/config/swift/object.builderaddr1z1-$

温馨提示

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

评论

0/150

提交评论