terraform: Allow user-specific versions
This commit is contained in:
@@ -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
|
||||||
|
|||||||
16
user.yml
16
user.yml
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user