Skip to content

Commit 76166f7

Browse files
committed
feat: add terraform role
1 parent 1d28e60 commit 76166f7

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ This Ansible collection provides a set of roles designed for configuring Kubuntu
2424
| `xebis.ansible.openssh_server` | Installs OpenSSH server and provides `Restart ssh` handler. | `xebis.ansible.apt` |
2525
| `xebis.ansible.snapd` | Snap daemon | `xebis.ansible.apt` |
2626
| [xebis.ansible.system](roles/system/README.md) | System-related tasks such as reboot handler or reboot when required handler. | |
27+
| `xebis.ansible.terraform` | Terraform | |
2728
| [xebis.ansible.tmpfs](roles/tmpfs/README.md) | Sets to mount directories as tmpfs during startup. | `xebis.ansible.system` |
2829
| [`xebis.ansible.users`](roles/users/README.md) | Ansible role for managing system users. | `xebis.ansible.openssh_server` |
2930
| [`xebis.ansible.visual_studio_code`](roles/visual_studio_code/README.md) | Microsoft Visual Studio Code (Stable) | `xebis.ansible.apt` |

roles/terraform/tasks/main.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
- name: Get all versions of Terraform
3+
ansible.builtin.uri:
4+
url: https://releases.hashicorp.com/terraform/index.json
5+
return_content: true
6+
register: terraform_index
7+
check_mode: false
8+
9+
- name: Get the latest Terraform version
10+
ansible.builtin.set_fact:
11+
terraform_version: "{{ (terraform_index.content | from_json).versions | reject('search', '-') | list | community.general.version_sort | last }}"
12+
13+
- name: Check if Terraform is present with the right version
14+
ansible.builtin.command: "terraform -version"
15+
register: terraform_installed_version
16+
ignore_errors: true
17+
changed_when: false
18+
failed_when: false
19+
20+
- name: Install Terraform
21+
become: true
22+
ansible.builtin.unarchive:
23+
src: "https://releases.hashicorp.com/terraform/{{ terraform_version }}/terraform_{{ terraform_version }}_linux_amd64.zip"
24+
dest: /usr/local/bin/
25+
remote_src: true
26+
when: terraform_version not in ( terraform_installed_version.stdout_lines | default(['empty'], true) | first )

test.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,13 @@
5151
name: infra
5252
- role: xebis.ansible.ansible
5353
- role: xebis.ansible.direnv
54+
- role: xebis.ansible.terraform
5455
- role: xebis.ansible.yq
5556
- role: xebis.ansible.docker
5657
- role: xebis.ansible.visual_studio_code
5758
vars:
5859
extensions:
5960
- davidanson.vscode-markdownlint
61+
- HashiCorp.terraform
6062
- mkhl.direnv
63+
- oderwat.indent-rainbow

0 commit comments

Comments
 (0)