cfk
Version:
Finbox's PaaS
210 lines (209 loc) • 7.04 kB
JSON
{
"_source_ami_info": "[US-WEST-2] Ubuntu Server 14.04 (Trusty Tahr) LTS HVM",
"variables": {
"user": "{{ env `USER` }}",
"atlas_token": "{{ env `ATLAS_TOKEN` }}",
"aws_access_key": "{{ env `AWS_ACCESS_KEY_ID` }}",
"aws_secret": "{{ env `AWS_SECRET_ACCESS_KEY` }}",
"aws_region": "{{ env `AWS_DEFAULT_REGION` }}",
"aws_instance_type": "m4.large",
"role": null,
"version": null,
"branch": null,
"commit": null,
"repository": null
},
"push": {
"name": "finboxio/cfk-{{ user `role` }}",
"token": "{{ user `atlas_token` }}",
"base_dir": "..",
"vcs": true
},
"builders": [
{
"type": "amazon-ebs",
"name": "aws",
"access_key": "{{ user `aws_access_key` }}",
"secret_key": "{{ user `aws_secret` }}",
"region": "{{ user `aws_region` }}",
"source_ami": "ami-534d5d32",
"ami_name": "cfk-{{ user `role` }} v{{ user `version` }}",
"instance_type": "{{ user `aws_instance_type` }}",
"ami_description": "CFK AMI ({{ user `role` }}), Version {{ user `version` }}. Built by user {{ user `user` }} from the {{ user `commit` }} commit of branch '{{ user `branch` }}' in the {{ user `repository` }} repo on {{ isotime \"2006-01-02\" }}",
"ssh_username": "ubuntu",
"force_deregister": true,
"associate_public_ip_address": true,
"launch_block_device_mappings": [
{
"device_name": "/dev/sda1",
"volume_type": "gp2",
"volume_size": 16,
"delete_on_termination": true,
"encrypted": false
}
],
"tags": {
"Project": "cfk",
"Name": "cfk-{{ user `role` }}",
"Role": "{{ user `role` }}",
"Build": "{{ user `commit` }}",
"Version": "{{ user `version` }}",
"Branch": "{{ user `branch` }}",
"Timestamp": "{{ timestamp }}",
"Built-With": "packer",
"Built-By": "{{ user `user` }}"
},
"run_tags": {
"Project": "cfk",
"Name": "cfk-builder",
"Role": "builder"
}
},
{
"type": "virtualbox-iso",
"name": "vbox",
"guest_os_type": "Ubuntu_64",
"iso_url": "http://releases.ubuntu.com/14.04/ubuntu-14.04.3-server-amd64.iso",
"iso_checksum": "a3b345908a826e262f4ea1afeb357fd09ec0558cf34e6c9112cead4bb55ccdfb",
"iso_checksum_type": "sha256",
"ssh_username": "vagrant",
"ssh_password": "vagrant",
"ssh_timeout": "10000s",
"export_opts": [ "--vsys", "0", "--version", "{{ user `version` }}", "--description", "CFK Box ({{ user `role` }}), Version {{ user `version` }}. Built by user {{ user `user` }} from the {{ user `commit` }} commit of branch '{{ user `branch` }}' in the {{ user `repository` }} repo on {{ isotime \"2006-01-02\" }}" ],
"http_directory": "virtualbox",
"boot_command": [
"<esc><esc><enter><wait> ",
"/install/vmlinuz noapic ",
"preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ",
"debian-installer=en_US auto locale=en_US kbd-chooser/method=us ",
"hostname={{ .Name }} ",
"fb=false debconf/frontend=noninteractive ",
"keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA ",
"keyboard-configuration/variant=USA console-setup/ask_detect=false ",
"initrd=/install/initrd.gz -- <enter> "
],
"shutdown_command": "sudo shutdown -P now"
}
],
"provisioners": [
{
"type": "shell",
"only": [ "vbox" ],
"execute_command": "{{ .Vars }} sudo -E sh '{{ .Path }}'",
"inline": [
"cd /tmp",
"mkdir /tmp/isomount",
"mount -t iso9660 -o loop /home/vagrant/VBoxGuestAdditions.iso /tmp/isomount",
"/tmp/isomount/VBoxLinuxAdditions.run",
"umount isomount",
"rm -rf isomount /home/vagrant/VBoxGuestAdditions.iso"
]
},
{
"type": "shell",
"execute_command": "{{ .Vars }} sudo -E sh '{{ .Path }}'",
"start_retry_timeout": "30s",
"inline": [
"apt-get -y install software-properties-common",
"apt-add-repository -y ppa:ansible/ansible",
"apt-get update",
"apt-get -y install ansible curl",
"apt-get -y upgrade"
]
},
{
"type": "shell",
"execute_command": "{{ .Vars }} sudo -E sh '{{ .Path }}'",
"inline": [
"reboot",
"sleep 30"
]
},
{
"type": "shell",
"execute_command": "{{ .Vars }} sudo -E sh '{{ .Path }}'",
"inline": [
"mkdir /usr/src/ansible",
"chmod -R 777 /usr/src/ansible"
]
},
{
"type": "ansible-local",
"playbook_file": "./ansible/playbook.yml",
"playbook_dir": "./ansible",
"inventory_groups": "{{ user `role` }}",
"staging_directory": "/usr/src/ansible",
"extra_arguments": [ "--tags=image", "--extra-vars", "cfk_version={{ user `version` }}" ]
}
],
"post-processors": [
[
{
"type": "vagrant",
"keep_input_artifact": true
},
{
"type": "atlas",
"only": [ "vbox" ],
"token": "{{ user `atlas_token` }}",
"artifact": "finboxio/cfk-{{ user `role` }}",
"artifact_type": "vagrant.box",
"metadata": {
"created_at": "{{ timestamp }}",
"build": "{{ user `commit` }}",
"version": "{{ user `version` }}",
"branch": "{{ user `branch` }}",
"built_with": "packer",
"built_by": "{{ user `user` }}",
"provider": "virtualbox"
}
},
{
"type": "atlas",
"only": [ "aws" ],
"token": "{{ user `atlas_token` }}",
"artifact": "finboxio/cfk-{{ user `role` }}",
"artifact_type": "vagrant.box",
"metadata": {
"created_at": "{{ timestamp }}",
"build": "{{ user `commit` }}",
"version": "{{ user `version` }}",
"branch": "{{ user `branch` }}",
"built_with": "packer",
"built_by": "{{ user `user` }}",
"provider": "aws"
}
}
],
{
"type": "atlas",
"only": [ "aws" ],
"token": "{{user `atlas_token`}}",
"artifact": "finboxio/cfk-{{ user `role` }}",
"artifact_type": "amazon.image",
"metadata": {
"created_at": "{{ timestamp }}",
"build": "{{ user `commit` }}",
"version": "{{ user `version` }}",
"branch": "{{ user `branch` }}",
"built_with": "packer",
"built_by": "{{ user `user` }}"
}
},
{
"type": "atlas",
"only": [ "vbox" ],
"token": "{{user `atlas_token`}}",
"artifact": "finboxio/cfk-{{ user `role` }}",
"artifact_type": "virtualbox.image",
"metadata": {
"created_at": "{{ timestamp }}",
"build": "{{ user `commit` }}",
"version": "{{ user `version` }}",
"branch": "{{ user `branch` }}",
"built_with": "packer",
"built_by": "{{ user `user` }}"
}
}
]
}