当前位置:首页 » 《资源分享》 » 正文

DevStack 部署 OpenStack 单节点

23 人参与  2024年04月30日 08:35  分类 : 《资源分享》  评论

点击全文阅读


Devstack 简介

DevStack 是一系列可扩展的脚本,用于基于 git master 的最新版本快速调出完整的 OpenStack 环境。devstack 以交互方式用作开发环境和 OpenStack 项目大部分功能测试的基础。

devstack 通过执行 stack.sh 脚本,搭建 openstack 环境,依据 local.conf 参数,决定提供哪些服务;使用 systemd 来管理 devstack 部署的 OpenStack;DevStack 插件。支持额外的 Openstack 服务,以插件接口的概念,扩展 openstack 服务。

在这里插入图片描述
官方文档:
https://docs.openstack.org/devstack/latest/

项目地址:
https://opendev.org/openstack/devstack

https://github.com/openstack/devstack

参考文档:

https://docs.openstack.org/devstack/latest/guides/single-machine.html

https://docs.openstack.org/contributors/zh_CN/code-and-documentation/devstack.html

devstack 安装

操作系统要求

从干净且最小化的 Linux 系统安装开始。 DevStack 尝试支持 Ubuntu、Rocky Linux 和 openEuler的两个最新 LTS 版本。如果您没有偏好,Ubuntu 22.04 (Jammy) 是经过最多测试的,并且可能会是最流畅的。

虚拟化引擎说明

OpenStack支持两种主要的虚拟化类型:kvmqemu。DevStack会根据宿主机的硬件和内核支持自动选择使用KVM还是QEMU作为虚拟化驱动。如果物理机CPU启用了虚拟化或虚拟机CPU启用了嵌套虚拟化功能,则会使用运行性能更好的kvm类型。显式配置方法为在devstack local.conf中指定LIBVIRT_TYPE=kvm参数。

如何确定是否启用可参考 devstack 官方文档 devstack-with-nested-kvm。

网络配置要求

官方说明文档:https://docs.openstack.org/devstack/latest/networking.html

devstack网络设置支持两种方式:

Dedicated Guest Interface:主机需要多个网卡Shared Guest Interface:主机仅需单网卡

注意:本次部署为单网卡模式,所有网络流量经过ens33网卡。由于br-ex网桥配置没有持久化,重启devstack主机br-ex上的IP会丢失,部署完成后会介绍如何持久化配置。

提供浮动IP地址段

确定用于将 OpenStack 云与现有网络集成的接口上的网络配置。例如,如果 DHCP 在您的网络上给出的 IP 是 192.168.72.X - 其中 X 介于 100 和 200 之间,您将能够使用 IP 201-254 作为浮动 ip。
在这里插入图片描述

节点规划

基于 ubuntu 22.04 操作系统,使用 Devstack 部署工具搭建 all-in-one 的 OpenStack 开发环境。

主机名节点IPCPU内存磁盘OS网卡
devstack192.168.72.338C16G100GUbuntu 22.04 LTSens33

前置准备

系统更新

root@devstack:~# apt-get update && apt-get upgrade -y 

配置主机名

hostnamectl set-hostname devstack

配置时间同步

apt install -y chronytimedatectl set-timezone Asia/Shanghai

配置国内阿里APT源

cp /etc/apt/sources.list{,.bak}sed -i 's#http://cn.archive.ubuntu.com/#http://mirrors.aliyun.com/#g' /etc/apt/sources.list

配置国内阿里PIP源,需要切换到stack用户

mkdir ~/.pipcat > ~/.pip/pip.conf << EOF [global]trusted-host=mirrors.aliyun.comindex-url=https://mirrors.aliyun.com/pypi/simple/EOF

由于众所周知的原因,devstack 从 github 直接下载二进制文件时依然可能因为网络原因失败。最稳妥的办法是通过下面的科技手段。

配置http代理(可选,需要科技)

cat >/etc/profile.d/proxy.sh<<EOFexport http_proxy="http://192.168.72.1:7890"export https_proxy="http://192.168.72.1:7890"export no_proxy=192.168.72.0/24,10.0.0.0/8,localhost,127.0.0.0/8,.localdomainEOFsource /etc/profile

ens33网卡配置如下

