55 lines
1.8 KiB
YAML
55 lines
1.8 KiB
YAML
---
|
|
# Example workflow that updates inventory and then uses it
|
|
- name: Step 1 - Update Linode Inventory
|
|
hosts: localhost
|
|
gather_facts: true
|
|
connection: local
|
|
|
|
vars:
|
|
push_to_git: true
|
|
awx_api_integration: true
|
|
awx_host: "{{ lookup('env', 'TOWER_HOST') | default('https://localhost') }}"
|
|
awx_project_id: "{{ lookup('env', 'AWX_PROJECT_ID') | default('') }}"
|
|
awx_token: "{{ lookup('env', 'AWX_TOKEN') | default('') }}"
|
|
|
|
roles:
|
|
- role: linode_inventory
|
|
|
|
- name: Step 2 - Wait for project sync (if using API)
|
|
hosts: localhost
|
|
gather_facts: false
|
|
tasks:
|
|
- name: Wait for project sync to complete
|
|
ansible.builtin.pause:
|
|
seconds: 30
|
|
when: awx_api_integration | default(false)
|
|
|
|
- name: Manual sync reminder
|
|
ansible.builtin.debug:
|
|
msg: |
|
|
⚠️ MANUAL ACTION REQUIRED ⚠️
|
|
|
|
Please manually sync your AWX project now to pull the updated inventory file.
|
|
Then create/sync an inventory source pointing to: inventory/linode_hosts.json
|
|
|
|
After that, you can run jobs against your discovered Linode hosts!
|
|
when: not (awx_api_integration | default(false))
|
|
|
|
# This play would run in a separate job template after inventory is synced
|
|
- name: Step 3 - Example task using discovered hosts
|
|
hosts: localhost
|
|
gather_facts: false
|
|
tasks:
|
|
- name: Instructions for next job template
|
|
ansible.builtin.debug:
|
|
msg: |
|
|
This would be a separate job template that runs after inventory sync.
|
|
It would target groups like:
|
|
- tag_k3s
|
|
- tag_control_plane
|
|
- tag_worker_node
|
|
- region_us_southeast
|
|
|
|
Example: Create a job template with inventory pointing to the Linode hosts
|
|
and limit it to specific groups like 'tag_k3s' to run tasks on k3s nodes only.
|