openstack下如何生成centos9 centos10 和Ubuntu24 镜像

如何生成一个centos 10和centos 9 的镜像
1. 下载 对应的版本

wget https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-10-latest.x86_64.qcow2

wget https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20241216.0.x86_64.qcow2
2 生成镜像

glance image-create --name centos10 --disk-format=qcow2 --container-format=bare --file=/root/CentOS-Stream-GenericCloud-10-latest.x86_64.qcow2

glance image-create --name centos9 --disk-format=qcow2 --container-format=bare --file=/root/CentOS-Stream-GenericCloud-9-20241216.0.x86_64.qcow2

由于镜像的root密码不知道,通过下面的命令不能改变密码。

systemctl start libvirtd

export LIBGUESTFS_BACKEND=direct

virt-customize -a CentOS-Stream-GenericCloud-10-latest.x86_64.qcow2 --root-password password:xxxxx

但是通过此命令改变ubuntu镜像的root密码

virt-customize -a noble-server-cloudimg.img --root-password password:XXX
3 生成虚拟机

nova boot --image centos10 --flavor 4cpu8G-disk50G --security-groups default --availability-zone nova:controller02 --nic net-name=provider,v4-fixed-ip=10.0.41.13 k8s-master03
4 修改root密码(10和9版本一样)

重启虚拟机,

在 grub 界面按字母e

找到 linux 一行,这一行中加入 init=/bin/bash, 并删掉 console=tty0 console=ttyS0,115200, 把 ro 改为 rw

按 ctrl + x 继续启动

这时就可以直接登录到系统里面,

mount -o remount,rw /

passwd root 修改密码

touch /.autorelabel(一定要使用这个命令,不然不能生效)

exec /sbin/init

硬重启操作系统 nova reboot --hard
5 修改网络

由于默认是dhcp获取网络地址,需要指定网络地址,所以需要做如下的修改

去掉 cloud-init服务

rpm -qa | grep cloud-init 查看 是否有此服务

yum remove cloud-init

10版本

vi /etc/NetworkManager/system-connections/ens3.nmconnection 内容如下:

ipv4

#method=auto

method=manual

address1=10.0.41.13/26

dns=10.2.10.1,10.2.10.2

gateway=10.0.41.1

必修修改同一个目录下cloud-init-ens3.nmconnection,修改文件名也没有作用,修改内容如下:

ipv4

method=manual

may-fail=true

把auto 修改为上面的manual ,不然会生效 dhcp获得地址。

9 版本

修改/etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=static

IPADDR=10.0.41.14

NETMASK=255.255.255.192

GATEWAY=10.0.41.1

一定要去掉mac地址这行不然设置静态地址不成功

6 修改ssh,可以使用密码登陆

vi /etc/ssh/sshd_config

PermitRootLogin yes

PasswordAuthentication yes

还需要修改/etc/ssh/sshd_config.d/50-cloud-init.conf,不然也无法登陆

PasswordAuthentication yes # no 修改为yes

systemctl restart sshd
7 如果可以用用户名密码登陆,可以生产虚拟机,虚拟机可以快照,快照可以生产镜像。
可以拿快照或者镜像生产虚拟机

glance image-create --name "CentOS10-2025-1-6" --file /var/lib/glance/images/12fa35d2-6507-4baa-ac68-2e828d702e92 --disk-format qcow2 --container-format bare --visibility public --progres


如何生产一个ubuntu 24

  1. 下载对应的版本

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

2 设置root密码

由于镜像的root密码不知道,通过下面的命令改变密码。

systemctl start libvirtd

export LIBGUESTFS_BACKEND=direct

virt-customize -a noble-server-cloudimg.img --root-password password:XXX

3 配置网络

vi /etc/netplan/50-cloud-init.yaml

network:

version: 2

ethernets:

ens3:

match:

macaddress: "fa:16:3e:ec:35:23"

dhcp4: no

dhcp6: no

addresses: [10.0.41.12/24]

gateway4: 10.0.41.1

nameservers:

addresses: [10.2.10.1, 10.2.10.2]

set-name: "ens3"

命令

netplan apply

4 修改ssh,允许用户名密码登陆

用户名和密码登陆修改如下的配置文件

/etc/ssh/sshd_config.d/60-cloudimg-settings.conf

还需要修改/etc/ssh/sshd_config, 修改见上面

相关推荐
xy123064 天前
OpenStack Train 部署实战(一):双节点基础环境搭建
openstack
别多香了4 天前
OpenStack 核心服务与实操
openstack
哈里谢顿9 天前
devstack重启恢复方案
openstack
哈里谢顿9 天前
openstack 中的二层网络跟三层网络范围对比
openstack
哈里谢顿9 天前
devstack中的systemd管理介绍
openstack
哈里谢顿9 天前
在远程服务器上部署 DevStack 后如何访问 Horizon Dashboard?
openstack
哈里谢顿9 天前
使用devstack部署openstack
openstack
忧思幽释10 天前
Mariadb Galera集群在Openstack中的应用
wpf·openstack·mariadb
阿干tkl10 天前
本地源方式安装开源 OpenStack (V版本)
开源·openstack
孪生质数-11 天前
Ansible基础入门
服务器·自动化·ansible·openstack