root@devstack:~# cat /etc/netplan/00-installer-config.yamlnetwork:  version: 2  ethernets:    ens33:      dhcp4: false      addresses:        - 192.168.72.33/24      nameservers:        addresses:          - 223.5.5.5          - 223.6.6.6      routes:        - to: default          via: 192.168.72.8

网卡信息如下

root@devstack:~# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host        valid_lft forever preferred_lft forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000    link/ether 00:50:56:aa:3e:12 brd ff:ff:ff:ff:ff:ff    altname enp2s1    inet 192.168.72.33/24 brd 192.168.72.255 scope global ens33       valid_lft forever preferred_lft forever    inet6 fe80::250:56ff:feaa:3e12/64 scope link        valid_lft forever preferred_lft forever

添加 Stack 用户

DevStack 应以启用 sudo 的非 root 用户身份运行(标准登录云映像,例如“ubuntu”或“cloud-user”通常就可以)。

如果您不使用云映像,则可以创建一个单独的stack用户来运行 DevStack

root@devstack:~# sudo useradd -s /bin/bash -d /opt/stack -m stack

确保 stack 用户的主目录对所有人都具有可执行权限,因为基于 RHEL 的发行版使用 700 创建它,而 Ubuntu 21.04+ 使用 750 创建它,这可能会在运行期间导致问题部署。

sudo chmod +x /opt/stack

由于该用户将对您的系统进行许多更改,因此它应该具有 sudo 权限:

echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stacksudo -u stack -i

下载 DevStack

stack@devstack:~$ git clone https://opendev.org/openstack/devstackstack@devstack:~$ cd devstack

创建 local.conf

devstack 存储库samples/目录下包含一个用于安装 OpenStack 和配置文件模板的脚本。

在 devstack git 存储库的根目录下创建一个带有四个预设密码的 local.conf 文件。

stack@devstack:~/devstack$ cat local.conf[[local|localrc]]# git baseGIT_BASE="https://github.com"#GIT_BASE="https://opendev.org"#GIT_BASE="http://git.trystack.cn"# libvirt#LIBVIRT_TYPE=kvm# management & api networkHOST_IP=192.168.72.33DEST=/opt/stack/LOGDIR=$DEST/logsLOGFILE=$LOGDIR/stack.sh.log# CredentialsADMIN_PASSWORD=secretDATABASE_PASSWORD=$ADMIN_PASSWORDRABBIT_PASSWORD=$ADMIN_PASSWORDSERVICE_PASSWORD=$ADMIN_PASSWORD# Service informationSERVICE_HOST=192.168.72.33MYSQL_HOST=$SERVICE_HOSTRABBIT_HOST=$SERVICE_HOSTGLANCE_HOSTPORT=$SERVICE_HOST:9292# Neutron optionsQ_USE_SECGROUP=TrueFLOATING_RANGE="192.168.72.0/24"Q_FLOATING_ALLOCATION_POOL=start=192.168.72.220,end=192.168.72.230PUBLIC_NETWORK_GATEWAY="192.168.72.8"PUBLIC_INTERFACE=ens33# Open vSwitch provider networking configurationQ_USE_PROVIDERNET_FOR_PUBLIC=TrueOVS_PHYSICAL_BRIDGE=br-exPUBLIC_BRIDGE=br-exOVS_BRIDGE_MAPPINGS=public:br-exEOF

参数说明:

GIT_BASE:可选,指定git仓库源,网络较差时推荐国内trystack镜像仓库;LIBVIRT_TYPE=kvm:可选,显式指定libvirt type,默认openstack能够自动判断。HOST_IP: 本机IP地址ADMIN_PASSWORD:OpenStack 用户 admindemo 的密码DATABASE_PASSWORD:MySQL 管理员用户密码RABBIT_PASSWORD:RabbitMQ 密码SERVICE_PASSWORD:服务组件和 KeyStone 交互的密码FLOATING_RANGE:用于 GUEST VM 访问外部网络,以通过向GUEST VM分配 FLOATING IP 来从外部网络访问GUEST VM。Q_FLOATING_ALLOCATION_POOL:为devstack分配指定的外部IP地址范围,因为本地其他机器也在使用该物理网段。PUBLIC_INTERFACE: 节点网卡名称PUBLIC_NETWORK_GATEWAY:外部网络网关地址Q_USE_PROVIDERNET_FOR_PUBLIC:允许配置Neutron L3 Agent的外部接口使用provider网络,从而实现对OpenStack云实例的公共网络访问。OVS_PHYSICAL_BRIDGE:指定了一个OVS网桥br-ex作为物理网桥,外部网络的流量将通过这个OVS网桥br-ex,底层物理网卡将连接到br-ex网桥上PUBLIC_BRIDGE:直接将之前定义的br-ex网桥指定为公共网络的网桥,所有外部网络的流量都将通过br-ex网桥OVS_BRIDGE_MAPPINGS:映射外部网络到之前定义的br-ex网桥

