2015-08-03 167 views
5

我正在使用Ansible(1.9.2)将某些文件部署到Redhat 6.4服务器。Ansible同步询问密码

的剧本看起来像这样

- name: deploy files 
    hosts: web 
    tasks: 
    - name sync files 
     sudo: no 
     synchronize: 
     src={{ local_path }} 
     dest={{ dest_path }} 

而且踢这一关我运行类似如下的

ansible-playbook -i myinventory myplaybook.yml -u DOMAIN\\user --ask-pass 

当我开始我在提示符下输入我的密码的打法,事实然后一旦同步任务达到另一个提示再次要求我的密码,如下

DOMAIN\[email protected]'s password: 

如果我再次输入密码,则部署将正确完成。

我的问题是

  1. 我怎样才能解决或解决这一问题,这样我就不必为每一个使用同步模块的输入我的密码?
  2. 这是当前期望的同步模块行为吗?或者这是Ansible中的一个错误?

由于环境限制,我无法使用ssh密钥。

我不想使用复制模块的可扩展性的原因。

事情我已经试过

  1. 我已经看到了一些关于这个问题的其他问题,但如果 这种预期我已经 未能使用其中的任何解决我的问题或理解行为。
  2. 的Ansible文档一般都是优秀的,但我一直没能找到有关这个在官方文档任何东西。
  3. 我已经尝试在库存文件中指定用户和密码,并且未使用--ask-pass-u参数。但是,当我不必输入密码来收集事实时,同步模块仍然会请求我的密码。
  4. 我已经尝试设置--ask-须藤通为好,但
  5. 我一直在使用一个CentOS 7控制箱也没有帮助,但我也试图在Ubuntu 14.04箱

任何人都可以帮忙吗?

+0

我有类似的问题。正如我看到ansible正在尝试从root用户进行rsync时ansible_sudo == true。 –

+0

Ansible docs实际上相当糟糕。文档看起来更像是一堆低质量的教程。 – alvarez

回答

0

为什么不使用库存就像Vault下面加密(ansible-剧本-ask穹顶通...)?:

[targets] 
other1.example.com ansible_connection=ssh ansible_ssh_user=mpdehaan ansible_ssh_pass=foobar 
other2.example.com ansible_connection=ssh ansible_ssh_user=mdehaan ansible_ssh_pass=foobar123 
0

同步会询问你的密码,如果您ansible,服务器证书是与你不同的目标主办。我已经尝试了许多建议的解决方法,但是他们都没有工作...

最终我不得不回到文件模块使用--sftp-extra-args来实现我所需要的。它做了诡计。