打包程序“source_ami_filter”中的“所有者”字段有啥作用?

Posted

技术标签:

【中文标题】打包程序“source_ami_filter”中的“所有者”字段有啥作用?【英文标题】:what does "Owner" field in packer "source_ami_filter" work on?打包程序“source_ami_filter”中的“所有者”字段有什么作用? 【发布时间】:2020-09-30 19:55:04 【问题描述】:

我是新包装工,在使用它的同时探索了一些东西

"builders": [
    
      "type": "amazon-ebs",
      "profile" : "sumanthdev",
      "region": "us-east-1",
      "source_ami_filter": 
        "filters": 
          "virtualization-type": "hvm",
          "name": "ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*",
          "root-device-type": "ebs"
        ,
        "owners": ["099720109477"],
        "most_recent": true
      ,

我想知道“所有者”:[“099720109477”] 代表什么。 我知道它需要输入帐户 ID,但是哪个?将在哪里创建 ami 的帐户 ID,或者?

【问题讨论】:

【参考方案1】:

这是为特定 AWS 账户拥有的 AMI 过滤。在这种情况下,此过滤器将仅查找帐户 ID 为 099720109477 且名为 ubuntu/images/*ubuntu-xenial-16.04-amd64-server-* 的图像。

以下来自documentation

按所有者过滤图像。您可以指定一个或多个 AWS 账户 ID、“self”(将使用您用于运行 Packer 的凭证的账户)或 AWS 所有者别名:例如,amazon、aws-marketplace 或 microsoft。出于安全原因,此选项是必需的。

【讨论】:

谢谢你的回答。它确实出现在我正在做的研究中。如果我没有所有者帐户 ID,但我想获取最新的 Linux 映像怎么办? 如果您没有文档中的帐户ID,您将无法获取图像 比你。你能帮我解决这个问题吗***.com/questions/62321422/…【参考方案2】:

“099720109477 是 Canonical 的帐号。” Source。 (下面的评论也很有用。)

请注意,owners 也是 optional parameter。

您可能正在寻找ami_users 字段以便跨账户共享AMI。 ami_users 不是 source_ami_filter 中的参数,而是可以在 source 主体的顶层中找到,如下所示:

source "amazon-ebs" "dev-latest" 
  ami_name      = "dev-latest-$local.timestamp"
  instance_type = "t2.micro"
  region        = var.region
  source_ami_filter 
    filters = 
      image-id            = "ami-03d5c68bab01f3496"
      root-device-type    = "ebs"
      virtualization-type = "hvm"
    
    most_recent = true
    owners      = ["099720109477"]
  
  ssh_username = "ubuntu"
  ami_users = ["777777777777", "888888888888", "999999999999"]

owners 拥有您正在制作的 AMI 的基础 AMI(层)。 ami_users 是与完成图像共享的帐号。 AMI 变为“可用”后,您将看到输出(至少带有打包程序),表明它正在修改已完成图像的隐私属性。

【讨论】:

以上是关于打包程序“source_ami_filter”中的“所有者”字段有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章

chrome 打包应用程序中的 JSON 模式验证

chrome 打包应用程序中的 Websocket 服务器

如何更改 chrome 打包的应用程序 ID 或者为啥我们需要 manifest.json 中的 key 字段?

使用 PyInstaller 打包后 PySide2 应用程序中的路径错误

如何将应用程序打包到能够在 Kubernetes 中的 Spark 集群上运行的 docker 镜像中?

使用自定义可打包类解组 Android 应用程序中的错误