如何在Ansible剧本中获得--limit参数的值?

awr*_*son 9 ansible

在ansible中,是否可以在剧本中获得参数的值 - "limit"选项?我想做的是这样的:

---
- hosts: all
  remote user: root
  tasks:
  - name: The value of the --limit argument
    debug:
      msg: "argument of --limit is {{ ansible-limit-arg }}"
Run Code Online (Sandbox Code Playgroud)

然后当我运行他的命令时:

$ ansible-playbook getLimitArg.yaml --limit webhosts
Run Code Online (Sandbox Code Playgroud)

我会得到这个输出:

argument of --limit is webhost
Run Code Online (Sandbox Code Playgroud)

当然,我编写了变量"ansible-limit-arg"的名称,但有没有一种有效的方法呢?我可以指定两次"webhosts",第二次使用--extra-args,但这似乎是一种迂回的方式.

tec*_*raf 12

从Ansible 2.5开始,您可以使用新的魔术变量访问该值ansible_limit,因此:

- debug:
    var: ansible_limit
Run Code Online (Sandbox Code Playgroud)


Kon*_*rov 0

如果没有额外的插件/模块,你就无法做到这一点。如果您完全需要这个,请编写操作插件并通过访问选项cli.options(请参阅示例)访问选项。

\n\n

PS如果你尝试使用--limit在不同的环境中运行 playbook,请不要这样做,您可能会意外地破坏整个基础设施 \xe2\x80\x93 使用不同的清单。

\n