You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible 2.9使用import_playbook导入剧本时如何指定hosts

Ansible 2.9 中 import_playbook 指定 hosts 参数的解决方案

你当前的写法中直接在import_playbook同层级添加hosts: atlanta的配置是无效的。import_playbook为静态导入指令,本身不支持直接覆写被导入playbook的hosts字段,需要通过变量传递的方式实现需求,具体操作方案如下:

  • 方案1:修改被导入playbook,通过变量传递hosts值
    第一步先修改/test/pb0.yml中的play级hosts配置,替换为变量形式:
    ---
    - name: 被导入的play任务
      hosts: "{{ target_hosts | default('all') }}" # 未传值时默认匹配all分组
      tasks:
        # 原有任务保持不变
    
    第二步修改主playbook /project/first_pb.yml的导入配置,通过vars参数传递目标hosts:
    - import_playbook: /test/pb0.yml
      vars:
        target_hosts: atlanta
    
  • 方案2:无需修改被导入playbook,执行时通过limit参数限定目标主机
    如果你不方便修改/test/pb0.yml的原有配置,可以在执行主playbook时添加--limit参数,仅将任务限定在atlanta分组执行:
    ansible-playbook /project/first_pb.yml --limit atlanta
    
    注意该方案会限制整个主playbook运行过程中所有任务的目标主机,适合所有导入playbook都要在同一分组执行的场景。

内容的提问来源于stack exchange,提问作者CH06

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:21:03