从包含的 Ansible Playbook 返回变量

use*_*760 5 ansible

我已经了解了如何在 ansible 剧本中的任务中注册变量,然后在同一剧本中的其他地方使用这些变量,但是您可以在包含的剧本中注册变量,然后在原始剧本中访问这些变量吗?

这是我想要实现的目标:

这是我的主要剧本:

- include: sub-playbook.yml job_url="http://some-jenkins-job"

- hosts: localhost
  roles:
  - some_role
Run Code Online (Sandbox Code Playgroud)

sub-playbook.yml:

---
- hosts: localhost
  tasks:
  - name: Collect info from Jenkins Job
    script: whatever.py --url "{{ job_url }}"
    register: jenkins_artifacts
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我希望能够在 main_playbook 中访问 jenkins_artifacts 结果。我知道您可以从同一剧本中的其他主机访问它,如下所示:"{{ hostvars['localhost']['jenkins_artifacts'].stdout_lines }}"

跨剧本共享的想法是否相同?

tec*_*raf 3

我很困惑这个问题是关于什么的。只需使用变量名称jenkins_artifacts:

- include: sub-playbook.yml job_url="http://some-jenkins-job"

- hosts: localhost
  debug:
    var: jenkins_artifacts
Run Code Online (Sandbox Code Playgroud)