Packerはハッシコープ(HashiCorp)が開発したオープンソースのツールであり、一貫性のある環境をプロビジョニングするために使用されます。Packerは、さまざまなクラウドプロバイダーや仮想化プラットフォーム用に仮想マシンイメージを作成する能力があります。

以下に、Packerを用いてApacheをプリインストールしたUbuntuイメージを作成する一例を示します。

### PackerのJSONテンプレート作成

1. まず、以下の内容をapache_install.jsonという名前で保存します。

{
"builders": [
{
"type": "amazon-ebs",
"region": "ap-northeast-1",
"source_ami_filter": {
"filters": {
"virtualization-type": "hvm",
"name": "ami-xxxx",
"root-device-type": "ebs"
},
"owners": ["099720109477"],
"most_recent": true
},
"instance_type": "t2.micro",
"ssh_username": "ubuntu",
"ami_name": "packer-example {{timestamp}}",
"vpc_id": "your-vpc-id",
"security_group_id": "your-security-group-id",
"ssh_keypair_name": "your-existing-aws-keypair-name",
"ssh_private_key_file": "~/.ssh/your-private-key.pem"
}
],
"provisioners": [
{
"type": "shell",
"inline": [
"sudo apt-get update",
"sudo apt-get install -y apache2"
]
}
]
}

この例では、Amazon EC2用のイメージを作成していますが、他のプラットフォームも同様に指定することができます。

2. PackerとAWS CLIがインストールされていない場合は、それぞれインストールしてください。
3. AWSのクレデンシャルが設定されていない場合、aws configureを実行して設定します。
4. ターミナルで次のコマンドを実行してイメージをビルドします。

packer build apache_install.json

この例を使えば、ApacheがプリインストールされたAmazon EC2用のAMIが作成されます。同様に、他のクラウドプロバイダーまたは仮想化プラットフォームにも適用することが可能です。ただし、各プラットフォーム用にbuildersセクションの設定を調整する必要があります。

 

記事タイトル検索