terraform: Allow user-specific versions

This commit is contained in:
2022-07-01 20:03:36 +02:00
parent ccb10a97d7
commit 97f467f6ec
2 changed files with 14 additions and 9 deletions

View File

@@ -1,8 +1,5 @@
font_size: 12 font_size: 12
terraform_version: 1.1.3
terraform_check_updates: false
users: users:
- name: hannes-work - name: hannes-work
group: hannes-work group: hannes-work
@@ -30,6 +27,10 @@ users:
MACHINE_HAS_KEEPASSX: "true" MACHINE_HAS_KEEPASSX: "true"
has_yubikey: false has_yubikey: false
repositories: [] repositories: []
overrides:
terraform_version: 1.1.3
terraform_check_updates: false
- name: hannes-private - name: hannes-private
group: hannes-private group: hannes-private
vt: 2 vt: 2

View File

@@ -605,9 +605,13 @@
- kubectl - kubectl
- block: - block:
- set_fact:
tf_version: "{{ user.overrides.terraform_version|default(terraform_version) }}"
tf_check_updates: "{{ user.overrides.terraform_check_updates|default(terraform_check_updates)|default(true) }}"
- name: stat current terraform binary - name: stat current terraform binary
stat: stat:
path: "/home/{{ user.name }}/.opt/terraform-v{{ terraform_version }}" path: "/home/{{ user.name }}/.opt/terraform-v{{ tf_version }}"
register: terraform_binary register: terraform_binary
- name: create temporary download directory for terraform - name: create temporary download directory for terraform
@@ -618,7 +622,7 @@
- name: get terraform - name: get terraform
get_url: get_url:
url: "https://releases.hashicorp.com/terraform/{{ terraform_version }}/terraform_{{ terraform_version }}_linux_amd64.zip" url: "https://releases.hashicorp.com/terraform/{{ tf_version }}/terraform_{{ tf_version }}_linux_amd64.zip"
dest: "{{ terraform_download_dir.path }}/terraform.zip" dest: "{{ terraform_download_dir.path }}/terraform.zip"
force: false force: false
when: not terraform_binary.stat.exists when: not terraform_binary.stat.exists
@@ -631,7 +635,7 @@
when: not terraform_binary.stat.exists when: not terraform_binary.stat.exists
- name: install terraform - name: install terraform
command: mv "{{ terraform_download_dir.path }}/terraform" /home/{{ user.name }}/.opt/terraform-v{{ terraform_version }} command: mv "{{ terraform_download_dir.path }}/terraform" /home/{{ user.name }}/.opt/terraform-v{{ tf_version }}
when: not terraform_binary.stat.exists when: not terraform_binary.stat.exists
- name: clean up download directory - name: clean up download directory
@@ -642,7 +646,7 @@
- name: link terraform - name: link terraform
file: file:
src: /home/{{ user.name }}/.opt/terraform-v{{ terraform_version }} src: /home/{{ user.name }}/.opt/terraform-v{{ tf_version }}
dest: /home/{{ user.name }}/.optbin/terraform dest: /home/{{ user.name }}/.optbin/terraform
state: link state: link
@@ -660,10 +664,10 @@
- name: warn if terraform is outdated - name: warn if terraform is outdated
fail: fail:
msg: "current terraform v{{ terraform_version }} is out of date" msg: "current terraform v{{ tf_version }} is out of date"
when: terraform_outdated is sameas true when: terraform_outdated is sameas true
ignore_errors: True ignore_errors: True
when: terraform_check_updates when: tf_check_updates
tags: tags:
- terraform - terraform