Packer: рдПрдЪрд╕реАрдПрд▓ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рджрд┐рд╕ре░ 2014  ┬╖  48рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: hashicorp/packer

рдХрдо рдХреНрд░реБрдлреНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд╛рдИрдПрдПрдордПрд▓ (рдпрд╛ рдПрдЪрд╕реАрдПрд▓ ) рд╣реЛрдирд╛ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред (рджреЗрдЦреЗрдВ https://github.com/mitchellh/packer/issues/283)

рдпрджрд┐ JSON рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЯрд┐рдкреНрдкрдгреА-рдЬреИрд╕реА рдХреБрдВрдЬреА/рдорд╛рдиреЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ (рд╢рд╛рдпрдж рдЬрд╣рд╛рдВ рдирд╛рдо рдЯрд┐рдкреНрдкрдгреА-рдЬреИрд╕реА рдЧреНрд▓рд┐рдл рдХреЗ рд╕рд╛рде рдЙрдкрд╕рд░реНрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

{
  "builders": [
...
  ],
  "provisioners": [
      {
      "#TODO": "turn this into a puppet manifest",
      "type": "shell",
      "script": "setup.sh"
    },
    {
      "type": "shell",
      "execute_command": "sudo -E /bin/bash '{{ .Path }}'",
      "#": "Run as sudo and remove all the things we don't need",
      "inline": ["DEBIAN_FRONTEND=noninteractive apt-get -y clean autoremove"]
    }
  ]
}
core enhancement post-1.0

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ ! рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ HCL2 рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдкреАрдЖрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: #8423ред рдХреБрдЫ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдпрд╣рд╛рдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ
рд╣рдо рдмрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд┐рд░реНрдорд╛рддрд╛/рдкреНрд░рд╛рд╡рдзрд╛рдирдХрд░реНрддрд╛/рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИрдВ рдФрд░ рд╣рдо рдПрдХ рдЫреЛрдЯреА рдЯреАрдо рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдорджрдж рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛! рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЖрдЬрдорд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдмрдЧ рдвреВрдВрдврддреЗ рд╣реИрдВ; рдХреГрдкрдпрд╛ рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВ рдХрд┐ рдпрд╣ рдПрдХ рдПрдЪрд╕реАрдПрд▓ рдмрдЧ рд╣реИред

рдкреИрдХрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд░реНрддрдорд╛рди (рдкреБрд░рд╛рдирд╛) рддрд░реАрдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛ рдФрд░ рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдорд╣рд╕реВрд╕ рди рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг рдПрдЪрд╕реАрдПрд▓ рдлрд╝рд╛рдЗрд▓

build {
    sources = [
        "source.amazon-ebs.first",
    ]

    provisioner "shell" {
        inline = [
            "sleep 5"
        ]
    }

    post-processor "shell-local" {
        inline = [
            "sleep 5"
        ]
    }
}

source "amazon-ebs" "first" {
    // access_key = "{{user `aws_access_key`}}"
    // secret_key = "{{user `aws_secret_key`}}"

    ami_name = "hcl2-test"
    region = "us-east-1"
    instance_type = "t2.micro"

    kms_key_id = "c729958f-c6ba-44cd-ab39-35ab68ce0a6c"
    encrypt_boot = true
    source_ami_filter {
        filters {
          virtualization-type = "hvm"
          name =  "amzn-ami-hvm-????.??.?.????????-x86_64-gp2"
          root-device-type = "ebs"
        }
        most_recent = true
        owners = ["amazon"]
    }
    launch_block_device_mappings {
        device_name = "/dev/xvda"
        volume_size = 20
        volume_type = "gp2"
        delete_on_termination = "true"
    }
    launch_block_device_mappings {
        device_name = "/dev/xvdf"
        volume_size = 500
        volume_type = "gp2"
        delete_on_termination = true
        encrypted = true
    }

    ami_regions = ["eu-central-1"]
    run_tags {
        Name = "packer-solr-something"
        stack-name = "DevOps Tools"
    }

    communicator = "ssh"
    ssh_pty = true
    ssh_username = "ec2-user"
    associate_public_ip_address = true
}

рдкреАрдПрд╕: рдбреЙрдХреНрд╕ рдФрд░ рд╡реЗрд░рд┐рдПрдмрд▓ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдЖ рд░рд╣реЗ рд╣реИрдВ!

рд╕рднреА 48 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cc @pandacalculus

рдЬрд▓реНрдж рдЖ рд░рд╣реА рд╣реИ рдПрдЪрд╕реАрдПрд▓ :рдореБрд╕реНрдХрд╛рди :

@delitescere рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ #283 рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд╣реАрдВ рд╣реИ? рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рджреЛ рдореБрджреНрджреЛрдВ рдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИред

рдпрд╣рд╛рдВ рдЕрдЬреНрдЮрд╛рдд рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рд╡реЗ рдЕрдм рдХреИрд╕реЗ рд╣реИрдВред рдпрд╣ "рдЯрд┐рдкреНрдкрдгреА-рдЬреИрд╕реА" рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯрд┐рдкреНрдкрдгреА-рдиреЗрд╕ рдХреЛ рдЖрдо рддреМрд░ рдкрд░ рдЬреНрдЮрд╛рдд рд╕реНрд╡рдпрдВ-рд╕рдорд╛рдкрди рдЯрд┐рдкреНрдкрдгреА рдЙрдкрд╕рд░реНрдЧ (рдЬреИрд╕реЗ: # , // , ; ) рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЧреИрд░-рдорд╛рдирдХ JSON, рдпрд╛ JSON5 рдпрд╛ YAML рдпрд╛ HCL рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдпрд╣ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реБрдЭрд╛рд╡ рдерд╛ред

рдПрдЪрд╕реАрдПрд▓ рдХреЛ рд╕рдорд░реНрдерди рджреЗрдиреЗ рдХреЗ рдХрджрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ @sethvargo рдХреА рдЯрд┐рдкреНрдкрдгреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИред

@sethvargo

рдЬрд▓реНрдж рдЖ рд░рд╣реА рд╣реИ рдПрдЪрд╕реАрдПрд▓ :рдореБрд╕реНрдХрд╛рди :

рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдпрд╣ рдЕрднреА рднреА рдЖ рд░рд╣рд╛ рд╣реИ:рдореБрд╕реНрдХреБрд░рд╛рдУ:

рд╣рдордиреЗ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╡рд┐рд▓рдВрдмрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдХреЛрдИ рдПрдЪрд╕реАрдПрд▓ рд▓реЗрдЦрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдо рдЕрдЧрд▓реЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ packer fix рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдПрдЪрд╕реАрдПрд▓ рдХреВрд▓-рдПрдб рдкрд┐рдпрд╛ рд╣реИред :+1:

рдЕрдм рдЬрдмрдХрд┐ https://github.com/hashicorp/hcl рдореМрдЬреВрдж рд╣реИ, рдХреНрдпрд╛ рд╣рдореЗрдВ json рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ? :)

@jevonearth рдЬреЛ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╣реИ: рдореБрд╕реНрдХрд╛рди:ред рдЕрднреА рдЖ рд░рд╣реА рд╣реИ рдПрдЪрд╕реАрдПрд▓!

рдЪреВрдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдЖ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ? рджреЗрдЦреЗрдВ https://github.com/mkheironimus/packergen

@jevonearth hcl . рдЬреЛрдбрд╝рдиреЗ рддрдХ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ

рдЕрднреА рднреА рдЬрд▓реНрдж рдЖ рд░рд╣рд╛ рд╣реИ?

@mitchellh @sethvargo рдпрд╣ рдПрдЪрд╕реАрдПрд▓ рд▓реЗрдЦрдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ: https://github.com/hashicorp/hcl/tree/master/hcl/printer

рд╡рд╛рдИрдПрдПрдордПрд▓ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдЪрд╕реАрдПрд▓ рдореЗрдВ рдирд╣реАрдВ

рдкреИрдХрд░ рдХреЛ рдмреИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрдирд╛ рдФрд░ yaml рд╕реЗ json рдХрдирд╡рд░реНрдЯ рдХрд░рдирд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рддреБрдЪреНрдЫ рд╣реИред

рдЖрдкрдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

ruby -r json -r yaml -e "yaml = YAML.load(File.read(\"$1\")); print yaml.to_json"

(рдФрд░ рдЙрд▓реНрдЯрд╛)

ruby -r json -r yaml -e "json = JSON.parse(File.read(\"$1\")); print YAML::dump(json)"

рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдмрдирд╛ рд▓рд┐рдпрд╛ рд╣реИред рди рд╣реЛрдирд╛ рд╣реА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЯрд┐рдХрдЯ рдПрдЪрд╕реАрдПрд▓ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИ

16 рдЬрдирд╡рд░реА, 2017 рдХреЛ рджреЛрдкрд╣рд░ 12:31 рдмрдЬреЗ, рд░рд┐рдХрд╛рд░реНрдб рд╡реЙрди рдПрд╕реЗрди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдкреИрдХрд░ рдХреЛ рдмреИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрдирд╛ рдФрд░ yaml рдХреЛ json рдореЗрдВ рдмрджрд▓рдирд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рддреБрдЪреНрдЫ рд╣реИред

рдЖрдкрдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

рд░реВрдмреА-рдЖрд░ рдЬреЗрд╕рди-рдЖрд░ рдпрдорд▓-рдИ "yaml = YAML.load(File.read(\"$1\")); рдкреНрд░рд┐рдВрдЯ yaml.to_json"
(рдФрд░ рдЙрд▓реНрдЯрд╛)

рд░реВрдмреА-рдЖрд░ рдЬреЗрд╕рди-рдЖрд░ рдпрдорд▓-рдИ "рдЬреЗрд╕рди = JSON.parse (рдлрд╛рдЗрд▓.рд░реАрдб (\"$1\")); рдкреНрд░рд┐рдВрдЯ рд╡рд╛рдИрдПрдПрдордПрд▓ :: рдбрдВрдк (рдЬреЗрд╕рди)"
рдореИрдВ
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВред

рдПрдЪрд╕реАрдПрд▓

рд╣рд╛рд╢реАрдХреЙрд░реНрдк рдХреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдереЛрдбрд╝рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рдЦрд╛рдиреЗ рдФрд░ рд╣рд░ рдЬрдЧрд╣ рдПрдЪрд╕реАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдпрд╛ рддреЛ рдПрдЪрд╕реАрдПрд▓ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдПрдЪрд╕реАрдПрд▓ рдПрдХ рдЧрд▓рддреА рдереА рдФрд░ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдПрдХ рдЖрдкрджрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд╛рдж рд╡рд╛рд▓рд╛ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдирдП рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛/рдЕрдкрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рдпрд╣ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдЪрд┐рдВрддрд╛ рдХрд╛ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпреЗ 2 рдЙрддреНрдкрд╛рдж "рджреЛ рдЦреБрдлрд┐рдпрд╛ рдПрдЬреЗрдВрд╕рд┐рдпрд╛рдВ тАЛтАЛтАЛтАЛрдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ" рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ @sethvargo рдХреЗ рд╕рд╛рде рд╣реВрдВред рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдбрд╛рдпрд░рд╡реЙрд▓реНрдл рд╕рддрд░реНрдХ рд░рд╣реЗрдВ рдФрд░ рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВ рдХрд┐ "рдПрдЪрд╕реАрдПрд▓ рдЖ рд░рд╣рд╛ рд╣реИ"ред (рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реА рдирд╣реАрдВ, рдЗрд╕реЗ рд╕рд╛рдХрд╛рд░ рднреА рдХрд░реЗрдВред)

JSON

JSON рдореЗрдВ рд╢реВрд╣реЙрд░реНрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╕рдорд╛рдзрд╛рди рд╣рдореЗрдВ рдбрдЧрд▓рд╕ рдХреНрд░реЙрдХрдлреЛрд░реНрдб рджреНрд╡рд╛рд░рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдирд┐рдХреЛрд▓рд╕ рдЪрдореНрдорд╛рд╕ рджреНрд╡рд╛рд░рд╛ рдж рдХреБрдЦреНрдпрд╛рдд рджреЛ рдЖрда рддреАрди рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ https://github.com/mitchellh/packer/issues/283#issuecomment -60039068

YAML

рд░реВрдмреА рдЦрдирд┐рдХ рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рд╡рд╛рдИрдПрдПрдордПрд▓ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдЗрд╕рдХреА рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рд░рд┐рдХрд╛рд░реНрдб рд╡реЙрди рдПрд╕реЗрди 2 рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ https://github.com/mitchellh/packer/issues/1768#issuecomment -272921740 (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ ARGF.read рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдВ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдиреАрдЪреЗ рдХрд░рддрд╛ рд╣реВрдВ)

рд╡рдЧреИрд░рд╣

рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд╢реАрдХреЙрд░реНрдк рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдЬрд┐рддрдиреЗ рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЙрддрдиреЗ рдпрд╛ рдХреБрдЫ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдпреВрдирд┐рдХреНрд╕ рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдкреАрдЯрд░ рдПрдЪред рд╕реЗрд▓рд╕ рджреНрд╡рд╛рд░рд╛ рдП рдХреНрд╡рд╛рд░реНрдЯрд░-рд╕реЗрдВрдЪреБрд░реА рдСрдл рдпреВрдирд┐рдХреНрд╕ (1994) рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):

  • рдРрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗрдВ рдЬреЛ рдПрдХ рдХрд╛рдо рдХрд░реЗрдВ рдФрд░ рдЙрд╕реЗ рдЕрдЪреНрдЫреЗ рд╕реЗ рдХрд░реЗрдВред
  • рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦреЗрдВред
  • рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реИред

рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

JSON

$ cat > example.json <<'EOF'
// from: https://www.packer.io/intro/getting-started/vagrant.html
{
    // can't we take this out?
    "variables": {
        "aws_access_key": "", // why is this blank?
        "aws_secret_key": ""  // ditto
    },
    "builders": [{
        "type": "amazon-ebs",
        "access_key": "{{user `aws_access_key`}}",
        "secret_key": "{{user `aws_secret_key`}}",
        "region": "us-west-2",
        "source_ami": "ami-b7a114d7",
        "instance_type": "t2.micro",
        "ssh_username": "ubuntu",
        "ami_name": "packer-example {{timestamp}}",
        "tags": {
            "created_by": "Packer.io/example"
        }
    }],
    "provisioners": [{
        "type": "shell",
        "inline": [
            "sleep 30",
            "sudo apt-get update",
            "sudo apt-get install -y redis-server"
        ]
    }],
    "post-processors": ["vagrant"]
}
EOF

$ packer validate <(jsmin < example.json)
Template validated successfully.

YAML

$ cat > example.yaml <<'EOF'
---
# from: https://www.packer.io/intro/getting-started/vagrant.html

# can't we take this out?
variables:
  aws_access_key: '' # why is this blank?
  aws_secret_key: '' # ditto

builders:
- type: amazon-ebs
  access_key: '{{user `aws_access_key`}}'
  secret_key: '{{user `aws_secret_key`}}'
  region: us-west-2
  source_ami: ami-b7a114d7
  instance_type: t2.micro
  ssh_username: ubuntu
  ami_name: packer-example {{timestamp}}
  tags:
    created_by: Packer.io/example

provisioners:
- type: shell
  inline:
  - sleep 30
  - sudo apt-get update
  - sudo apt-get install -y redis-server

post-processors:
- vagrant
EOF

$ packer validate <(ruby -r json -r yaml -e "print YAML.load(ARGF.read).to_json" < example.yaml)
Template validated successfully.

bitmoji

рдореИрдВ yaml рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рдкреАрдЖрд░ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдореЗрд░реЗ рд╕реАрдорд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдРрд╕рд╛ рдЬрд┐рд╕рдХреА рд╣рдо рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪреВрдВрдХрд┐ рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо 1.0 рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ 1.0.1 рдкрд░ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рджреЗрдЦреЗрдВред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдЪрд╕реАрдПрд▓ рдкреИрдХрд░ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рднрд╛рд╖рд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдкреБрдирд╢реНрдЪ: рдЕрднреА рднреА рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ рд▓рдЧрднрдЧ рд╕рднреА рдореБрджреНрджреЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореБрджреНрджреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ, рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдФрд░ рдЯреИрдЧ рд╣реИрдВред

рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдУрд╡рд░рд╣рд╛рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд░реЗрдВред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛ рдХрджрдо рд╣рдорд╛рд░реА рдЖрд░рдПрдлрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджреЗ рдкрд░ рд╣реЛрдЧрд╛ред

рдореИрдВ JSON5, YAML рдФрд░ HCL рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реВрдВред рд╢реБрджреНрдз JSON рджрд░реНрджрдирд╛рдХ рд╣реИред

@darkn3rd рд╣рдо рдЖрдкрдХрд╛ рджрд░реНрдж рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдХрд╛рдлреА рджрд░реНрджрдирд╛рдХ рд╣реИ рдХрд┐ рд╣рдо, рдЬреЙрдпрдВрдЯ , рдПрдХ master рдЯреНрд░реИрдХ рдХрд░рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд┐рд░ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреИрдХрд░ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рддреНрд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдХрд░рддрд╛ рд╣реИ: https: //github.com/joyent/packer/tree/f-json5

/рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рд╢рд╛рдЦрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирд╕рд┐рдХ рдиреЛрдЯ рдмрдирд╛рддрд╛ рд╣реВрдВ

рд╣рдо "рдЬрд▓реНрдж рд╣реА рдЖ рд░рд╣реЗ рд╣реИрдВ" рдХреЗ 3 рд╕рд╛рд▓ рдХреЗ рдХрд░реАрдм рд╣реИрдВ ... рдореИрдВ рдкреИрдХрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХрдо рд╕реЗ рдХрдо рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдПрдЪрд╕реАрдПрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдореИрдВрдиреЗ рдЕрднреА рдХрд╣рд╛ рдореЗрд░реЗ рджреЛрд╕реНрдд "рдЕрд░реЗ рд▓реЗрдЯ рдЙрд╕ рднрдпрд╛рдирдХ рдЬреЗрд╕рди рдХреЛ рдПрдЪрд╕реАрдПрд▓ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ, рдпрд╣ рдПрдХ рд╣реИрд╢рд┐рдХреЙрд░реНрдк рдЯреВрд▓ рд╣реИ, рд╣реИ рдирд╛?"ред рдореИрдВ рдХрд┐рддрдирд╛ рдЧрд▓рдд рдерд╛...

рдпрджрд┐ рдпрд╣ рд░реБрдЪрд┐ рдХрд╛ рд╣реИ yacker (рдПрдХ рдкрд╛рдпрдерди рдЙрдкрдпреЛрдЧрд┐рддрд╛) рдкреИрдХрд░ рдХреЛ YAML-to-JSON рджреБрднрд╛рд╖рд┐рдпрд╛ рдореЗрдВ рд▓рдкреЗрдЯрддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рднреА рдкреГрдереНрд╡реА-рдмрд┐рдЦрд░рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╡рд╛рдИрдПрдПрдордПрд▓-рд░реИрдкрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреИрдХрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЬреЗрдПрд╕рдУрдПрди рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред

https://yacker.readthedocs.io/hi/latest/

рдкреИрдХрд░ рдЯреАрдо? рдЖрдк рдЕрднреА рднреА рдПрдЪрд╕реАрдПрд▓ рдкреНрд░рджрд╛рди рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ? рдореИрдВ рд▓рдЧрднрдЧ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╡рд╛рдИрдПрдПрдордПрд▓ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рдкреИрдЪ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдПрдЪрд╕реАрдПрд▓ рдЖ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рд▓ рдХреЗ рдмрд╛рдж рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛!
рдХреНрдпрд╛ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ?

рдЕрднреА рднреА рдЖ рд░рд╣рд╛ рд╣реИ: рдкрд▓рдХ:

@vtolstov #7023 рджреЗрдЦреЗрдВ

рд╣рд╛рд╢рд┐рдХреЙрд░реНрдк рдХреЗ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд▓реЛрдЧреЛрдВ рдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕реАрдзреЗ рдПрдЪрд╕реАрдПрд▓1 рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдПрдЪрд╕реАрдПрд▓2 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ; рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЗрд╕реЗ рдХрднреА рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдЕрднреА рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ HCL2 рд╕рдорд░реНрдерди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рдордиреЗ рдЗрд╕ рдкрд░ рд╣рд╛рд░ рдирд╣реАрдВ рдорд╛рдиреА рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж @SwampDragons! рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЗрд╕ рдкрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдЕрдЪреНрдЫреА рдмрд╛рдд; рдЬрдм рд╣рдордиреЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреАрдЖрд░ рдХреЛ рдмрд┐рдирд╛ рдорд░реНрдЬ рдХрд┐рдП рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рддреЛ рдпрд╣ рдЧрд▓рддреА рд╕реЗ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рдерд╛ред

рдкреИрдХрд░ рдХреЗ рд╕рд╛рде HCL2 рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрд╕рд╛рд╣рд┐рдд!

@SwampDragons рдПрдЪрд╕реАрдПрд▓ рдкрд░ рдХреЛрдИ рдЦрдмрд░ рдХреГрдкрдпрд╛?

рд╣рдо 1.5.0 рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдЖрд╢рд╛рдЬрдирдХ рдирд╣реАрдВ)ред рдЯреАрдо рдХреЗ рдкрд╛рд╕ рдПрдХ рд╢рд╛рдЦрд╛ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рддрдХ рдкреЙрд▓рд┐рд╢ рдпрд╛ рдХрдареЛрд░ рдирд╣реАрдВ рд╣реИ рдФрд░ @azr рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдЫреБрдЯреНрдЯреА рдкрд░ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣рдореЗрдВ рдЗрд╕реЗ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж

рдореИрдВ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж рд╡рд╛рдкрд╕ рдЖрдпрд╛ рдФрд░ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдЦреБрд▓рд╛ рдерд╛ред
рдЦреБрд╢реА рд╣реИ рдХрд┐ рдпрд╣ 1.5 рдореЗрдВ рдЕрдкрдиреЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рд╣реИред

@SwampDragons рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ 1.5.0 рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрдард┐рди рд╕рдордп-рд╕реАрдорд╛ рд╣реИ (рдмреАрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рднреА)?

рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЬрдЯрд┐рд▓ рд╣реИ (рдФрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ) рддреЛ рдХреНрдпрд╛ рдпрд╣ рдмрд╣реБрдд рдХрдо рд╡рд┐рдХрд╛рд╕ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрдкрдХрд░рдг рдЕрдХреЗрд▓рд╛ рдЫреЛрдбрд╝рдирд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдХреЛрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп, _adapters_ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдЬреЛ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ рдкреНрд░рд╛рд░реВрдк-рдПрдХреНрд╕ рд╕реЗ JSON?

рд╕рд┐рд░реНрдл рдПрдХ рд╡рд┐рдЪрд╛рд░ред

рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЫреЛрдЯрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореВрд▓ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╕рдордп рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЕрдЧрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣реИ рдпрд╛рдХрд░ рдЬреИрд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ?

@alanbchristie рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкреВрд░реЗ рд╕рдордп рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рдпрд╣ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ "рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП" рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реИ, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рджреЗрдЦрдирд╛ рдФрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рдПрдЪрд╕реАрдПрд▓ 2 рд░реЛрд▓рдЖрдЙрдЯ рдЯреЗрд░рд╛рдлреЙрд░реНрдо 0.12 рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ рддрд╛рдХрд┐ рд╣рдо рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдирдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд╕реАрдЦ рд╕рдХреЗрдВред . рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд▓рдЧрднрдЧ рдЙрддрдиреА рд╣реА рдХрдард┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреА рдЬрд┐рддрдиреА рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдереА, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рдпрд╣ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ @azr рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рд╡рд╣ рдЗрд╕ рд╕рдордп рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдЖрдирдВрдж рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реИред ;) рдЬрдм рд╡рд╣ рд╡рд╛рдкрд╕ рдЖрдПрдЧрд╛ рддреЛ рдореИрдВ рдЙрд╕рд╕реЗ рдкреВрдЫреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рдЖрдк рд╕рднреА рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдкреНрд░рдЧрддрд┐ рдЕрдкрдбреЗрдЯ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИред

@NickLarsenNZ рдореИрдВ рдЕрдкрдиреЗ рдмреЙрд╕ рдХреЛ рдЬреЛ рд░реЛрдбрдореИрдк рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ рд╡рд╣ рдЕрдХреНрдЯреВрдмрд░ рдпрд╛ рдирд╡рдВрдмрд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╣рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдПрдХ рдмрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдпреЛрдЧреНрдп рдирд┐рд░реНрдорд╛рдг рд╣реЛрдиреЗ рдкрд░ рдореИрдВ рдЖрдкрдХреЛ рдкрд┐рдВрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдореИрдВ рдкреИрдХрд░ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдВ... рд▓реЗрдХрд┐рди рд╕рдЪ рдХрд╣реВрдВ рддреЛ рдпрд╣ рддрдереНрдп рдХрд┐ 5-6 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдпрд╣ рдПрдХ рдЕрдирд╕реБрд▓рдЭрд╛ рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реИ, рди рдХреЗрд╡рд▓ рдХрд╛рдлреА рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ, рдмрд▓реНрдХрд┐ рдмреЗрд╣рдж рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рднреА рд╣реИред

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рджреМрд░рд╛рди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдЯреНрдЯреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП jq рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рдВрднрд╡рддрдГ 99 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ jq рд╕реЗ рд╕реНрдЯреНрд░рд┐рдк рдХреЗ рд╕рд╛рде рд▓рд┐рдЦреА рдЧрдИ рдкреНрд░рддреНрдпреЗрдХ 1 рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рдЕрд▓рд┐рдЦрд┐рдд рд╣реЛ рдЧрдИ рд╣реИрдВред