在某些发行版中,您可能还需要设置 HOST_IP 。 是否需要这样做将取决于操作系统中网络接口使用的命名约定。

这是开始使用 DevStack 所需的最低配置。devstack 存储库中的sample目录下有一个示例 local.conf 文件。

开始安装

stack@devstack:~/devstack$ ./stack.sh

这将需要 15 - 30 分钟,很大程度上取决于您的互联网连接速度。在此过程中将安装许多 git 树和软件包。

运行完成后日志如下,记录访问 Horizon 的URL地址及用户密码。

......=========================DevStack Component Timing (times are in seconds)  =========================wait_for_service      14async_wait            65osc                  190apt-get              745test_with_retry        4dbsync                 3pip_install          182apt-get-update        18run_process           55git_timed            141-------------------------Unaccounted time     331=========================Total runtime        1748================= Async summary================= Time spent in the background minus waits: 279 sec Elapsed time: 1749 sec Time if we did everything serially: 2028 sec Speedup:  1.15952Post-stack database query stats:+------------+-----------+-------+| db         | op        | count |+------------+-----------+-------+| keystone   | SELECT    | 35246 || keystone   | INSERT    |    93 || neutron    | SELECT    |  4668 || neutron    | CREATE    |     1 || neutron    | SHOW      |     4 || neutron    | INSERT    |  4112 || neutron    | DELETE    |    27 || neutron    | UPDATE    |   120 || placement  | SELECT    |    46 || placement  | INSERT    |    57 || placement  | SET       |     1 || nova_api   | SELECT    |   114 || nova_cell0 | SELECT    |    73 || nova_cell1 | SELECT    |   145 || nova_cell0 | INSERT    |     5 || nova_cell0 | UPDATE    |     5 || placement  | UPDATE    |     3 || nova_cell1 | INSERT    |     4 || nova_cell1 | UPDATE    |    19 || cinder     | SELECT    |   115 || cinder     | INSERT    |     5 || cinder     | UPDATE    |     1 || glance     | SELECT    |    49 || glance     | INSERT    |     6 || glance     | UPDATE    |     2 || nova_api   | INSERT    |    20 || nova_api   | SAVEPOINT |    10 || nova_api   | RELEASE   |    10 || cinder     | DELETE    |     1 |+------------+-----------+-------+This is your host IP address: 192.168.72.33This is your host IPv6 address: ::1Horizon is now available at http://192.168.72.33/dashboardKeystone is serving at http://192.168.72.33/identity/The default users are: admin and demoThe password: secretServices are running under systemd unit files.For more information see: https://docs.openstack.org/devstack/latest/systemd.htmlDevStack Version: 2024.1Change: 57c685496f0ef8da0d6ebc50845f752caf29948a Merge "Drop nodesets with ubuntu-xenial" 2024-02-26 21:04:24 +0000OS Version: Ubuntu 22.04 jammy2024-03-02 09:05:06.156 | stack.sh completed in 1749 seconds.

devstack提供了一个环境文件,可以使用它通过 CLI 与openstack进行交互:

# source openrc file to load your environment with OpenStack CLI credsstack@devstack:~/devstack$ pwd/opt/stack/devstackstack@devstack:~/devstack$ . openrc

查看devstack创建的网络,devstack默认部署OVN网络组件。

