ANSIBLE:在主机文件上使用变量(ssh)

时间:2017-02-23 08:57:59

标签: variables ansible

我是这个梦幻般的自动化引擎的新手,并且对vars文件有一点问题:

通过这个问题,我必须使用特定用户和密码通过SSH连接而不使用keypars。

托管文件

[all:vars]
connection_mode1=ssh 
ssh_user1=user1
ssh_pass1=pass1

[serverstest]
host1 ansible_connection=connection_mode1 ansible_ssh_user=ssh_user1 ansible_ssh_pass=ssh_pass1

我也尝试使用“”和{}进行换行但不起作用。

如何在此参数上使用变量?

1 个答案:

答案 0 :(得分:2)

自从2.0版以来,

ansible_ssh_user已被弃用。它变为ansible_user。请参阅here

永远不要以明文形式存储ansible_ssh_pass变量;总是使用保险库。请参阅Variables and Vaults

无论如何,拥有mytest.inventory文件如下

[all:vars]
ssh_user1=user1

[serverstest]
host1 ansible_user="{{ ssh_user1 }}"

它有效,例如

ansible -i mytest.inventory serverstest -m ping -k

选项-k要求输入密码。

如果您仍想在清单中写入密码,可以保留密码变量定义并添加ansible_ssh_pass="{{ ssh_pass1 }}"

[serverstest]
192.168.15.201 ansible_user="{{ ssh_user1 }}" ansible_ssh_pass="{{ ssh_pass1 }}"