Sim, você pode usar funções no Tower. Fazemos algo como o seguinte, agrupando funções relacionadas em um playbook (playbook.yml neste exemplo) e depois chamando isso de um trabalho do Tower.
playbook.yml
---
- name: Example playbook
hosts: '{{ target }}'
roles:
- { role: init }
- { role: deploy }
- { role: cleanup }
Árvore de diretórios
roles/
init/
...
tasks/
main.yml
...
deploy/
...
tasks/
main.yml
...
cleanup/
...
tasks/
main.yml
...
Em seguida, no trabalho do Tower, você pode fornecer {{ target }}
ou usar um questionário para solicitar ao usuário.