2018-10-20 13:18:34 +03:00
|
|
|
# Terraform setup for DigitalOcean
|
|
|
|
|
|
|
|
This is a teraform setup for my LPI Labs. The servers are deployed on DigitalOcean. The DNS is automatically updated with the server names.
|
|
|
|
|
|
|
|
## Prerequisites
|
|
|
|
|
|
|
|
* Install *Terraform* on your local host:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ wget https://releases.hashicorp.com/terraform/0.11.7/terraform_0.11.7_linux_amd64.zip
|
|
|
|
$ unzip terraform_0.11.7_linux_amd64.zip
|
|
|
|
$ sudo cp terraform /usr/local/bin
|
|
|
|
```
|
|
|
|
|
|
|
|
## Instructions
|
|
|
|
|
|
|
|
* Get the repo
|
|
|
|
|
|
|
|
```
|
|
|
|
$ git clone https://git.theo-andreou.org/Personal/lpi-deploy-digitalocean.git
|
2018-10-20 13:19:59 +03:00
|
|
|
$ cd lpi-deploy-digitalocean
|
2018-10-20 13:18:34 +03:00
|
|
|
```
|
|
|
|
|
|
|
|
* Copy the *terraform.tfvars.example* to *terraform.tfvars* and setup your settings:
|
|
|
|
|
|
|
|
```
|
|
|
|
do_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
|
|
domain = "example.org"
|
|
|
|
count = 14
|
|
|
|
|
|
|
|
server_name = {
|
|
|
|
"debian" = "lpi-deb"
|
|
|
|
"centos" = "lpi-centos"
|
|
|
|
}
|
|
|
|
|
|
|
|
images = {
|
|
|
|
"debian" = "debian-9-x64"
|
|
|
|
"centos" = "centos-7-x64"
|
|
|
|
}
|
|
|
|
|
|
|
|
ssh_keys = [
|
|
|
|
"xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx",
|
|
|
|
]
|
|
|
|
|
|
|
|
dns_server = "ns1.example.org"
|
|
|
|
dns_key_name = "control.ns1.example.org"
|
|
|
|
dns_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxx+xxx=="
|
|
|
|
```
|
|
|
|
|
|
|
|
* Initialize your *Terraform* environment:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ terraform init
|
|
|
|
```
|
|
|
|
|
|
|
|
* Create a *Terraform* plan:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ terraform plan -out lpi.plan
|
|
|
|
```
|
|
|
|
|
|
|
|
* Apply the plan:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ terraform apply "lpi.plan"
|
|
|
|
```
|
|
|
|
|
|
|
|
## References
|
|
|
|
* https://www.terraform.io/docs/providers/scaleway/index.html
|
|
|
|
* https://scaleway.com
|