ansible-playbook:保存" -u"?

时间:2018-02-15 05:05:24

标签: ansible

是否有一个Ansible变量保存" -u" cli参数?

例如:

ansible-playbook some-things.yml -u some-user
                                    ^^^^^^^^^

ansible_user似乎记录了正在执行剧本的用户的名字;我不需要那个。我需要在cli上明确指定用户名。

1 个答案:

答案 0 :(得分:1)

不,没有这样的变数。

如果你想从剧本内部获取CLI参数,你必须编写一些插件。您可以从显示提取--tags的{​​{3}}中获得灵感。

您从ansible_user获取本地用户名的原因是(我猜)您在localhost的上下文中运行任务,其中connection是local,因此用户名是本地的。但-u开关代表远程用户。你可以欺骗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 }}"