【发布时间】:2015-10-25 13:05:32
【问题描述】:
我正在使用 Ansible (1.9.2) 将一些文件部署到 Redhat 6.4 服务器。
剧本看起来像这样
- 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
当我开始播放时,我在提示符处输入我的密码,然后成功获取事实,但是一旦到达 synchronize 任务,另一个提示符再次要求我输入密码,如下所示
DOMAIN\user@hostname's password:
如果我再次输入密码,部署将正确完成。
我的问题是
- 如何解决或解决此问题,这样我就不必在每次使用同步模块时都输入密码?
- 这是同步模块当前预期的行为吗?还是这是 Ansible 中的错误?
由于环境限制,我无法使用 ssh 密钥。
出于可扩展性的原因,我不想使用复制模块。
我尝试过的事情
- 我已经看到了许多关于这个主题的其他问题,但我有 无法使用它们中的任何一个来解决我的问题或了解是否 这是预期的行为。
- Ansible 文档通常都很出色,但我在官方文档上找不到任何相关信息。
- 我尝试在清单文件中指定用户和密码,而不是使用 --ask-pass 和 -u 参数。但是当我不必输入密码来收集事实时,同步模块仍然要求我输入密码。
- 我也尝试过设置--ask-sudo-pass,但没有帮助
- 我一直用的是CentOS 7的控制盒,不过我也试过Ubuntu 14.04的控制盒
谁能帮忙?
【问题讨论】:
-
我有类似的问题。正如我所见,当 ansible_sudo == true 时,ansible 正在尝试从 root 用户进行 rsync。
-
Ansible 文档实际上非常糟糕。目前,文档看起来更像是一堆低质量的教程。
标签: deployment ansible rsync ansible-playbook