2016-03-29 11:37:19 +00:00
|
|
|
[global]
|
|
|
|
appname = "infra-tusd"
|
2016-03-29 13:49:46 +00:00
|
|
|
approot = "/srv/tusd"
|
2016-03-29 11:37:19 +00:00
|
|
|
|
|
|
|
[global.ssh]
|
|
|
|
key_dir = "./ssh"
|
|
|
|
|
|
|
|
[global.ansiblecfg.privilege_escalation]
|
|
|
|
become = true
|
|
|
|
|
|
|
|
[global.ansiblecfg.defaults]
|
2016-03-29 13:49:46 +00:00
|
|
|
host_key_checking = false
|
2016-03-29 11:37:19 +00:00
|
|
|
|
|
|
|
[infra.provider.aws]
|
|
|
|
access_key = "${var.FREY_AWS_ACCESS_KEY}"
|
|
|
|
region = "us-east-1"
|
|
|
|
secret_key = "${var.FREY_AWS_SECRET_KEY}"
|
|
|
|
|
|
|
|
[infra.variable.ami.default]
|
|
|
|
us-east-1 = "ami-9bce7af0"
|
|
|
|
[infra.variable.ip_all]
|
|
|
|
default = "0.0.0.0/0"
|
|
|
|
[infra.variable.ip_kevin]
|
|
|
|
default = "62.163.187.106/32"
|
|
|
|
[infra.variable.ip_marius]
|
|
|
|
default = "84.146.0.0/16"
|
|
|
|
[infra.variable.ip_tim]
|
|
|
|
default = "24.134.75.132/32"
|
|
|
|
[infra.variable.region]
|
|
|
|
default = "us-east-1"
|
|
|
|
|
|
|
|
[infra.output.public_address]
|
|
|
|
value = "${aws_instance.infra-tusd-server.0.public_dns}"
|
|
|
|
[infra.output.public_addresses]
|
|
|
|
value = "${join(\"\n\", aws_instance.infra-tusd-server.*.public_dns)}"
|
|
|
|
[infra.output.endpoint]
|
|
|
|
value = "http://${aws_route53_record.www.name}:80/"
|
|
|
|
|
|
|
|
[infra.resource.aws_instance.infra-tusd-server]
|
2016-03-29 13:49:46 +00:00
|
|
|
ami = "${lookup(var.ami, var.region)}"
|
|
|
|
instance_type = "c3.large"
|
|
|
|
key_name = "infra-tusd"
|
2016-03-29 11:37:19 +00:00
|
|
|
security_groups = ["fw-infra-tusd-main"]
|
|
|
|
[infra.resource.aws_instance.infra-tusd-server.connection]
|
|
|
|
key_file = "{{{config.global.ssh.privatekey_file}}}"
|
2016-03-29 13:49:46 +00:00
|
|
|
user = "{{{config.global.ssh.user}}}"
|
2016-03-29 11:37:19 +00:00
|
|
|
[infra.resource.aws_instance.infra-tusd-server.tags]
|
|
|
|
Name = "${var.FREY_DOMAIN}"
|
|
|
|
|
|
|
|
[infra.resource.aws_route53_record.www]
|
2016-03-29 13:49:46 +00:00
|
|
|
name = "${var.FREY_DOMAIN}"
|
2016-03-29 11:37:19 +00:00
|
|
|
records = ["${aws_instance.infra-tusd-server.public_dns}"]
|
2016-03-29 13:49:46 +00:00
|
|
|
ttl = "300"
|
|
|
|
type = "CNAME"
|
2016-03-29 11:37:19 +00:00
|
|
|
zone_id = "${var.FREY_AWS_ZONE_ID}"
|
|
|
|
|
|
|
|
[infra.resource.aws_security_group.fw-infra-tusd-main]
|
|
|
|
description = "Infra tusd"
|
2016-03-29 13:49:46 +00:00
|
|
|
name = "fw-infra-tusd-main"
|
2016-03-29 11:37:19 +00:00
|
|
|
[[infra.resource.aws_security_group.fw-infra-tusd-main.ingress]]
|
|
|
|
cidr_blocks = ["${var.ip_all}"]
|
2016-03-29 13:49:46 +00:00
|
|
|
from_port = 8080
|
|
|
|
protocol = "tcp"
|
|
|
|
to_port = 8080
|
2016-03-29 11:37:19 +00:00
|
|
|
[[infra.resource.aws_security_group.fw-infra-tusd-main.ingress]]
|
|
|
|
cidr_blocks = ["${var.ip_all}"]
|
2016-03-29 13:49:46 +00:00
|
|
|
from_port = 80
|
|
|
|
protocol = "tcp"
|
|
|
|
to_port = 80
|
2016-03-29 11:37:19 +00:00
|
|
|
[[infra.resource.aws_security_group.fw-infra-tusd-main.ingress]]
|
|
|
|
cidr_blocks = [
|
|
|
|
"${var.ip_kevin}",
|
|
|
|
"${var.ip_marius}",
|
|
|
|
"${var.ip_tim}",
|
|
|
|
]
|
|
|
|
from_port = 22
|
2016-03-29 13:49:46 +00:00
|
|
|
protocol = "tcp"
|
|
|
|
to_port = 22
|
2016-03-29 11:37:19 +00:00
|
|
|
|
|
|
|
[[install.playbooks]]
|
|
|
|
hosts = "infra-tusd-server"
|
2016-03-29 13:49:46 +00:00
|
|
|
name = "Install infra-tusd-server"
|
|
|
|
|
|
|
|
[[install.playbooks.roles]]
|
|
|
|
role = "{{{init.paths.roles_dir}}}/apt/v1.0.0"
|
2016-03-29 11:37:19 +00:00
|
|
|
apt_packages = [
|
|
|
|
"apg",
|
|
|
|
"build-essential",
|
|
|
|
"curl",
|
|
|
|
"git-core",
|
|
|
|
"htop",
|
|
|
|
"iotop",
|
|
|
|
"libpcre3",
|
|
|
|
"logtail",
|
|
|
|
"mlocate",
|
|
|
|
"mtr",
|
|
|
|
"psmisc",
|
|
|
|
"telnet",
|
|
|
|
"vim",
|
|
|
|
"wget",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[install.playbooks.tasks]]
|
2016-03-29 13:49:46 +00:00
|
|
|
lineinfile = "dest=/home/{{{config.global.ssh.user}}}/.bashrc line=\"alias wtf='sudo tail -f /var/log/*{log,err} /var/log/{dmesg,messages,*{,/*}{log,err}}'\" owner={{{config.global.ssh.user}}} group={{{config.global.ssh.user}}} mode=0644 backup=yes"
|
|
|
|
name = "Common | Add convenience shortcut wtf"
|
|
|
|
|
|
|
|
[[install.playbooks.tasks]]
|
|
|
|
lineinfile = "dest=/home/{{{config.global.ssh.user}}}/.bashrc line=\"cd {{{config.global.approot}}}/current || true\" owner={{{config.global.ssh.user}}} group={{{config.global.ssh.user}}} mode=0644 backup=yes"
|
|
|
|
name = "Common | Install login"
|
|
|
|
|
|
|
|
[[install.playbooks.tasks]]
|
|
|
|
name = "Common | Set motd"
|
|
|
|
copy = "content='Welcome to {{lookup('env', 'FREY_DOMAIN')}}' dest=/etc/motd owner=root group=root mode=0644 backup=yes"
|
|
|
|
|
|
|
|
[[install.playbooks.tasks]]
|
|
|
|
name = "Common | Set timezone variables"
|
|
|
|
copy = "content='Etc/UTC' dest=/etc/timezone owner=root group=root mode=0644 backup=yes"
|
|
|
|
notify = [ "Common | Update timezone" ]
|
|
|
|
|
|
|
|
[[install.playbooks.handlers]]
|
|
|
|
name = "Common | Update timezone"
|
|
|
|
command = "dpkg-reconfigure --frontend noninteractive tzdata"
|
|
|
|
|
2016-03-29 11:37:19 +00:00
|
|
|
|
|
|
|
[[setup.playbooks]]
|
|
|
|
hosts = "infra-tusd-server"
|
|
|
|
name = "Setup infra-tusd"
|
|
|
|
|
2016-03-29 13:49:46 +00:00
|
|
|
[[setup.playbooks.roles]]
|
|
|
|
role = "{{{init.paths.roles_dir}}}/fqdn/v1.0.0"
|
|
|
|
fqdn = "{{lookup('env', 'FREY_DOMAIN')}}"
|
2016-03-29 11:37:19 +00:00
|
|
|
|
|
|
|
[[setup.playbooks.tasks]]
|
|
|
|
file = "path=/mnt/tusd-data state=directory owner=www-data group=www-data mode=0755 recurse=yes"
|
|
|
|
name = "infra-tusd | Create tusd data dir"
|
|
|
|
|
|
|
|
[[setup.playbooks.tasks]]
|
|
|
|
action = "template src=templates/upstart-tusd.conf.j2 dest=/etc/init/tusd.conf"
|
|
|
|
name = "infra-tusd | Install upstart file"
|
|
|
|
|
|
|
|
[[deploy.playbooks]]
|
|
|
|
hosts = "infra-tusd-server"
|
|
|
|
name = "Deploy infra-tusd"
|
2016-03-29 13:49:46 +00:00
|
|
|
|
|
|
|
[[deploy.playbooks.roles]]
|
|
|
|
role = "{{{init.paths.roles_dir}}}/deploy/v1.4.0"
|
2016-03-29 11:37:19 +00:00
|
|
|
ansistrano_get_url = "https://github.com/tus/tusd/releases/download/0.1.2/tusd_linux_amd64.tar.gz"
|
2016-03-29 13:49:46 +00:00
|
|
|
ansistrano_deploy_to = "{{{config.global.approot}}}"
|
2016-03-29 11:37:19 +00:00
|
|
|
ansistrano_deploy_via = "download_unarchive"
|
2016-03-29 13:59:15 +00:00
|
|
|
ansistrano_group = "ubuntu"
|
2016-03-29 11:37:19 +00:00
|
|
|
|
|
|
|
[[deploy.playbooks.tasks]]
|
2016-03-29 13:49:46 +00:00
|
|
|
copy = "src=../env.sh dest={{{config.global.approot}}}/current/env.sh mode=0600 owner=root group=root"
|
2016-03-29 11:37:19 +00:00
|
|
|
name = "infra-tusd | Upload environment"
|
|
|
|
|
|
|
|
[[deploy.playbooks.tasks]]
|
|
|
|
name = "tusd | Set file attributes"
|
2016-03-29 13:49:46 +00:00
|
|
|
file = "path={{{config.global.approot}}}/current/tusd_linux_amd64/tusd mode=0755 owner=www-data group=www-data"
|
2016-03-29 11:37:19 +00:00
|
|
|
|
|
|
|
[[restart.playbooks]]
|
|
|
|
hosts = "infra-tusd-server"
|
|
|
|
name = "Restart infra-tusd"
|
|
|
|
|
|
|
|
[[restart.playbooks.tasks]]
|
|
|
|
shell = "iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080"
|
|
|
|
name = "infra-tusd | Redirect HTTP traffic to tusd"
|
|
|
|
|
|
|
|
[[restart.playbooks.tasks]]
|
|
|
|
action = "service name=tusd state=restarted"
|
|
|
|
name = "infra-tusd | Restart"
|