是否有一个Ansible变量保存" -u" cli参数?
例如:
ansible-playbook some-things.yml -u some-user
^^^^^^^^^
ansible_user
似乎记录了正在执行剧本的用户的名字;我不需要那个。我需要在cli上明确指定用户名。
答案 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 }}"