Dabao's Tech Blog
Archives
Label
About
GitHub
Facebook

[ Packer ] 自動化建立 AWS AMI

logo

使用 Packer 自動化建立 AWS AMI

使用 Packer 自動化建立 AMI 時,需要先定義一個 Packer 模板文件,然後使用該模板文件生成 AMI 映像。 下面是一個基本的 Packer 示例,可以根據需求進行修改:

{
    "variables": {
        "aws_access_key": "",
        "aws_secret_key": "",
        "aws_region": "us-west-2"
    },
    "builders": [
        {
            "type": "amazon-ebs",
            "access_key": "",
            "secret_key": "",
            "region": "",
            "source_ami": "ami-0c55b159cbfafe1f0",
            "instance_type": "t2.micro",
            "ssh_username": "ec2-user",
            "ami_name": "Alma Linux 8.5 x86_64 HVM AMI "
        }
    ],
    "provisioners": [
        {
            "type": "shell",
            "script": "build.sh"
        }
    ]
}

在上述的 json 中,我定義了一個 amazon-ebs builder,它會使用 AWS EC2 作為基礎,並且使用 source_ami 指定了 Alma Linux 8.5 的 AMI ID。還定義了一個 shell provisioner,它會運行 build.sh 腳本以進行環境安裝。

設定好之後,使用以下命令來生成 AMI :

packer build \
-var 'aws_access_key=MY_ACCESS_KEY' \
-var 'aws_secret_key=MY_SECRET_KEY' \
-var 'aws_region=MY_REGION' \
my_template.json

在上面的命令中,-var 選項用於指定模板文件中定義的變數值。您需要替換 MY_ACCESS_KEYMY_SECRET_KEY 為 AWS Credentials,MY_REGION 為 AWS 服務所在區域。