使用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. Django——messages消息框架

    在网页应用中,我们经常需要在处理完表单或其它类型的用户输入后,显示一个通知信息给用户.对于这个需求,Django提供了基于Cookie或者会话的消息框架messages,无论是匿名用户还是认证的用户. ...

  2. golang 怎么获取kubernetes deployments的状态?

    如果我们需要把k8s的信息展示为一个友好的web页面.那么deployment 的信息基本上是非常重要的(大部分的服务都是使用deployment部署). 从yaml 中我们能获取到很多关于deplo ...

  3. itest(爱测试) 开源接口测试,敏捷测试管理平台10.0.1

    一:itest work 简介 itest work 开源敏捷测试管理,包含极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock,还有压测 ,又有丰富的统计分析,8合1工作站.可按 ...

  4. Qt-udp通信

    1  简介 参考视频:https://www.bilibili.com/video/BV1XW411x7NU?p=61 说明:UDP是面向无连接的,客户端并不与服务器不建立连接,直接向服务器发送数据, ...

  5. 算法金 | 再见,PCA 主成分分析!

    ​大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣] 1. 概念:数据降维的数学方法 定义 主成分分析(PCA)是一种统计方法,通过正交变 ...

  6. 微博Lite版安装

    微博Lite版安装 前置条件,需要使用chrome,或chromium内核的浏览器. 1.浏览器输入:https://m.weibo.cn/ 2.在地址栏最右侧点击安装. --

  7. 太卷了,史上最简单的监控系统 catpaw 简介

    指标监控的痛点 当下比较流行的监控系统,比如 Prometheus.Nightingale.VictoriaMetrics,都是基于数值型指标的监控系统,这类监控系统的痛点在于:告警的时候只能拿到异常 ...

  8. ssh进阶

    1.ssh客户端工具 查看参数和帮助方法 ==ssh --help== ==man ssh== 常见参数 windows linux macos 提供的ssh命令,会有些区别,查看帮助后使用即可. l ...

  9. 在 Wed 中应用 MyBatis(同时使用MVC架构模式,以及ThreadLocal 事务控制)

    1. 在 Wed 中应用 MyBatis(同时使用MVC架构模式,以及ThreadLocal 事务控制) @ 目录 1. 在 Wed 中应用 MyBatis(同时使用MVC架构模式,以及ThreadL ...

  10. flutter 创建第一个项目(二)

    新建flutter project 项目 这样就创建出了第一个项目