Guest User

Untitled

a guest
Mar 20th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. provider "aws" {}
  2.  
  3. data "aws_ami" "ubuntu" {
  4. most_recent = true
  5.  
  6. filter {
  7. name = "name"
  8. values = ["ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-*"]
  9. }
  10.  
  11. filter {
  12. name = "virtualization-type"
  13. values = ["hvm"]
  14. }
  15.  
  16. owners = ["099720109477"] # Canonical
  17. }
  18.  
  19. resource "aws_security_group" "kumo_dojo" {
  20. name = "kumo_dojo"
  21. description = "Allow any SSH traffic to this box, like a gangster do."
  22.  
  23. ingress {
  24. from_port = 22
  25. to_port = 22
  26. protocol = "tcp"
  27. cidr_blocks = ["0.0.0.0/0"]
  28. }
  29.  
  30. egress {
  31. from_port = 0
  32. to_port = 0
  33. protocol = "-1"
  34. cidr_blocks = ["0.0.0.0/0"]
  35. }
  36.  
  37. tags {
  38. Name = "Adds SSH access"
  39. }
  40. }
  41.  
  42. resource "aws_key_pair" "kumo_dojo" {
  43. key_name = "kumo_dojo_admin"
  44. public_key = "${file("kumo_dojo_admin.pub")}"
  45. }
  46.  
  47. resource "aws_instance" "kumo_dojo" {
  48. ami = "${data.aws_ami.ubuntu.id}"
  49. instance_type = "t2.micro"
  50. availability_zone = "us-east-1a"
  51. vpc_security_group_ids = ["${aws_security_group.kumo_dojo.id}"]
  52. key_name = "kumo_dojo_admin"
  53. provisioner "remote-exec" {
  54. connection {
  55. type = "ssh"
  56. user = "ubuntu"
  57. private_key = "${file("kumo_dojo_admin")}"
  58. }
  59. scripts = [
  60. "install_docker.sh"
  61. ]
  62. }
  63. provisioner "file" {
  64. connection {
  65. type = "ssh"
  66. user = "ubuntu"
  67. private_key = "${file("kumo_dojo_admin")}"
  68. }
  69. source = "bot"
  70. destination = "~/bot"
  71. }
  72. provisioner "remote-exec" {
  73. connection {
  74. type = "ssh"
  75. user = "ubuntu"
  76. private_key = "${file("kumo_dojo_admin")}"
  77. }
  78. inline = [
  79. "sudo sh -c \"echo 'AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/game_keys' >> /etc/ssh/sshd_config\"",
  80. "touch ~/.ssh/game_keys",
  81. "sudo chmod 600 ~/.ssh/game_keys",
  82. "cd ~/bot",
  83. "sudo docker build -t kumo_dojo_bot .",
  84. "sudo docker run -itd --restart unless-stopped --name kumo-bot -v ~/.ssh/game_keys:/game_keys --health-cmd=\"ps aux | grep -q kumo_dojo_bot.rb\" --health-interval=10s kumo_dojo_bot",
  85. "sudo service ssh restart"
  86. ]
  87. }
  88. }
  89.  
  90. output "instance_ips" {
  91. value = ["${aws_instance.kumo_dojo.*.public_ip}"]
  92. }
Add Comment
Please, Sign In to add comment