首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将host作为变量从角色传递到下一个角色

将host作为变量从角色传递到下一个角色
EN

Stack Overflow用户
提问于 2020-03-19 02:06:00
回答 1查看 22关注 0票数 0

我有一本很长的剧本,里面定义了很多角色。现在我有了一个角色的需求,我需要将host作为一个变量传递,该变量将在较早的角色上定义。例如攻略

代码语言:javascript
复制
    ---
- name: task1
  hosts: app1
  gather_facts: no
  any_errors_fatal: true
  roles:
    - role-1

- name: task2
  hosts: "{{ host }}" 
  any_errors_fatal: true
  gather_facts: no
  roles:
    - role-2

我的角色-1

代码语言:javascript
复制
---
     - name: setting the var
       set_fact:
          host: "app2"

     - debug:
          var: host

我的角色-2

代码语言:javascript
复制
---
      - debug:
              var: host
      - name: do something
        file:
          path: /home/ec2-user/dir1
          state: directory
          mode: '0755'

然而,当我尝试运行我的攻略时,我的角色2被跳过,因为没有匹配的主机。有人能告诉我如何让这个设置正常工作吗?

EN

回答 1

Stack Overflow用户

发布于 2020-03-19 05:05:26

您需要的是add_host:,然后将新创建或分配的组设置为第二个播放的hosts:

代码语言:javascript
复制
- hosts: app1
  tasks:
  - add_host:
      name: app2
      groups:
      - my-group

- hosts: my-group
  tasks:
  - debug: var=ansible_host
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60745185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档