Skip to content

Conversation

AlexCK-STFC
Copy link

For some reason, perhaps an upstream change, terraform_available_versions was resulting in a string of a list when no versions are available.

Closes #25

@AlexCK-STFC
Copy link
Author

AlexCK-STFC commented Jul 29, 2025

Fix works as per log:

Using /home/ubuntu/azimuth/cloud-azimuth-config/environments/stfc-dev/ansible.cfg as config file
running playbook inside collection azimuth_cloud.azimuth_ops

PLAY [Provision seed node using OpenTofu] **************************************

TASK [Gathering Facts] *********************************************************
ok: [localhost]

TASK [Install Terraform] *******************************************************
included: azimuth_cloud.terraform.install for localhost

TASK [azimuth_cloud.terraform.install : Check if Terraform binary exists in search directories] ***
ok: [localhost] => (item=/home/ubuntu/azimuth/cloud-azimuth-config/.bin) => {"ansible_loop_var": "item", "changed": false, "item": "/home/ubuntu/azimuth/cloud-azimuth-config/.bin", "stat": {"exists": false}}
ok: [localhost] => (item=/home/ubuntu/azimuth/cloud-azimuth-config/.venv/bin) => {"ansible_loop_var": "item", "changed": false, "item": "/home/ubuntu/azimuth/cloud-azimuth-config/.venv/bin", "stat": {"exists": false}}
ok: [localhost] => (item=/usr/local/sbin) => {"ansible_loop_var": "item", "changed": false, "item": "/usr/local/sbin", "stat": {"exists": false}}
ok: [localhost] => (item=/usr/local/bin) => {"ansible_loop_var": "item", "changed": false, "item": "/usr/local/bin", "stat": {"exists": false}}
ok: [localhost] => (item=/usr/sbin) => {"ansible_loop_var": "item", "changed": false, "item": "/usr/sbin", "stat": {"exists": false}}
ok: [localhost] => (item=/usr/bin) => {"ansible_loop_var": "item", "changed": false, "item": "/usr/bin", "stat": {"exists": false}}
ok: [localhost] => (item=/sbin) => {"ansible_loop_var": "item", "changed": false, "item": "/sbin", "stat": {"exists": false}}
ok: [localhost] => (item=/bin) => {"ansible_loop_var": "item", "changed": false, "item": "/bin", "stat": {"exists": false}}
ok: [localhost] => (item=/usr/games) => {"ansible_loop_var": "item", "changed": false, "item": "/usr/games", "stat": {"exists": false}}
ok: [localhost] => (item=/usr/local/games) => {"ansible_loop_var": "item", "changed": false, "item": "/usr/local/games", "stat": {"exists": false}}
ok: [localhost] => (item=/snap/bin) => {"ansible_loop_var": "item", "changed": false, "item": "/snap/bin", "stat": {"exists": false}}

TASK [azimuth_cloud.terraform.install : Get available Terraform versions] ******
skipping: [localhost] => {"changed": false, "skipped_reason": "No items in the list"}

TASK [azimuth_cloud.terraform.install : Set Terraform versions fact] ***********
ok: [localhost] => {"ansible_facts": {"terraform_available_versions": []}, "changed": false}

TASK [azimuth_cloud.terraform.install : Filter Terraform versions] *************
ok: [localhost] => {"ansible_facts": {"terraform_acceptable_versions": []}, "changed": false}

TASK [azimuth_cloud.terraform.install : Set Terraform binary path] *************
skipping: [localhost] => {"changed": false, "false_condition": "terraform_acceptable_versions | length > 0", "skip_reason": "Conditional result was False"}

TASK [azimuth_cloud.terraform.install : Show terraform_binary_path] ************
skipping: [localhost] => {"false_condition": "terraform_binary_path is defined"}

TASK [azimuth_cloud.terraform.install : Ensure Terraform bin directory exists] ***
changed: [localhost] => {"changed": true, "gid": 1000, "group": "ubuntu", "mode": "0755", "owner": "ubuntu", "path": "/home/ubuntu/azimuth/cloud-azimuth-config/.bin", "size": 4096, "state": "directory", "uid": 1000}

TASK [azimuth_cloud.terraform.install : Download Terraform binary] *************
changed: [localhost] => {"changed": true, "dest": "/home/ubuntu/azimuth/cloud-azimuth-config/.bin", "extract_results": {"cmd": ["/usr/bin/unzip", "-o", "/home/ubuntu/.ansible/tmp/ansible-tmp-1753792941.3058896-29950-243779711352623/tofu_1.9.1_linux_amd646v09k7rx.zip", "-d", "/home/ubuntu/azimuth/cloud-azimuth-config/.bin"], "err": "", "out": "Archive:  /home/ubuntu/.ansible/tmp/ansible-tmp-1753792941.3058896-29950-243779711352623/tofu_1.9.1_linux_amd646v09k7rx.zip\n  inflating: /home/ubuntu/azimuth/cloud-azimuth-config/.bin/CHANGELOG.md  \n  inflating: /home/ubuntu/azimuth/cloud-azimuth-config/.bin/LICENSE  \n  inflating: /home/ubuntu/azimuth/cloud-azimuth-config/.bin/README.md  \n  inflating: /home/ubuntu/azimuth/cloud-azimuth-config/.bin/tofu  \n", "rc": 0}, "gid": 1000, "group": "ubuntu", "handler": "ZipArchive", "mode": "0755", "owner": "ubuntu", "size": 4096, "src": "/home/ubuntu/.ansible/tmp/ansible-tmp-1753792941.3058896-29950-243779711352623/tofu_1.9.1_linux_amd646v09k7rx.zip", "state": "directory", "uid": 1000}

TASK [azimuth_cloud.terraform.install : Set current Terraform path fact] *******
ok: [localhost] => {"ansible_facts": {"terraform_binary_path": "/home/ubuntu/azimuth/cloud-azimuth-config/.bin/tofu"}, "changed": false}

TASK [azimuth_cloud.terraform.install : Display Terraform path and version message] ***
ok: [localhost] => {
    "msg": "Using Terraform version 1.9.1 from /home/ubuntu/azimuth/cloud-azimuth-config/.bin/tofu."
}

@AlexCK-STFC
Copy link
Author

I believe this was broken by ansible-core 2.19

Core 2.19 introduces major changes, should it be rejected for now in requirements?

requirements.txt allows "ansible-core>=2.12"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Install playbook now fails if Terraform is not already installed
1 participant