是否有一个Ansible变量来保存"-u“cli参数的值?
例如:
ansible-playbook some-things.yml -u some-user
^^^^^^^^^ansible_user似乎记录了执行剧本的用户的名称;我不需要这个。我需要cli上显式指定的用户名。
发布于 2018-02-15 15:29:36
不,没有这样的变量。
如果你想从playbook内部获取CLI参数,你必须编写一些插件。你可以从这个展示fetching --tags的answer中获得一些灵感。
从ansible_user获得本地用户名的原因是(我猜)您在本地主机的上下文中运行任务,其中连接是local,因此用户名是本地的。而-u switch代表的是远程用户。您可以欺骗Ansible,使其认为您希望远程执行任务,并从ansible_user魔法变量中获取远程用户名。如下所示:
---
- hosts: localhost
gather_facts: no
tasks:
- set_fact:
rem_usr: "{{ ansible_user }}"
delegate_to: some_fake_host_name
- debug:
msg: "local={{ ansible_user }}, remote={{ rem_usr }}"https://stackoverflow.com/questions/48800258
复制相似问题