【发布时间】:2014-09-05 22:50:57
【问题描述】:
Ansible (v1.6.5) 的同步模块会提示输入密码(Enter passphrase for key)即使我在开始运行 playbook 时已经输入了。
知道为什么吗?
我使用以下选项运行我的剧本:
-u myuser --ask-sudo-pass --private-key=/path/to/id_rsa
这是我的同步任务:
- name: synchronize source files in src location
sudo: yes
synchronize: src={{local_src}} dest={{project_dirs.src}} archive=yes delete=yes rsync_opts=["--compress"]
when: synchronize_src_files
使用 ssh-agent 更新
按照 Lekensteyn 的建议,我尝试使用 ssh-agent。 我不再有提示,但任务失败。我错过了什么?
eval `ssh-agent -s`
ssh-add ~/.ssh/id_rsa
错误:
TASK: [rolebooks/project | synchronize source files in src location] **********
failed: [10.0.0.101] => {"cmd": "rsync --delay-updates -FF --compress --delete-after --archive --rsh 'ssh -i /home/vagrant/.ssh/id_rsa -o StrictHostKeyChecking=no' --rsync-path=\"sudo rsync\" [--compress] --out-format='<<CHANGED>>%i %n%L' /projects/webapp mike@10.0.0.101:/var/local/sites/project1/src", "failed": true, "rc": 12}
msg: sudo: no tty present and no askpass program specified
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.0]
【问题讨论】: