88 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Terraform resources
 | 
						|
Terraform templates and other resources/examples for use with spearhead.coud or 
 | 
						|
other triton providers.
 | 
						|
 | 
						|
In the terraform directory you will find some templates to help get you started.
 | 
						|
Remove the tpl extension and modify to your liking.
 | 
						|
 | 
						|
 | 
						|
# Examples
 | 
						|
## Provision a vm 
 | 
						|
<pre>
 | 
						|
$ git clone https://github.com/spearheadsys/terraform-spearhead.cloud.git
 | 
						|
</pre>
 | 
						|
### edit the main.tf file
 | 
						|
<pre>
 | 
						|
terraform {
 | 
						|
  required_providers {
 | 
						|
    triton = {
 | 
						|
      source = "joyent/triton"
 | 
						|
      version = "0.8.2"
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
provider "triton" {
 | 
						|
    account = "<mark>username</mark>"
 | 
						|
    key_id  = "<mark>key:id</mark>"
 | 
						|
    url = "https://eu-ro-1.api.spearhead.cloud"
 | 
						|
    key_material = "<mark>/path/to/id_rsa</mark>"
 | 
						|
    insecure_skip_tls_verify = false
 | 
						|
}
 | 
						|
 | 
						|
resource "triton_machine" "<mark>internal_resource_name</mark>" {
 | 
						|
  // customize these if you need to create multiple instances
 | 
						|
  // comment our the count if you need just one
 | 
						|
  // remove the variable count.index from the name if so
 | 
						|
  <mark>count   = var.instance_count</mark>
 | 
						|
  <mark>name    = "linux-${count.index + 1}"</mark>
 | 
						|
  package = "standard-2cpu-4ram-100disk"
 | 
						|
  // choose on image (lx, hvm or smartos)
 | 
						|
  image   = "b70d5484-5168-4ecb-8127-0a0c59c1d906"
 | 
						|
 | 
						|
/*
 | 
						|
// Use these (provisioner file and remote-exec if you would like to 
 | 
						|
// further customize or run specific commands once the instance 
 | 
						|
// is provisioned
 | 
						|
 | 
						|
  provisioner "file" {
 | 
						|
    source = "scripts/setup.sh"
 | 
						|
    destination = "/var/tmp/setup.sh"
 | 
						|
  }
 | 
						|
 | 
						|
  provisioner "remote-exec" {
 | 
						|
    inline = [
 | 
						|
      "bash /var/tmp/setup.sh",
 | 
						|
    ]
 | 
						|
  }
 | 
						|
*/
 | 
						|
 | 
						|
  connection {
 | 
						|
    type = "ssh"
 | 
						|
    host = self.primaryip
 | 
						|
    user = "ubuntu"
 | 
						|
  }
 | 
						|
 | 
						|
/*
 | 
						|
// use this to configure the Container Namer Service within triton and access
 | 
						|
// your system(s) via a service name/tag defined in the variables.tf file
 | 
						|
// you would then be able to access your system(s) via dns. For more details see
 | 
						|
// [this](http://docs.spearhead.cloud/dns/)
 | 
						|
 | 
						|
  cns {
 | 
						|
        services = ["${var.service_name}"]
 | 
						|
  }
 | 
						|
*/
 | 
						|
}
 | 
						|
</pre>
 | 
						|
 | 
						|
## Provision using terraform(hvm bhyve ubuntu 20.04.03)
 | 
						|
<pre>
 | 
						|
$ terraform init
 | 
						|
$ terraform plan
 | 
						|
$ terraform apply
 | 
						|
</pre>
 | 
						|
 | 
						|
 | 
						|
## Creating images with Packer
 | 
						|
coming soon... |