Skip to content

Instantly share code, notes, and snippets.

@ericbrumfield
Created October 14, 2019 21:47
Show Gist options
  • Save ericbrumfield/2f890ff8f0339d26d2b08248b5d690b5 to your computer and use it in GitHub Desktop.
Save ericbrumfield/2f890ff8f0339d26d2b08248b5d690b5 to your computer and use it in GitHub Desktop.

Revisions

  1. ericbrumfield created this gist Oct 14, 2019.
    77 changes: 77 additions & 0 deletions Packer EC2 AMI Bake Ansible winrm
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,77 @@
    {
    "variables": {
    "src_ami_id": "",
    "out_ami_name": "",
    "ec2_keypair_name": "",
    "private_key_file": "",
    "builder_instance_type": "t2.small",
    "bootstrap_pfx_file_path": "",
    "bootstrap_pfx_password": "",
    "vault_kv1_mount": "",
    "vault_server_url": "",
    "ec2_os": "windows",
    "ec2_private_key_file_path": "",
    "net_core_config_path": "",
    "net_core_environment": "production",
    "playbook_file_path": "",
    "ansible_user": "",
    "playbook_extra_vars_val": "",
    "vpc_id": "",
    "subnet_id": "",
    "ec2_encrypt_boot": "",
    "ec2_kms_key_arn": ""
    },
    "builders": [
    {
    "type": "amazon-ebs",
    "region": "us-gov-west-1",
    "profile": "govcloud",
    "source_ami": "{{user `src_ami_id`}}",
    "ami_name": "{{user `out_ami_name`}}",
    "user_data_file": "./ec2_win_ami_userdata.ps1",
    "instance_type": "{{user `builder_instance_type`}}",
    "force_delete_snapshot": true,
    "force_deregister": true,
    "security_group_filter": {
    "filters": {
    "group-name": "ansible-winrm"
    }
    },
    "vpc_id": "{{user `vpc_id`}}",
    "subnet_id": "{{user `subnet_id`}}",
    "shutdown_behavior": "terminate",
    "encrypt_boot": "{{user `ec2_encrypt_boot`}}",
    "kms_key_id": "{{user `ec2_kms_key_arn`}}",
    "run_tags": {
    "packer_build_lookup": "{{user `out_ami_name`}}",
    "packer_build": "{{user `out_ami_name`}}",
    "Name": "Packer_{{user `out_ami_name`}}"
    },
    "communicator": "winrm",
    "ssh_keypair_name": "{{user `ec2_keypair_name`}}",
    "ssh_interface": "public_ip",
    "ssh_private_key_file": "{{user `private_key_file`}}",
    "winrm_username": "Administrator",
    "winrm_use_ntlm": true,
    "winrm_insecure": true,
    "winrm_port": "5986",
    "winrm_use_ssl": true
    }
    ],
    "provisioners": [
    {
    "type": "shell-local",
    "command": "[Redacted]"
    },
    {
    "type": "ansible",
    "user": "Administrator",
    "ansible_env_vars": [ "WINRM_PASSWORD={{.WinRMPassword}}" ],
    "playbook_file": "{{user `playbook_file_path`}}",
    "extra_arguments": [
    "--connection", "packer",
    "--extra-vars", "{{user `playbook_extra_vars_val`}} ansible_shell_type=powershell ansible_shell_executable=None"
    ]
    }
    ]
    }