gpt4 book ai didi

Ansible 回调插件 : how to get play attribute values with variables expanded?

转载 作者:行者123 更新时间:2023-12-02 01:08:39 24 4
gpt4 key购买 nike

我在下面有一个游戏,并试图在回调插件中获取 remote_user 属性的解析值。

- name:          test play
hosts: "{{ hosts_pattern }}"
strategy: free
gather_facts: no
remote_user: "{{ my_remote_user if my_remote_user is defined else 'default_user' }}"
tasks:
- name: a test task
shell: whoami && hostname

我目前正在访问 play field 属性,如下所示:
 def v2_playbook_on_play_start(self, play):
self._play_remote_user = play.remote_user

我还尝试将 remote_user 保存在 v2_playbook_on_task_start 中看看这是否能解决问题,如 this is where the templated task name is made available .
def v2_playbook_on_task_start(self, task, is_conditional):
self._tasks[task._uuid].remote_user = task.remote_user
self._tasks[task._uuid].remote_user_2 = task._get_parent_attribute('remote_user')

但是以上所有情况都给我 {{ my_remote_user if my_remote_user is defined else 'default_user' }}而不是扩展/解析的值。

一般来说,有没有一种巧妙的方法来获取所有游戏属性的集合,这些属性具有剧本中定义的解析值?

最佳答案

很高兴 Action 插件更容易。
ActionBase类已经有 templar 和 loader 属性。
可以遍历 task_vars 并使用 Templar.template 渲染所有内容

for k in task_vars:
new_module_args = merge_hash(
new_module_args,
{k: self._templar.template(task_vars.get(k, None))}
)

并调用模块
        result = self._execute_module(
module_name='my_module',
task_vars=task_vars,
module_args=new_module_args
)

关于Ansible 回调插件 : how to get play attribute values with variables expanded?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46320821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com