首页 > 其他分享 >Packer 简要使用说明

Packer 简要使用说明

时间:2023-04-21 11:35:00浏览次数:47  
标签:简要 Packer hashicorp 说明 packer ec2 https com developer


官网:<https://developer.hashicorp.com/packer>

文档:<https://developer.hashicorp.com/packer/docs>

公司现有构建镜像代码库地址:https://gitlab.ushareit.me/sre/packer.git

简介

通过模板定义配置,使用插件构建 AWS、Azure、GCP、阿里云、华为云、腾讯云等多种云或 Saas 平台系统镜像的开源工具,可用外部插件配置文档:<https://developer.hashicorp.com/packer/plugins>

安装

下载地址,页面已包含各种系统安装说明:<https://developer.hashicorp.com/packer/downloads>

  • Mac
brew install packer
packer -autocomplete-install
  • CentOS/RHEL
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum -y install packer
packer -autocomplete-install
  • Amazon Linux
sudo yum install -y yum-utils shadow-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
sudo yum -y install packer
packer -autocomplete-install

Packer 注意事项

编写镜像定义模板文件,Packer 1.5及以上版本支持并推荐使用 HCL2(HashiCorp Configuration Language)模板。文件名后缀为 .pkr.hcl 或 .pkr.json 解析为 HCL2 模式,其它情况则使用老版 JSON 模式解析。

HCL 具体说明:<https://developer.hashicorp.com/packer/docs/templates/hcl_templates>

常用命令简单说明

详细说明:<https://developer.hashicorp.com/packer/docs/commands>

注意事项:命令后[]及包含的内容代表可选项

AWS

详细文档:<https://developer.hashicorp.com/packer/plugins/builders/amazon>

谷歌云

详细文档:<https://developer.hashicorp.com/packer/plugins/builders/googlecompute>

华为云

详细文档:<https://developer.hashicorp.com/packer/plugins/builders/openstack>

AWS EC2 示例

本次使用 AWS 账号作为示例说明。

1. 安装 Packer CLI 程序。
2. 新建 AWS 程序密钥,授予权限如下:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AttachVolume",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:CopyImage",
        "ec2:CreateImage",
        "ec2:CreateKeypair",
        "ec2:CreateSecurityGroup",
        "ec2:CreateSnapshot",
        "ec2:CreateTags",
        "ec2:CreateVolume",
        "ec2:DeleteKeyPair",
        "ec2:DeleteSecurityGroup",
        "ec2:DeleteSnapshot",
        "ec2:DeleteVolume",
        "ec2:DeregisterImage",
        "ec2:DescribeImageAttribute",
        "ec2:DescribeImages",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceStatus",
        "ec2:DescribeRegions",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSnapshots",
        "ec2:DescribeSubnets",
        "ec2:DescribeTags",
        "ec2:DescribeVolumes",
        "ec2:DescribeVpcs",
        "ec2:DetachVolume",
        "ec2:GetPasswordData",
        "ec2:ModifyImageAttribute",
        "ec2:ModifyInstanceAttribute",
        "ec2:ModifySnapshotAttribute",
        "ec2:RegisterImage",
        "ec2:RunInstances",
        "ec2:StopInstances",
        "ec2:TerminateInstances"
      ],
      "Resource": "*"
    }
  ]
}
3. 设置环境变量关联 AWS 程序密钥或者运行命令 aws configure 直接永久保存密钥配置:
export AWS_ACCESS_KEY_ID=申请的AK
export AWS_SECRET_ACCESS_KEY=申请的SK
4. 新建模板配置文件:aws.pkr.hcl
variable "ImageVersion" {
  type    = string
}

data "amazon-ami" "main" {
  filters = {
    name                = "amzn2-ami-kernel-*-hvm-*-x86_64-gp2"
    root-device-type    = "ebs"
    virtualization-type = "hvm"
  }
  most_recent = true
  owners      = ["137112412989"]
  region      = "ap-southeast-1"
}

source "amazon-ebs" "main" {
  ami_block_device_mappings {
    delete_on_termination = true
    device_name           = "/dev/xvda"
    volume_type           = "gp3"
  }
  ami_description           = "awscli lrzsz node_exporter obsutil openssh tmux"
  ami_name                  = "dongsong-test-v${var.ImageVersion}"
  ami_regions               = ["ap-south-1"]
  ami_users                 = ["404486105145"]
  instance_type             = "t3.medium"
  region                    = "ap-southeast-1"
  source_ami                = "${data.amazon-ami.main.id}"
  ssh_clear_authorized_keys = true
  ssh_username              = "ec2-user"
  subnet_id                 = "subnet-0a95dbf475604da5d"
  tags = {
    "sgt:env"      = "prod"
    "sgt:group"    = "SGT"
    "sgt:project"  = "image"
    "sgt:subgroup" = "SRE"
  }
}

