openstack第一篇:镜像操作

镜像基础操作

#创建镜像
openstack server image create <虚机名称> --name <镜像名称>
#下载镜像
glance image-download --file <下载后的文件名称> <镜像ID>
#镜像压缩
qemu-img convert -O qcow2 -c CT-Centos7.9_source_v1.1_20220729.qcow2 CT-Centos7.9_source_v1.1_20220729_new.qcow2
#镜像格式转换(qcow2转raw)
qemu-img convert -f qcow2 -O raw <创建前qcow2镜像文件名称> <创建后raw镜像文件名称>
#查看镜像文件详细信息
qemu-img info <镜像文件名称>
#上传镜像
glance image-create --name <创建后镜像列表内的名称> --disk-format=raw --container-format=bare --file=<镜像文件> --visibility=public --protected=False --property os_type=linux --property hw_qemu_guest_agent=yes --property hw_vif_multiqueue_enabled=true --progress

#查看镜像详细信息(已创建)
glance image-show <镜像ID>
#删除镜像
glance image-delete <镜像ID>

批量创建(串行创建完就删除)

  • 进入镜像所在目录,保证镜像后缀是“.qcow2”结尾
  • 默认遍历创建当前目录下包含qcow2字段的文件
  • 如果需要自定义镜像文件的话需要将SaveImageNameToFile()函数注释掉,并新建image-list.txt写入镜像文件列表,执行脚本
cat > ./CreateImages.sh << EOF
#!/bin/bash
# author:ywz
source /root/admin-openrc.sh

ImagePWD=`pwd`
SaveImageNameToFile() {
    ls -l | grep qcow2 | awk {'print $9'} > ./image-list.txt
}

AssembleCreateCommand() {
    for ImageFileName in `cat ./image-list.txt`
    do
        ImageName=${ImageFileName%.*}
        echo -e "正在将qcow2镜像转为raw格式"
        qemu-img convert -f qcow2 -O raw $ImageFileName $ImageName.raw
        echo -e "正在创建镜像:$ImageName"
        glance image-create --name $ImageName --disk-format=raw --container-format=bare --file=$ImagePWD/$ImageName.raw --visibility=public --protected=False --property os_type=linux --property hw_qemu_guest_agent=yes --property hw_vif_multiqueue_enabled=true --progress
        echo -e "正在删除$ImageName.raw && $ImageFileName"
        rm -rf $ImageFileName
        rm -rf $ImageName.raw
      	echo -e "$ImageName已创建完成"
    done
}
SaveImageNameToFile
AssembleCreateCommand
EOF

后台运行创建镜像

chmod +x autoCreateImages.sh && nohup ./CreateImages.sh > ./CreateImages.log 2>&1 &

单独创建

#!/bin/bash
source /root/admin-openrc.sh
if [[ $1 = "--help" ]] || [[ $1 = "-h" ]]
then
    echo -e "\e[1;32m------------------------------------------------------------------------------\e[0m"
    echo -e "\e[1;32m|脚本传参方式:位置参数                                                      |\e[0m"
    echo -e "\e[1;32m|usage:./singleCreateImages.sh [qcow2文件] [raw名字] [镜像名字]             |\e[0m"
    echo -e "\e[1;32m|example:./singleCreateImages.sh ./nginx-7.9.qcow2 nginx-7.9.raw nginx-7.9  |\e[0m"
    echo -e "\e[1;32m------------------------------------------------------------------------------\e[0m"
    exit 0
fi

echo -e "正在将qcow2镜像转为raw格式"
qemu-img convert -f qcow2 -O raw $1 $2
echo -e "正在创建镜像:$3"
glance image-create --name $3 --disk-format=raw --container-format=bare --file=$2 --visibility=public --protected=False --property os_type=linux --property hw_qemu_guest_agent=yes --property hw_vif_multiqueue_enabled=true --progress
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值