Install Terraform
Download Terraform binary and unzip the package.
Set terraform path to unzipped binary location. Terraform runs as a single binary named terraform. Any other files in the package can be safely removed and Terraform will still function.
Verify the setup by using command terraform version in CLI.
Install AWS CLI
Download and run the AWS CLI MSI installer for Windows (64-bit):
To confirm the installation, open the Start menu, search for cmd to open a command prompt window, and at the command prompt use the aws --version command.
Build a infrastructure
- Create a directory for your configuration
mkdir terraform
- Change the directory and create a file main.tf.
- Initialize the directory with
terraform init
.
- Run
terraform plan
to see any changes are required for infrastructure. - Format and validate the configuration
- Apply the configuration now with the
terraform apply
command.
Configuring Gitlab CI for Terraform
- Create a file on the root of your repository called .gitlab-ci.yml
- Get your access key ID and secret access key.
- Set aws variables go to - gitlab project → settings → CI/CD → Variables
Sample GitLab pipeline
stages: - validate - plan - apply - destroy image: name: hashicorp/terraform:light entrypoint: - '/usr/bin/env' - 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' before_script: - export AWS_ACCESS_KEY=${AWS_ACCESS_KEY_ID} - export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - rm -rf .terraform - cd terraform/ - terraform --version - terraform init validate: stage: validate script: - terraform validate only: - branches plan: stage: plan script: - terraform plan -out "planfile" dependencies: - validate artifacts: paths: - planfile apply: stage: apply script: - terraform apply -input=false "planfile" dependencies: - plan when: manual only: - main destroy: stage: destroy script: - echo "Destroying resources" - terraform destroy -state=$STATE --auto-approve dependencies: - apply when: manual only: refs: - main
Top comments (1)
It work great form me. Thank you