使用Packer自动化构建镜像

openstack插件安装:OpenStack | Integrations | Packer | HashiCorp Developer

openstack插件用法示例:OpenStack Builder | Integrations | Packer | HashiCorp Developer

安装openstack 插件

packer plugins install github.com/hashicorp/openstack

编写模板文件openstack.pkr.hcl如下

packer {
required_plugins {
openstack = {
version = "~> 1"
source = "github.com/hashicorp/openstack"
}
}
} source "openstack" "example" {
domain_name = "default"
flavor = "m1.medium"
identity_endpoint = "http://192.168.200.150:5000/v3"
image_name = "openEuler-22.03-sp4.qcow2"
insecure = true
password = "JBJGuIpffaGMJDtvMXRrmF1qET4KMZseR0Ihyfil"
region = "RegionOne"
source_image_name = "openEuler-22.03-LTS-SP4-x86_64.qcow2"
networks = ["289df86a-6780-4563-a806-9f365ec86812"]
floating_ip_network = "public1"
ssh_username = "root"
ssh_password = "openEuler12#$"
tenant_name = "admin"
username = "admin"
use_blockstorage_volume = "true"
volume_size = "40"
image_disk_format = "qcow2"
} build {
sources = ["source.openstack.example"]
provisioner "shell" {
inline = [
"echo Build image work is starting",
"yum install vim bash-comp* -y",
"echo 123 | passwd --stdin root",
"echo execute successful"
]
}
}

执行构建

packer build ./openstack.pkr.hcl

常用配置项说明:

  • domain_name: openstack的域,默认为default
  • flavor: 指定创建虚拟机的规格
  • identity_endpoint:指定keystone的认证地址
  • image_name: 使用Packer生成的镜像名
  • tenant_name: 租户名,就是openstack中的project名
  • insecure: 是否使用不安全的连接,也就是http和https
  • password:openstack用户的密码
  • username:openstack用户名
  • networks:指定虚拟机创建在哪个网络之中
  • source_image_name:使用本地的镜像文件来创建虚拟机
    • external_source_image_name:使用外部的镜像文件来创建,该地址是一个url
    • source_image:使用glance中的镜像来创建虚拟机
  • floating_ip_network:指定浮动IP的网络,即openstack中的外部网络,需要给虚拟机配置浮动IP,不然packer无法使用ssh连接上虚拟机
  • ssh_username :启动虚拟机之后使用ssh连接的用户名
  • ssh_password :可选参数,指定ssh连接的密码,如果没有这个参数packer会创建一个临时的密钥对,ssh将会使用密钥对来连接
  • use_blockstorage_volume:是否使用块存储,
  • image_disk_format:指定保存的镜像格式,仅当use_blockstorage_volume为true时才生效
  • volume_size :指定块存储大小

额外说明,我是用的是openEuler官方提供的qcow2的文件,且版本为22.03-sp4,只能为sp4,因为sp3默认是不允许root用户去登录的,只允许普通用户openeuelr登录,但是这个用户并没有sudo的能力,并且没有cloud-init,所以无法做很多的配置,但是sp4这个版本他默认开放了root使用密码登录的权限,所以我们才能够做一些定制化的操作,其他操作系统不存在这个问题

等待packer构建完镜像之后会给你留下一个镜像在glance之中

packer会提示镜像ID为2db14ce1……,等他保存完之后我们去查看

通过dashboard我们可以看到,镜像被保存下来了,并且格式为qcow2,我们只需要通过这个镜像去启动虚拟机,那么这个虚拟机就默认密码为123,并且已经安装好了vim