stack@devstack:~/devstack$ openstack network list+--------------------------------------+---------+----------------------------------------------------------------------------+| ID                                   | Name    | Subnets                                                                    |+--------------------------------------+---------+----------------------------------------------------------------------------+| 679265d3-8037-4674-9701-e21232a4f841 | shared  | ea1b3605-c3c8-47c6-a1aa-02bffcec3100                                       || c951b9ff-6c45-4b22-adec-33cc53855402 | public  | 5df48767-cb6b-400e-9420-2713f61cd0cd, b4cf068b-5370-4c69-b75b-3e162ca68bfd || e903653a-ce19-485b-ad87-f681161612b0 | private | 1f2d8dda-60ef-4ae9-a4d4-d9ff7348a97b, f07411eb-eddc-4bba-b419-8d37ef0f97c6 |+--------------------------------------+---------+----------------------------------------------------------------------------+

查看devstack创建的镜像

stack@devstack:~/devstack$ openstack image list+--------------------------------------+--------------------------+--------+| ID                                   | Name                     | Status |+--------------------------------------+--------------------------+--------+| 85c77d94-83c5-452f-b6e8-aa52592fe8b9 | cirros-0.6.2-x86_64-disk | active |+--------------------------------------+--------------------------+--------+

安装完成

您现在已经有了一个可以运行的 DevStack!恭喜!

您的 devstack 将安装 keystoneglancenovaplacementcinderneutron 。浮动IP将可用,guests 可以访问外部世界。您可以访问 Horizo​​n 来体验 OpenStack 的 Web 界面,并从那里管理虚拟机、网络、卷和映像。您可以在 shell 中 source openrc ,然后使用 openstack 命令行工具来管理您的 devstack。您可以 cd /opt/stack/tempest 并运行已配置为与您的DevStack一起使用的Tempest测试。您可以对 OpenStack 进行代码更改并验证它们。

通过浏览器访问IP地址查看是否能访问并登录成功

http://192.168.72.33/dashboard

在这里插入图片描述
切换到demo项目,查看网络拓扑图
在这里插入图片描述

查看主机网卡变化,ens33网卡上的IP地址被转移到br-ex网桥上。

stack@devstack:~/devstack$ ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host        valid_lft forever preferred_lft forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 1000    link/ether 00:50:56:aa:3e:12 brd ff:ff:ff:ff:ff:ff    altname enp2s1    inet6 fe80::250:56ff:feaa:3e12/64 scope link        valid_lft forever preferred_lft forever3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000    link/ether da:1e:a6:0a:ff:8e brd ff:ff:ff:ff:ff:ff4: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000    link/ether 5a:5a:ae:d8:cb:06 brd ff:ff:ff:ff:ff:ff5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000    link/ether 52:54:00:6b:96:52 brd ff:ff:ff:ff:ff:ff    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0       valid_lft forever preferred_lft forever6: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000    link/ether 00:50:56:aa:3e:12 brd ff:ff:ff:ff:ff:ff    inet 192.168.72.33/24 brd 192.168.72.255 scope global br-ex       valid_lft forever preferred_lft forever    inet 192.168.72.8/24 scope global secondary br-ex       valid_lft forever preferred_lft forever    inet6 2001:db8::2/64 scope global        valid_lft forever preferred_lft forever    inet6 fe80::ecea:89ff:fe9a:b04b/64 scope link        valid_lft forever preferred_lft forever

如果重启devstack主机,IP地址将重新配置到ens33上,这将导致br-ex网桥丢失IP地址,主机IP也无法通过SSH连接,导致网络异常。

可以通过手动重新应用网桥配置进行恢复,实际br-ex上的ens33网络接口连接并未丢失,只是IP地址丢失。

清理ens33上的网卡配置(可选)

sudo ip addr flush ens33

将ens33网卡连接到br-ex网桥上(可选)

sudo ovs-vsctl add-port br-ex ens33

重新将IP地址分配给br-ex网卡,然后启动网卡

sudo ip addr add 192.168.72.33/24 dev br-exsudo ip link set dev br-ex up

或通过修改ens33配置文件方式来持久化配置

stack@devstack:~/devstack$ sudo cat /etc/netplan/00-installer-config.yaml network:  version: 2  ethernets:    ens33:      dhcp4: false  bridges:    br-ex:      openvswitch: {}      dhcp4: false      addresses: [192.168.72.33/24]      routes:        - to: default          via: 192.168.72.8      nameservers:        addresses: [223.5.5.5, 223.6.6.6]      interfaces: [ens33]

重新应用网络配置

netplan apply

查看部署的systemd服务