build {
  sources = ["source.amazon-ebs.main"]

  provisioner "shell" {
    scripts = ["image-init.sh", "aws-init.sh"]
  }

}
5. 格式化配置:
packer fmt aws.pkr.hcl
6. 检查语法:
packer validate -var "ImageVersion=1" aws.pkr.hcl
7. 构建镜像:
packer build -var "ImageVersion=1" aws.pkr.hcl

标签:简要,Packer,hashicorp,说明,packer,ec2,https,com,developer
From: https://blog.51cto.com/dongsong/6212353

相关文章

  • 整理非系统进程说明
            不定期更新内容进程说明 mDNSResponder.exe 一款名为Bonjour的音乐分享软件相关程序这个进程很多时候是安装了ADOBECS3之后出现的。不过,苹果公司的一些产品(如Safari浏览器)中也捆绑有它,不过在安装前会询问,而且在系统的“添加或者删除程序”中也有卸载入口。......
  • Linux系统下安装rz/sz命令及使用说明
    评:对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz/sz命令很方便的帮我们实现了这个功能,但是很多Linux系统初始并没有这两个命令。今天,我们就简单的讲解一下如何安装和使用rz、sz命令。1.软件安装(1)编译安装root账号登陆......
  • MySQL InnoDB Architecture 简要介绍
    MySQLInnoDB存储引擎整体架构图:一、内存存储结构 1、BufferPoolbufferpool是主内存中的一块儿存储区域,用于存储访问的表及索引数据。这样从内存中直接访问获取使用的数据可以极大的提升访问效率。在一些特殊专用的服务里,几乎80%的内存区域都被赋于bufferpool。为了......
  • memcached命令行参数说明
    评:1、启动Memcache常用参数-p<num>设置TCP端口号(默认不设置为:11211)-U<num>UDP监听端口(默认:11211,0时关闭)[u][b]-l<ip_addr>绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)[/b][/u]-d以daemon方式运行......
  • Quartz Cron Expression 格式的详细说明
    cron表达式的格式 Quartzcron表达式的格式十分类似于UNIXcron格式,但还是有少许明显的区别。区别之一就是Quartz的格式向下支持到秒级别的计划,而UNIXcron计划仅支持至分钟级。许多我们的触发计划要基于秒级递增的(例如,每45秒),因此这是一个非常好的差异。 在UNIXcron......
  • AR眼镜简要
    介绍AR眼镜(AugmentedRealityGlasses)是一种将虚拟信息与现实场景融合在一起的眼镜,它通过激光投影、光学透镜等技术将虚拟图像叠加在真实世界中,让人们可以看到增强现实(AR)效果。AR眼镜通常包括一个小型计算机和一些传感器,例如陀螺仪、加速度计、磁力计等。这些传感器可以感......
  • 词嵌入思想简要
    词嵌入(WordEmbedding)是一种将单词映射到低维向量空间中的技术,它通过将每个单词表示为一个向量,来捕捉单词之间的语义和上下文信息。这种技术的思想是基于分布式语义假说(DistributedSemanticsHypothesis)提出的。该假说认为,每个单词都可以通过它周围的上下文来表达其语义信息,也......
  • 自然语言处理(Natural Language Processing,NLP)简要
    自然语言处理(NaturalLanguageProcessing,NLP)简要一、发展状况二、发展优势三、发展瓶颈四、具体研究方向五、自然语言处理工具六、未来发展方向自然语言处理(NaturalLanguageProcessing,NLP)是计算机科学和人工智能领域的一个重要研究方向,其目的是使计算机能够理......
  • 我的第一个NPM包:panghu-planebattle-esm(胖虎飞机大战)使用说明
    好家伙,我的包终于开发完啦 欢迎使用胖虎的飞机大战包!!为你的主页添加色彩这是一个有趣的网页小游戏包,使用canvas和js开发使用ES6模块化开发效果图如下: (觉得图片太sb的可以自己改)代码已开源!!Git:https://gitee.com/tang-and-han-dynasties/panghu-planebattl......
  • 1.结构说明
    监控组件:Prometheus展示组件:Grafana  前置需要:一台或者多台机器,操作系统CentOS7.x-86_x64硬件配置:2G或者更多RAM,2个CPU或者更多CPU,硬盘30GB或者更多机器间网络互通环境准备我们这里使用vagrant快速创建三个虚拟机,虚拟机启动前先设......