{ "variables": { "region": "us-east-1", "ssh_username": "admin", "ami_description": "jambonz webserver", "instance_type": "t2.medium", "jambonz_version": "v0.6.7-rc8", "install_datadog": "no", "install_telegraf": "yes" }, "builders": [{ "type": "amazon-ebs", "region": "{{user `region`}}", "source_ami_filter": { "filters": { "virtualization-type": "hvm", "name": "debian-10-amd64-*", "root-device-type": "ebs" }, "owners": ["136693071363"], "most_recent": true }, "instance_type": "{{user `instance_type`}}", "ssh_username": "{{user `ssh_username`}}", "ami_name": "jambonz-webserver-{{user `jambonz_version`}}-{{isotime |clean_resource_name }}", "ami_description": "{{user `ami_description`}}", "launch_block_device_mappings": [ { "device_name": "/dev/xvda", "volume_size": 80, "volume_type": "gp2", "delete_on_termination": true } ], "security_group_filter": { "filters": { "tag:Class": "packer" } }, "tags": { "Name": "jambonz-webserver" }, "run_tags": { "Name": "jambonz-webserver-build" } }], "provisioners": [ { "type": "shell", "inline": [ "while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo 'Waiting for cloud-init...'; sleep 1; done", "sudo apt-get update", "sudo apt-get -y install python gcc g++ make cmake build-essential git autoconf automake default-mysql-client redis-tools \\", "curl telnet libtool libtool-bin libssl-dev libcurl4-openssl-dev libz-dev systemd-coredump liblz4-tool \\", "iptables-dev libavformat-dev lsb-release fail2ban \\", "nginx python3-certbot-nginx default-libmysqlclient-dev htop dnsutils gdb \\", "gnupg2 wget pkg-config ca-certificates libjpeg-dev libsqlite3-dev libpcre3-dev libldns-dev", "sudo chmod a+w /usr/local/src", "ssh-keyscan github.com >> ~/.ssh/known_hosts", "mkdir ~/apps", "cd ~/apps", "git clone git@github.com:jambonz/jambonz-api-server.git -b {{user `jambonz_version`}}", "git clone git@github.com:jambonz/jambonz-webapp.git -b {{user `jambonz_version`}}", "git clone git@github.com:jambonz/public-apps.git", "sudo find / -name authorized_keys | sudo xargs -0 -r rm -Rf" ] }, { "type": "file", "source": "files/", "destination": "/tmp" }, { "type": "shell", "script": "scripts/install_nginx.sh" }, { "type": "shell", "script": "scripts/install_chrony.sh" }, { "type": "shell", "execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `install_telegraf`}}", "script": "scripts/install_telegraf.sh" }, { "type": "shell", "script": "scripts/install_nodejs.sh" }, { "type": "shell", "script": "scripts/install_fail2ban.sh" }, { "type": "shell", "execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `jambonz_version`}}", "script": "scripts/install_app.sh" } ] }