stack@devstack:~$ systemctl list-units | grep -i devstack  devstack@c-api.service                                                                    loaded active running   Devstack devstack@c-api.service  devstack@c-sch.service                                                                    loaded active running   Devstack devstack@c-sch.service  devstack@c-vol.service                                                                    loaded active running   Devstack devstack@c-vol.service  devstack@dstat.service                                                                    loaded active running   Devstack devstack@dstat.service  devstack@etcd.service                                                                     loaded active running   Devstack devstack@etcd.service  devstack@g-api.service                                                                    loaded active running   Devstack devstack@g-api.service  devstack@keystone.service                                                                 loaded active running   Devstack devstack@keystone.service  devstack@n-api-meta.service                                                               loaded active running   Devstack devstack@n-api-meta.service  devstack@n-api.service                                                                    loaded active running   Devstack devstack@n-api.service  devstack@n-cond-cell1.service                                                             loaded active running   Devstack devstack@n-cond-cell1.service  devstack@n-cpu.service                                                                    loaded active running   Devstack devstack@n-cpu.service  devstack@n-novnc-cell1.service                                                            loaded active running   Devstack devstack@n-novnc-cell1.service  devstack@n-sch.service                                                                    loaded active running   Devstack devstack@n-sch.service  devstack@n-super-cond.service                                                             loaded active running   Devstack devstack@n-super-cond.service  devstack@placement-api.service                                                            loaded active running   Devstack devstack@placement-api.service  devstack@q-ovn-metadata-agent.service                                                     loaded active running   Devstack devstack@q-ovn-metadata-agent.service  devstack@q-svc.service                                                                    loaded active running   Devstack devstack@q-svc.service  system-devstack.slice                                                                     loaded active active    Slice /system/devstack

查看磁盘信息,devstack新建了一个loop设备。

root@devstack:~# lsblkNAME                                                                    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS......loop6                                                                     7:6    0    30G  0 loop ├─stack--volumes--lvmdriver--1-stack--volumes--lvmdriver--1--pool_tmeta 253:1    0    32M  0 lvm  │ └─stack--volumes--lvmdriver--1-stack--volumes--lvmdriver--1--pool     253:3    0  28.5G  0 lvm  └─stack--volumes--lvmdriver--1-stack--volumes--lvmdriver--1--pool_tdata 253:2    0  28.5G  0 lvm    └─stack--volumes--lvmdriver--1-stack--volumes--lvmdriver--1--pool     253:3    0  28.5G  0 lvm  sda                                                                       8:0    0   100G  0 disk ├─sda1                                                                    8:1    0     1G  0 part /boot/efi├─sda2                                                                    8:2    0     2G  0 part /boot└─sda3                                                                    8:3    0  96.9G  0 part   └─ubuntu--vg-lv--0                                                    253:0    0  96.9G  0 lvm  /

查看逻辑卷,新建了 loop6 物理卷、stack-volumes-lvmdriver-1卷组以及stack-volumes-lvmdriver-1-pool逻辑卷。

root@devstack:~# pvs  PV         VG                        Fmt  Attr PSize   PFree  /dev/loop6 stack-volumes-lvmdriver-1 lvm2 a--  <30.00g 1.43g  /dev/sda3  ubuntu-vg                 lvm2 a--  <96.95g    0 root@devstack:~# vgs  VG                        #PV #LV #SN Attr   VSize   VFree  stack-volumes-lvmdriver-1   1   1   0 wz--n- <30.00g 1.43g  ubuntu-vg                   1   1   0 wz--n- <96.95g    0 root@devstack:~# lvs  LV                             VG                        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert  stack-volumes-lvmdriver-1-pool stack-volumes-lvmdriver-1 twi-a-tz--  28.50g             0.00   10.45                             lv-0                           ubuntu-vg                 -wi-ao---- <96.95g                                                    

项目服务都已在systemd中注册。 每个服务都以 devstack@ 为前缀。 因此,您可以通过systemd使用以下命令验证Cinder Volume进程是否正在运行:

systemctl status devstack@c-vol.service

由于systemd接受通配符,因此与DevStack关联的所有服务的状态都可以显示为:

systemctl status devstack@*

也可以通过systemd查看正在运行的服务的日志。 要显示Cinder Volume服务的日志,可以使用以下命令:

journalctl -u devstack@c-vol.service

