# Alpha Project Manager An infrastructure as code manager working with gitlab and scaleway. ## Setup Terraform Locally First, you must setup 2 local files for your variables : ### variables-local.tf Create a file **variables-local.tf** containing the following code : ```hcl variable "FORGE_PROJECT_ID" { type = string description = "Forge Project ID" default = "your project id" sensitive = true } variable "FORGE_USERNAME" { type = string description = "Forge Username" default = "your username" sensitive = true } variable "FORGE_ACCESS_TOKEN" { type = string description = "Forge Access Token" default = "your access token" sensitive = true } ``` ### variables-local.tfvars Now, you can create a file for your variables information called **variables-local.tfvars** containing the following code : ```hcl ### SCW variables SCW_PROJECT_ID = "" SCW_ACCESS_KEY = "" SCW_SECRET_KEY = "" SCW_SSH_PUB_KEY = "" SCW_SSH_PRIVATE_KEY = "" INSTANCES_COUNT = "2" ENVIRONMENT = "devrust" ``` ### Terraform init - Gitlab remote tfstate You can grab a init command from your gitlab project on menu Infrastructure > Terraform. Select your environment and click the actions button, then you will only need to provide a gitlab project token. Command should look like : ```bash export GITLAB_ACCESS_TOKEN=<YOUR-ACCESS-TOKEN> terraform init \ -backend-config="address=https://forge.grandlyon.com/api/v4/projects/875/terraform/state/devrust" \ -backend-config="lock_address=https://forge.grandlyon.com/api/v4/projects/875/terraform/state/devrust/lock" \ -backend-config="unlock_address=https://forge.grandlyon.com/api/v4/projects/875/terraform/state/devrust/lock" \ -backend-config="username=xxxxxxx" \ -backend-config="password=$GITLAB_ACCESS_TOKEN" \ -backend-config="lock_method=POST" \ -backend-config="unlock_method=DELETE" \ -backend-config="retry_wait_min=5" terraform init -var-file=variables-local.tfvars ``` ### Terraform plan - With variables file ```bash terraform plan -var-file=variables-local.tfvars -out=tfplan ``` ### Terraform apply - With plan ```bash terraform apply tfplan ``` ### Terraform destroy - With variables file ```bash terraform destroy -var-file=variables-local.tfvars ```