рдореИрдВ рдХрдИ рджрд┐рдиреЛрдВ рддрдХ рдЪрд▓ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдХреИрд╕реЗ рдкреИрдХрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬрд╕рди рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреЛрдб/рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреЛрд╣рд░рд╛рд╡ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдРрд╕рд╛ рдореБрдЭреЗ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдкреИрдХрд░ рдЬреЗрд╕рди рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЫрджреНрдо-рд╕рдВрдХрд▓рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред

рд╢реЛрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрдж; @azr рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЙрд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдПрдХ рдЕрдкрдбреЗрдЯ рджреВрдВрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдмреАрдЯрд╛ рдмрд┐рд▓реНрдб рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрдм рдЙрд╕рдХреЗ рдкрд╛рд╕ рдореМрдХрд╛ рд╣реЛрдЧрд╛ред

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ ! рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ HCL2 рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдкреАрдЖрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: #8423ред рдХреБрдЫ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдпрд╣рд╛рдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ
рд╣рдо рдмрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд┐рд░реНрдорд╛рддрд╛/рдкреНрд░рд╛рд╡рдзрд╛рдирдХрд░реНрддрд╛/рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИрдВ рдФрд░ рд╣рдо рдПрдХ рдЫреЛрдЯреА рдЯреАрдо рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдорджрдж рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛! рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЖрдЬрдорд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдмрдЧ рдвреВрдВрдврддреЗ рд╣реИрдВ; рдХреГрдкрдпрд╛ рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВ рдХрд┐ рдпрд╣ рдПрдХ рдПрдЪрд╕реАрдПрд▓ рдмрдЧ рд╣реИред

рдкреИрдХрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд░реНрддрдорд╛рди (рдкреБрд░рд╛рдирд╛) рддрд░реАрдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛ рдФрд░ рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдорд╣рд╕реВрд╕ рди рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг рдПрдЪрд╕реАрдПрд▓ рдлрд╝рд╛рдЗрд▓

build {
    sources = [
        "source.amazon-ebs.first",
    ]

    provisioner "shell" {
        inline = [
            "sleep 5"
        ]
    }

    post-processor "shell-local" {
        inline = [
            "sleep 5"
        ]
    }
}

source "amazon-ebs" "first" {
    // access_key = "{{user `aws_access_key`}}"
    // secret_key = "{{user `aws_secret_key`}}"

    ami_name = "hcl2-test"
    region = "us-east-1"
    instance_type = "t2.micro"

    kms_key_id = "c729958f-c6ba-44cd-ab39-35ab68ce0a6c"
    encrypt_boot = true
    source_ami_filter {
        filters {
          virtualization-type = "hvm"
          name =  "amzn-ami-hvm-????.??.?.????????-x86_64-gp2"
          root-device-type = "ebs"
        }
        most_recent = true
        owners = ["amazon"]
    }
    launch_block_device_mappings {
        device_name = "/dev/xvda"
        volume_size = 20
        volume_type = "gp2"
        delete_on_termination = "true"
    }
    launch_block_device_mappings {
        device_name = "/dev/xvdf"
        volume_size = 500
        volume_type = "gp2"
        delete_on_termination = true
        encrypted = true
    }

    ami_regions = ["eu-central-1"]
    run_tags {
        Name = "packer-solr-something"
        stack-name = "DevOps Tools"
    }

    communicator = "ssh"
    ssh_pty = true
    ssh_username = "ec2-user"
    associate_public_ip_address = true
}