可以在 Using Systemd in DevStack 页面上找到有关使用systemd与DevStack进行交互的更完整参考。

创建虚拟机测试

创建 cirros 虚拟机

在demo项目中,private 网络通过路由器连接到了public网络,因此在该网络下创建虚拟机默认能够直接访问外网。

在private网络上基于cirros镜像创建虚拟机,为了能够让cirros虚拟机解析外网域名,首先为private网络配置DNS服务器。

切换到demo项目,点击网络–>private–>private-subnet,编辑子网:

在这里插入图片描述
点击子网详情,配置DNS服务器地址,这里以阿里云DNS服务器为例:
在这里插入图片描述
创建虚拟机实例
在这里插入图片描述
选择private网络(部分配置选项忽略)
在这里插入图片描述
为实例绑定浮动IP
在这里插入图片描述
查看实例绑定的浮动IP
在这里插入图片描述
点击实例名称,进入实例控制台,以ping github网站为例,测试访问外网
在这里插入图片描述

配置安全组规则,入口方向放通ICMP协议及SSH协议,允许外网对实例进行ping和远程ssh登录
在这里插入图片描述

通过外网PING cirros实例浮动IP地址

C:\Users\pc>ping 192.168.72.221正在 Ping 192.168.72.221 具有 32 字节的数据:来自 192.168.72.221 的回复: 字节=32 时间=4ms TTL=63来自 192.168.72.221 的回复: 字节=32 时间=2ms TTL=63来自 192.168.72.221 的回复: 字节=32 时间=1ms TTL=63来自 192.168.72.221 的回复: 字节=32 时间=1ms TTL=63192.168.72.221 的 Ping 统计信息:    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位):    最短 = 1ms,最长 = 4ms,平均 = 2ms

通过外网SSH 登录到cirros实例,默认密码为gocubsgo

C:\Users\pc>ssh cirros@192.168.72.221cirros@192.168.72.221's password:$$ ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1442 qdisc pfifo_fast qlen 1000    link/ether fa:16:3e:ae:ff:3b brd ff:ff:ff:ff:ff:ff    inet 10.0.0.20/26 brd 10.0.0.63 scope global dynamic noprefixroute eth0       valid_lft 42384sec preferred_lft 36984sec    inet6 fdaa:a0ad:306b:0:f816:3eff:feae:ff3b/64 scope global noprefixroute flags 100       valid_lft forever preferred_lft forever    inet6 fe80::f816:3eff:feae:ff3b/64 scope link       valid_lft forever preferred_lft forever

通过网络拓扑图查看创建的实例
在这里插入图片描述

创建 ubuntu 虚拟机

下载ubuntu cloud image

wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img

注意,在ubuntu cloud image中,默认登录帐户为ubuntu,没有密码。

上传ubuntu cloud image 到openstack
在这里插入图片描述

创建密钥对,弹出私钥文件sshkey.pem下载到本地,去除后缀重命名为sshkey。然后复制公钥内容保存到本地sshkey.pub文件。

$ cat sshkey.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSrYTk+s8mFWk/QennC7iL9cgwrQzElZRKOFBChykZEecfICQpXpNKDmHzdX7lNkPR69EGT/DTLk8S0IvsXktSH8/B4yVzzl9vfLm2c8GB/naHKSpXjO+gY8jcdTtKnn647GuEaGe7obChCFhiIfvgJQ7AZrJAQCtDLimO66yDfFaKOLSCtL4tIlRHp6U64JGdBc48ihsaHKrVJS4hlQkxGXPcsUvbQsnBTy9sR9CCxctXgr149JBwyQwBeBzLmHMvSYLkKe2uIeLghRZ6mZF2MZopZqA2FodVzxozq9U9KV7yV6k69Zw5UQJZwr157kh/GbwYC1uQu+cdl7N9Uj0h Generated-by-Nova

查看保存到本地的公钥和私钥文件

PS C:\Users\pc\Desktop> ls .\sshkeys\    目录: C:\Users\will\Desktop\sshkeysMode                 LastWriteTime         Length Name----                 -------------         ------ -----a----          2024/3/3     22:05           1675 sshkey-a----          2024/3/3     22:06            398 sshkey.pub

