手动制作OpenStack镜像

##手动制作OpenStack镜像  

##宿主机操作
#首先创建一个qcow2格式镜像文件,用于虚拟机的根磁盘,大小10G就够了。

mkdir -p /data/kvms/images/
cd /data/kvms/images/

qemu-img create -f qcow2 centos.qcow2 10G 

#使用以下脚本创建并启动虚拟机:
###先下载iso镜像
###wget http://vault.centos.org/centos/6.9/isos/x86_64/CentOS-6.9-x86_64-minimal.iso

wget http://vault.centos.org/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso

NAME=centos
ROOT_DISK=centos.qcow2
CDROM=/data/kvms/images/CentOS-7-x86_64-Minimal-1708.iso

virt-install --virt-type kvm --name $NAME --ram 1024 --disk $ROOT_DISK,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --location=$CDROM 

#virt-install --name $NAME --ram 1024 --disk $ROOT_DISK,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --cdrom=$CDROM 

##查看vnc端口
virsh vncdisplay centos

#####:0     0代表是5900,大于0的从5900之后递增。例如,显示:1,则代表5901

##虚拟机操作

##如果没有启动成功,可以在server端 执行virsh reboot centos 命令。
##再连接,安装acpi。acpid服务是用于可以让hypervisior可以重启或关闭虚拟机
yum install -y acpid

chkconfig acpid on

##安装cloud-init。用于启动虚拟机时候nova-meatdata服务进行密钥注入到虚拟机。
yum install -y epel-release.noarch
yum install -y cloud-init

##修改cloud-init启动模块加载resolv-conf。
###在/etc/cloud/cloud.cfg文件中,cloud_init_modules属性下添加一行:- resolv-conf
sed -i ‘/cloud_init_modules:/ a - resolv-conf‘ /etc/cloud/cloud.cfg
grep -A2 ‘cloud_init_modules‘ /etc/cloud/cloud.cfg

##安装 cloud-utils-growpart。该然间是支持虚拟机磁盘扩容。
yum install -y cloud-utils-growpart

#####如果上面步骤不能安装cloud-init,则可以在/etc/rc.d/rc.local文件中,在touch /var/lock/subsys/local这行前加入以下脚本

[ $(rpm -aq |grep -c ‘cloud-utils-growpart‘) -eq 0 ] && sed ‘/touch /var/lock/subsys/local/ a
if [ ! -d /root/.ssh ]; then
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Fetch public key using HTTP
ATTEMPTS=30
FAILED=0
while [ ! -f /root/.ssh/authorized_keys ]; do
curl -f http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key \
> /tmp/metadata-key 2>/dev/null
if [ \$? -eq 0 ]; then
cat /tmp/metadata-key >> /root/.ssh/authorized_keys
chmod 0600 /root/.ssh/authorized_keys
restorecon /root/.ssh/authorized_keys
rm -f /tmp/metadata-key
echo "Successfully retrieved public key from instance metadata"
echo "*****************"
echo "AUTHORIZED KEYS"
echo "*****************"
cat /root/.ssh/authorized_keys
echo "*****************"
fi
done ‘ /etc/rc.d/rc.local

#############
##关闭zeroconf route
echo "NOZEROCONF=yes" >> /etc/sysconfig/network
tail /etc/sysconfig/network

####
sed -i ‘s/^PasswordAuthentication.*/PasswordAuthentication yes/g‘ /etc/ssh/sshd_config
systemctl reload sshd

###配置console,为了确保控制台的信息出现在 dashboard 的日志标签页中,以及 nova console-log 输出中。
##centos 7 修改/etc/default/grub的配置GRUB_CMDLINE_LINUX选项. 删除 rhgb quiet 添加 console=tty0 console=ttyS0,115200n8。
###例子:
#GRUB_CMDLINE_LINUX="crashkernel=auto console=tty0 console=ttyS0,115200n8 

sed -i ‘s#GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"#GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap console=tty0 console=ttyS0,115200n8"#g‘ /etc/default/grub
grep GRUB_CMDLINE_LINUX /etc/default/grub

####更新grub配置
grub2-mkconfig -o /boot/grub2/grub.cfg 

###关闭虚拟机
shutdown -h now

##宿主机操作

##在宿主机上运行以下命名,移除宿主机信息,比如mac地址等。
yum install -y libguestfs-tools
virt-sysprep -d centos 

##删除虚拟机,镜像制作完成。

virsh undefine centos

source /root/admin-openrc.sh
glance image-create --file /data/kvms/images/centos.qcow2 --disk-format qcow2  --container-format bare --name CentOS-7.4 --progress
/CentOS-7-x86_64-Minimal-1708.iso

