zuul-jobs/roles/ensure-terraform/tasks/install-terraform.yaml
Sorin Sbarnea 0eaa5cf59a Upgrade ansible-lint to 5.0
- bumps ansible-lint to 5.0
- updates our custom rules to make them compatible with 5.0
- replace custom module mocking with native ansible-lint ones
- remove custom call of ansible-playbook --syntax-check as now this
  is done by ansible-lint
- assured molecule vars are hosted under a vars/ folder in order to
  avoid confusing linter detection.
- replaced custom rule for loop var names in role as now this this an
  optional core feature of the linter (see config)
- replaced custom rule no-same-owner with opt-in one (see config)

Change-Id: I233fae8c9036d295968a97ee80e07fde8846c633
2021-03-17 15:44:43 +00:00

77 lines
2.1 KiB
YAML

- name: Check if unzip is installed
command: unzip -v # noqa command-instead-of-module
failed_when: false
register: _unzip_probe
- name: Install unzip
when: _unzip_probe.rc != 0
package:
name: unzip
become: yes
- name: Get terraform checksums
uri:
url: "{{ hashicorp_releases_fqdn }}/\
terraform/{{ terraform_version }}/terraform_{{ terraform_version }}_SHA256SUMS"
return_content: true
register: terraform_version_checksums
- name: Set terraform checksum
set_fact:
terraform_checksum: "{{ \
terraform_version_checksums.content | \
regex_search( '[a-z0-9]+ ' + terraform_package) | \
regex_replace( '(?P<checksum>[a-z0-9]+) ' + terraform_package, '\\g<checksum>')
}}"
- name: Create temp directory
tempfile:
state: directory
register: terraform_install_tempdir
- name: Download terraform archive
get_url:
url: "{{ hashicorp_releases_fqdn }}/\
terraform/{{ terraform_version }}/{{ terraform_package }}.zip"
dest: "{{ terraform_install_tempdir.path }}/{{ terraform_package }}.zip"
checksum: "sha256:{{ terraform_checksum }}"
- name: Create terraform package directory
file:
path: "{{ terraform_install_tempdir.path }}/{{ terraform_package }}"
state: directory
mode: 0755
- name: Unarchive terraform
unarchive:
src: "{{ terraform_install_tempdir.path }}/{{ terraform_package }}.zip"
dest: "{{ terraform_install_tempdir.path }}/{{ terraform_package }}"
remote_src: yes
- name: Make sure installation directory exists
file:
path: "{{ terraform_install_dir }}"
state: directory
mode: 0755
- name: Install terraform
copy:
src: "{{ terraform_install_tempdir.path }}/{{ terraform_package }}/terraform"
dest: "{{ terraform_install_dir }}/terraform"
mode: 0755
owner: "{{ ansible_user }}"
remote_src: yes
- name: Remove tempdir
file:
path: "{{ terraform_install_tempdir }}"
state: absent
- name: Set terraform executable fact
set_fact:
terraform_executable: "{{ terraform_install_dir }}/terraform"
cacheable: true
- name: Output terraform version
command: "{{ terraform_executable }} version"