创建ubuntu实例,在源中ubuntu2204镜像,选择绑定Key Pair。并绑定浮动IP地址。
在这里插入图片描述
获取实例浮动IP,通过sshkey远程连接到实例。SecureCRT工具配置示例:
在这里插入图片描述
实例连接后如下

ubuntu@ubuntu2204-demo:~$ sudo -iroot@ubuntu2204-demo:~# root@ubuntu2204-demo:~# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host        valid_lft forever preferred_lft forever2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1442 qdisc fq_codel state UP group default qlen 1000    link/ether fa:16:3e:65:9d:f0 brd ff:ff:ff:ff:ff:ff    altname enp0s3    inet 10.0.0.47/26 metric 100 brd 10.0.0.63 scope global dynamic ens3       valid_lft 40531sec preferred_lft 40531sec    inet6 fdaa:a0ad:306b:0:f816:3eff:fe65:9df0/64 scope global mngtmpaddr noprefixroute        valid_lft forever preferred_lft forever    inet6 fe80::f816:3eff:fe65:9df0/64 scope link        valid_lft forever preferred_lft foreverroot@ubuntu2204-demo:~# root@ubuntu2204-demo:~# cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.4 LTS"NAME="Ubuntu"VERSION_ID="22.04"VERSION="22.04.4 LTS (Jammy Jellyfish)"VERSION_CODENAME=jammyID=ubuntuID_LIKE=debianHOME_URL="https://www.ubuntu.com/"SUPPORT_URL="https://help.ubuntu.com/"BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"UBUNTU_CODENAME=jammy

创建 rocky linux虚拟机

下载Rocky-9 cloud image

wget https://download.rockylinux.org/pub/rocky/9.3/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2

注意,在rocky linux cloud image中,默认登录帐户为rocky,没有密码。

实例创建流程类似,注意SSH连接时指定账号为rocky。连接rocky实例后信息如下:

[rocky@rocky9-demo ~]$ sudo -i[root@rocky9-demo ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host        valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1442 qdisc fq_codel state UP group default qlen 1000    link/ether fa:16:3e:91:55:ea brd ff:ff:ff:ff:ff:ff    altname enp0s3    altname ens3    inet 10.0.0.45/26 brd 10.0.0.63 scope global dynamic noprefixroute eth0       valid_lft 42526sec preferred_lft 42526sec    inet6 fdaa:a0ad:306b:0:f816:3eff:fe91:55ea/64 scope global noprefixroute        valid_lft forever preferred_lft forever    inet6 fe80::f816:3eff:fe91:55ea/64 scope link noprefixroute        valid_lft forever preferred_lft forever[root@rocky9-demo ~]# [root@rocky9-demo ~]# cat /etc/os-release NAME="Rocky Linux"VERSION="9.3 (Blue Onyx)"ID="rocky"ID_LIKE="rhel centos fedora"VERSION_ID="9.3"PLATFORM_ID="platform:el9"PRETTY_NAME="Rocky Linux 9.3 (Blue Onyx)"ANSI_COLOR="0;32"LOGO="fedora-logo-icon"CPE_NAME="cpe:/o:rocky:rocky:9::baseos"HOME_URL="https://rockylinux.org/"BUG_REPORT_URL="https://bugs.rockylinux.org/"SUPPORT_END="2032-05-31"ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9"ROCKY_SUPPORT_PRODUCT_VERSION="9.3"REDHAT_SUPPORT_PRODUCT="Rocky Linux"REDHAT_SUPPORT_PRODUCT_VERSION="9.3"

查看最终上传的镜像
在这里插入图片描述
查看最终创建的实例
在这里插入图片描述
查看网络拓扑图
在这里插入图片描述

删除 DevStack

要关闭在节点上运行的DevStack实例,应使用以下命令:

./unstack.sh

此命令清除在节点上执行的OpenStack安装。 这包括:

停止项目服务,mysql和rabbitmq清理iSCSI卷清除临时LVM挂载

在DevStack运行失败的情况下,首先要尝试运行 unstack.sh 。 如果后续运行失败,则可以使用以下命令更彻底地删除DevStack组件:

./clean.sh

clean.sh 运行执行 unstack.sh 的步骤以及其他清理工作:

从/etc删除项目的配置文件删除日志文件清理Hypervisor删除.pyc文件清理数据库等等

点击全文阅读


本文链接:http://zhangshiyu.com/post/102189.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1