Packer构建openStack镜像的更多相关文章

  1. 如何构建OpenStack镜像

    本文以制作CentOS7.2镜像为例,详细介绍手动制作OpenStack镜像详细步骤,解释每一步这么做的原因.镜像上传到OpenStack glance,支持以下几个功能: 支持密码注入功能(nova ...

  2. OpenStack云计算快速入门之三:OpenStack镜像管理

    原文:http://blog.chinaunix.net/uid-22414998-id-3272059.html 第三部分 OpenStack镜像管理 一.简介 很多源都有为OpenStack已经编 ...

  3. OpenStack镜像管理3

    第三部分 OpenStack镜像管理 一.简介 很多源都有为OpenStack已经编译好的各种镜像了,您可以直接下载并通过使用这些镜像来熟悉OpenStack. 不过如果是为生产环境进行部署的话,您一 ...

  4. FW 构建OpenStack的高可用性(HA,High Availability)

    原文地址:http://blog.csdn.net/hilyoo/article/details/7704280 1.CAP理论 1) CAP 理论给出了3个基本要素: 一致性 ( Consisten ...

  5. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(4)--用OZ工具制作openstack镜像

    在部署openstack云平台环境的时候,需要上传镜像到glance. 首先下载iso镜像,这里下载了centos6.5镜像,放到/usr/local/src目录下然后用OZ工具制作openstack ...

  6. OpenStack 镜像制作

    Contents [hide] 1 Centos6.5 img制作 1.1 基础环境安装 1.2 下载或从本地上传系统镜像 1.3 启动服务 1.4 建立镜像文件 1.5 通过virt-install ...

  7. 制作Ubuntu14.04的Openstack镜像

    下载好Ubuntu官方镜像安装文件:不要使用desktop版,在virtualbox和vm上都安装报错,因为不需要桌面,所有没去管了. 第一步.准备好如下文件: 1.ubuntu-14.04.4-se ...

  8. 微服务架构 - 基于Harbor构建本地镜像仓库

    之前写过<搭建docker本地镜像仓库并提供权限校验及UI界面>文章,然后有同仁评论道这样做太复杂了,如果Harbor来搭建会更简单同时功能也更强大.于是抽时间研究了基于Harbor构建本 ...

  9. 多阶段构建Docker镜像

    在Docker 17.05及更高的版本中支持支持一种全新的构建镜像模式:多阶段构建: 多阶段构建Docker镜像的最大好处是使构建出来的镜像变得更小: 目前常见的两个构建镜像的方式为: 1.直接使用某 ...

  10. Docker构建YApi镜像, Docker安装YApi, Docker部署YApi

    概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发 ...

随机推荐

  1. IceRPC之多路复用传输>快乐的RPC

    作者引言 很高兴啊,我们来到了IceRPC之多路复用传输>快乐的RPC,基础引导,打好基础,才能让自已不在迷茫,快乐的畅游世界. icerpc 和多路复用传输 了解 icerpc 协议和多路复用 ...

  2. navicat premium 15 下载和激活

    Navicat Premium 15 下载地址 链接:https://pan.baidu.com/s/1bL-M3-hkEa4M-547giVjYQ?pwd=1107 推荐安装参考地址:https:/ ...

  3. CSS置顶操作(z-index属性)

    z-index使用方法: 1.首先要把position设置为 absolute 或 relative 或 fixed,z-index才能生效 2.设置z-index的值(整数) # 值越大代表越置前, ...

  4. HTML——form表单

    表单主要是用来收集客户端提供的相关信息,提供了用户数据录入的方式,有多选.单选.单行文本.下拉列表等输入框,便于网站管理员收集用户的数据,是Web浏览器和Web服务器之间实现信息交流和数据传递的桥梁. ...

  5. Android 12(S) MultiMedia Learning(五)NuPlayer

    之前几节看到MediaPlayer的java接口最终会调用到native层中的NuPlayer,NuPlayer由Render,DecoderBase,Source三部分组成. Render:负责AV ...

  6. 微服务实践k8s&dapr开发部署实验(3)订阅发布

    自托管模式运行dapr 新建订阅webapi项目,取名为backend 项目增加docker支持,取消https支持 修改Program.cs var builder = WebApplication ...

  7. itest work(爱测试) 开源一站式接口测试&敏捷测试工作站 9.0.3

    (一)itest work 简介 itest work (爱测试)  一站式工作站让测试变得简单.敏捷,"好用.好看,好敏捷" ,是itest wrok 追求的目标.itest w ...

  8. js 实现仿百度换肤效果

    图片自行换掉即可查看效果,原理就是基于tab切换的效果实现的 效果图 1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <met ...

  9. 美团一面:什么是CAS?有什么优缺点?我说我只用过AtomicInteger。。。。

    引言 传统的并发控制手段,如使用synchronized关键字或者ReentrantLock等互斥锁机制,虽然能够有效防止资源的竞争冲突,但也可能带来额外的性能开销,如上下文切换.锁竞争导致的线程阻塞 ...

  10. 安装配置intelli IDEA

    效果 操作 去官网下载安装包 下载 Intelli IDEA 下载插件 插件下载 打开IDEA安装目录下的bin目录,找到idea64.exe.vmoptions配置文件 添加配置 打开indea,添 ...