рдкреАрдПрд╕: рдбреЙрдХреНрд╕ рдФрд░ рд╡реЗрд░рд┐рдПрдмрд▓ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдЖ рд░рд╣реЗ рд╣реИрдВ!

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ @azr , рдЖрдкрдХреЛ рдФрд░ рдЯреАрдо рдХреЛ рдзрдиреНрдпрд╡рд╛рджред

рдбрдмреНрд▓реВрдЖрд░рдЯреА: рдЬреЗрдПрд╕рдУрдПрди рдХреЛ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░рдирд╛ред
рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ рдХрд┐ рдЖрдк HCL/HCL2 рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд JSON рд╕рдорд░реНрдерди рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдХреЛрдИ json2hcl рдХрдирд╡рд░реНрдЯрд░ рд╣реИ? рдореИрдВрдиреЗ рдиреЗрдЯрдлреНрд▓рд┐рдХреНрд╕ рдУрдПрд╕рдПрд╕ рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреИрдХрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдИ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдПрдЪрд╕реАрдПрд▓ рдореЗрдВ рдмрджрд▓рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░, рдореИрдВ рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЛ рд▓реЗрдХрд░ рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВ!

@darkn3rd рдореИрдВ рдПрдХ рдкреИрдХрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдирд╡рд░реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЙрдкреА рдкреЗрд╕реНрдЯ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдЖрдЬрд╝рдорд╛ рд╕рдХреЗрдВ рдФрд░ рдХрд╛рдо рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХреЗрдВред

@mexisme рдПрдЪрд╕реАрдПрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЗрдПрд╕рдУрдПрди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддреА рд╣реИ рд▓реЗрдХрд┐рди рдкреНрд░рд╛рд░реВрдк рдереЛрдбрд╝рд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рд╕рдВрдкрд╛рджрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХрдиреНрд╡рд░реНрдЯрд░ рдПрдХ рдлрд╛рдЗрд▓ рдХреЛ JSON (рдпрд╛ рдХреБрдЫ рдФрд░) рдореЗрдВ рдмрджрд▓ рджреЗред


тЪая╕П рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдЬреИрд╕рд╛ рдХреБрдЫ рдФрд░ рджрд┐рдЦрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдПрдЪрд╕реАрдПрд▓ рдлрд╝рд╛рдЗрд▓

build {
    sources = [
        "source.amazon-ebs.first",
    ]

    provisioner "shell" {
        inline = [
            "sleep 5"
        ]
    }

    post-processor "shell-local" {
        inline = [
            "sleep 5"
        ]
    }
}

source "amazon-ebs" "first" {
    // access_key = "{{user `aws_access_key`}}"
    // secret_key = "{{user `aws_secret_key`}}"

    ami_name = "hcl2-test"
    region = "us-east-1"
    instance_type = "t2.micro"

    kms_key_id = "c729958f-c6ba-44cd-ab39-35ab68ce0a6c"
    encrypt_boot = true
    source_ami_filter {
        filters {
          virtualization-type = "hvm"
          name =  "amzn-ami-hvm-????.??.?.????????-x86_64-gp2"
          root-device-type = "ebs"
        }
        most_recent = true
        owners = ["amazon"]
    }
    launch_block_device_mappings {
        device_name = "/dev/xvda"
        volume_size = 20
        volume_type = "gp2"
        delete_on_termination = "true"
    }
    launch_block_device_mappings {
        device_name = "/dev/xvdf"
        volume_size = 500
        volume_type = "gp2"
        delete_on_termination = true
        encrypted = true
    }

    ami_regions = ["eu-central-1"]
    run_tags {
        Name = "packer-solr-something"
        stack-name = "DevOps Tools"
    }

    communicator = "ssh"
    ssh_pty = true
    ssh_username = "ec2-user"
    associate_public_ip_address = true
}

рдирдИ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдпрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреА

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ _30 рджрд┐рдиреЛрдВ_ рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдореБрджреНрджреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЛ рдРрд╕реА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд╕рдорд╛рди рд▓рдЧрддреА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╣рдо рдЖрдЧреЗ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░ рд╕рдХреЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

paulcdejean picture paulcdejean  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mwhooker picture mwhooker  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tleyden picture tleyden  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mvermaes picture mvermaes  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

DanielBo picture DanielBo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