原文地址:https://www.cnblogs.com/blog-lhong/p/11742495.html

时间: 2024-10-07 07:18:42

手动制作OpenStack镜像的相关文章

手动制作CentOS 镜像

https://docs.openstack.org/image-guide/centos-image.html This example shows you how to install a CentOS image and focuses mainly on CentOS 7. Because the CentOS installation process might differ across versions, the installation steps might differ if

制作openstack使用的coreOS镜像

本篇文章是使用ISO镜像手动制作openstack使用的qcow2镜像文件,关于coreOS的介绍,可以看这里 1.下载coreOS镜像(444.5.0版本) 可能需要FQ #coreOS安装文件(coreos-install脚本会自动下载,这里手动下载,节省时间)wget http://stable.release.core-os.net/amd64-usr/444.5.0/coreos_production_image.bin.bz2wget http://stable.release.co

OpenStack手动制作CentOS 7 KVM镜像

在前面讲解KVM的时候,我们已经学习了如何制作KVM镜像,那么制作OpenStack使用的镜像和KVM是有一些区别的. 1.    下载CentOS 7官方ISO安装镜像这里使用国内阿里云的镜像源进行下载:http://mirrors.aliyun.com/centoshttp://mirrors.aliyun.com/cent ... 1.iso 2.    创建虚拟机磁盘镜像 [[email protected] src]# qemu-img create -f qcow2 /tmp/Cen

OpenStack镜像制作-CentOS

云平台中镜像还是很重要的,提供各种定制化的镜像使得用户体验更好. 最开始玩OpenStack的时候用的是安装文档中提到的cirros,其密码cubswin:) 刚开始感觉很怪,现在已经可以随手打出.ps:打的还很熟练:-) 然后慢慢开始想尝试各种镜像,于是乎在网上搜了很多.如下: 官方文档  http://docs.openstack.org/image-guide/content/ch_obtaining_images.html官方文档给的镜像的链接挺多的,包括CirrOS (test) im

制作OpenStack用的RHEL7系统镜像

制作OpenStack使用的RHEL7系统镜像,并进行相关设置,安装XRDP以进行远程访问. 1.在KVM中安装RHEL7.2客户机: 2.设置网卡为dhcp并onboot=yes,使得虚拟机能自动获取IP地址: vim /etc/sysconfig/network-scripts/ifcfg-eth0 确保可以联网. 3.查看SELinux状态: /usr/sbin/sestatus -v SELinux status: enabled enabled表示SELinux为开启状态 关闭SELi

制作openstack用的centos6.5镜像

目的: 在centos6.5操作系统环境下制作一个centos6.5的kvm镜像,安装cloud-init,能自动扩展根分区 一.制作环境: 操作环境是在openstack平台开一个实例,装的是centos6.5,镜像来自:http://cloud.centos.org/centos/6.5/images/CentOS-6-x86_64-GenericCloud-20140929_01.qcow2 centos社区制作的镜像,不支持自动扩展根分区,导致创建实例时不论你指定硬盘大小是多大,它都是7

6.docker手动制作镜像(基于C6)

1.制作一个基于centOS6版的Nginx镜像(单服务) 11.启动并进入容器 [[email protected] ]# docker run -it -p 80:80 centos:6.9 /bin/bash [[email protected] /]# 1.2更改容器系统的yum源和epel源 [[email protected] /]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Ce

制作Ubuntu14.04的Openstack镜像

下载好Ubuntu官方镜像安装文件:不要使用desktop版,在virtualbox和vm上都安装报错,因为不需要桌面,所有没去管了. 第一步.准备好如下文件: 1.ubuntu-14.04.4-server-amd64.iso 2.virtual-box 5.0.16 (Vmware也可以,类似安装,创建虚拟机硬盘是选择单一文件可方便转换) 第二步.安装一个虚拟机: 可以使用之前下载的ubuntu-14.04.4-server-amd64.iso安装 进入虚拟机安装qemu-kvm,用来转换v

关于制作openstack虚拟机镜像的心得

ubuntu镜像相关1.系统安装好,根据实际情况设定自己的配置之后那么继续往下做 2.清除/tmp 目录 3.清除日志 4.清除history 命令历史记录history -c && shutdown -h now 5.清除网络相关硬件生成信息操作系统会在/etc/sysconfig/network-scripts/ifcfg-eth0 和 /etc/udev/rules.d/70-persistent-net.rules 这类文件记录下网卡MAC地址.但是,虚拟机的网卡MAC地址在每次虚