質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Packer

Packerは、マシンイメージの自動生成や管理の構築を行うコマンドラインツール。クラウドにあるGUIを用いずマシンイメージを自動生成できる他、開発環境・ミドルウェア・アプリケーションも自動的に設定行うプロビジョニング機能も備わっています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

550閲覧

AWS AutoScalingで利用している最新のAMIを利用し、Packerを用いたイメージを作成したい。

Baloncesto

総合スコア7

Packer

Packerは、マシンイメージの自動生成や管理の構築を行うコマンドラインツール。クラウドにあるGUIを用いずマシンイメージを自動生成できる他、開発環境・ミドルウェア・アプリケーションも自動的に設定行うプロビジョニング機能も備わっています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2022/10/25 15:36

前提

使用中のAWS AutoScalingで利用しているAMIを利用し、Packerを用いたイメージを作成したいと思っております。
しかし、複数のAutoScalingが存在しており、それぞれ異なるAMIとなっているため、特定の識別子(TAGなど)を用いて
以下のようにfilter指定したいのですが、実現方法がわかりません。
ご教示頂きたく宜しくお願いいたします。

実現したいこと

作成済みのAWS AutoScalingで利用している最新のAMIを利用し、Packerを用いたイメージを作成したい。

該当のソースコード

source_ami_filter { filters = { name = "amzn2-ami-hvm-2.0.*-x86_64-gp2" root-device-type = "ebs" virtualization-type = "hvm" } most_recent = true owners = ["amazon"] }

試したこと

以下のように、AWS CLIコマンドを実行し、AutoScalingに結びついている"ImageId"の取得まではできるのですが、
こちらのような動作をHCLで実現させたいと思っております。

$ aws ec2 describe-launch-template-versions --launch-template-name="$TAG_NAME" --versions '$Latest' { "LaunchTemplateVersions": [ { "LaunchTemplateId": "lt-0f58546d73234256", "LaunchTemplateName": "single-ds-working-backup-ami", "VersionNumber": 1, "CreateTime": "2022-10-11T05:11:23+00:00", "CreatedBy": "arn:aws:sts::12345678910:assumed-role/AdminAssumeRole/XXXXXX", "DefaultVersion": true, "LaunchTemplateData": { "ImageId": "ami-0701e23425245cwe", "InstanceType": "t3.medium", "UserData": "", "SecurityGroupIds": [ "sg-098e9923cab13488d", "sg-0c1b24758ee3ed930" ] } } ] }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2022/10/26 03:45

AutoScaling Groupに設定している、特定のAutoScaling Groupを識別できる固有のタグはないですか。 あるならそれで検索すれば良いと思います。
Baloncesto

2022/10/26 04:00

ご連絡ありがとうございます。 はい、AutoScalingGroupで設定している固有のタグはあります。 「試したこと」 の中でAWS CLIで実行させたものがあるのですが、このような操作をpackerのHCLで実現可能なのか、が分からず困っております。
guest

回答1

0

タグがわかってるなら例えば以下のようにすればできるのではないでしょうか。

hcl

1data "amazon-ami" "basic-example" { 2 filters = { 3 tags = { 4 "tags:key" = "value" 5 } 6 } 7 most_recent = true 8}

keyは使いたいタグのkey、valueはタグの値に変換してください。

また、そもそもAMIに対象を一意に特定できる名前がついてるならそれで絞るのも良いです。
挙げた例だと指定している条件は"amzn2-ami-hvm-2.0.*-x86_64-gp2"となっていますが、カスタマイズしたAMIを自分で作成しているのならこういう名前にはおそらくしていないと思います。

参考
Amazon AMI Data Source

なお、このドキュメントに

Any filter described in the docs for DescribeImages is valid.

と書いてあるように、ここでやっているのはDescribeImagesなので、describe-launch-template-versionsと同じことはできません。
どのような条件を指定できるかはDescribeImagesのドキュメントも参照してみてください。

投稿2022/10/26 05:47

yu_1985

総合スコア7447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Baloncesto

2022/10/26 07:00

詳細にご回答頂き誠にありがとうございます。 確認し実装してみたいと思います。
yu_1985

2022/10/26 07:52

ちなみにこの質問とは直接関係ないのですが、なぜ他のAutoScaling Groupで使われているAMIを直接指定しようとしているのでしょうか。 AMIは別途何かで管理されているということですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問