среда, 11 октября 2017 г.

Packer. Выполнить установочный скрипт с параметрами

packer.json:
{
  "variables": {
    "aws_access_key": "",
    "aws_secret_key": "",
    "build_version": "",
    "my_region": "",
    "domainname": ""
  },
  "builders": [
    {
    "type": "amazon-ebs",
    "access_key": "{{user `aws_access_key`}}",
    "secret_key": "{{user `aws_secret_key`}}",
    "region": "{{user `my_region`}}",
    "source_ami": "ami-e689729e",
    "instance_type": "t2.micro",
    "ssh_username": "ec2-user",
    "ssh_timeout": "10m",
    "ssh_pty": true,
    "ami_name": "QAT_eureka_{{user `build_version`}}",
    "ami_description": "Custom AMI for Eureka"
    }
  ],
  "provisioners": [
    {
    "type": "file",
    "source": "files",
    "destination": "/tmp"
    },
    {
    "type": "shell",
    "scripts": [
"scripts/install.sh"
],
    "execute_command": "{{ .Vars }} sudo -E sh '{{ .Path }}'",
    "environment_vars": [
"MY_REGION={{user `my_region`}}",
"MY_DOMAIN={{user `domainname`}}"
]
    }
  ]
}


packer build -var my_region=us-west-2 -var domainname=dom.loc packer.json

В скрипте install.sh будут доступны эти переменные (благодаря sudo -E)

Комментариев нет: