密码

时间:2016-10-29 15:05:38

标签: ansible

我有一个Ansible作业,可确保远程服务器上存在某些目录,然后将文件复制到其中。

---
- hosts: cac
  tasks: 
   - name: Create Required directories.
     file: path=/opt/app/ca/{{ item }} state=directory mode=0755 owner=admin group=admin
     with_items:
     - cac/webapps
     - cac/iam_config

   - name: Copy and unarchive webapps node.
     synchronize: src=/home/ansible/templates/app/Sprint6/webapps dest=/opt/app/ca/iam_cac checksum=yes

我的environmnet文件是:

[cac]
10.169.99.70
10.169.99.72
[cac:vars]
ansible_ssh_user=admin
ansible_ssh_pass=xyz

当我运行作业时,在调试模式下,我可以看到任务1以管理员用户身份运行,并且没有提示密码。

但第二项任务要求我输入管理员密码。

TASK [Copy and unarchive webapps node.] ****************************************
task path: /home/ansible/playbooks/release-deploy.yaml:10
<10.169.99.70> ESTABLISH LOCAL CONNECTION FOR USER: ansible
<10.169.99.70> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1477753023.09-93847262523946 `" && echo ansible-tmp-1477753023.09-93847262523946="` echo $HOME/.ansible/tmp/ansible-tmp-1477753023.09-93847262523946 `" ) && sleep 0'
<10.169.99.72> ESTABLISH LOCAL CONNECTION FOR USER: ansible
<10.169.99.72> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1477753023.09-27220657560306 `" && echo ansible-tmp-1477753023.09-27220657560306="` echo $HOME/.ansible/tmp/ansible-tmp-1477753023.09-27220657560306 `" ) && sleep 0'
<10.169.99.70> PUT /tmp/tmpBP7rLm TO /home/ansible/.ansible/tmp/ansible-tmp-1477753023.09-93847262523946/synchronize
<10.169.99.72> PUT /tmp/tmpVKR5A9 TO /home/ansible/.ansible/tmp/ansible-tmp-1477753023.09-27220657560306/synchronize
<10.169.99.70> EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 /usr/bin/python /home/ansible/.ansible/tmp/ansible-tmp-1477753023.09-93847262523946/synchronize; rm -rf "/home/ansible/.ansible/tmp/ansible-tmp-1477753023.09-93847262523946/" > /dev/null 2>&1 && sleep 0'
<10.169.99.72> EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 /usr/bin/python /home/ansible/.ansible/tmp/ansible-tmp-1477753023.09-27220657560306/synchronize; rm -rf "/home/ansible/.ansible/tmp/ansible-tmp-1477753023.09-27220657560306/" > /dev/null 2>&1 && sleep 0'
admin@10.169.99.72's password: admin@10.169.99.70's password:

我很困惑为什么这个步骤要求我在环境文件中配置密码时输入密码。

其次为什么这么说?

ESTABLISH LOCAL CONNECTION FOR USER: ansible

1 个答案:

答案 0 :(得分:2)

synchronize module doc page中的第一句话回答了您的第二个问题(为什么会说ESTABLISH LOCAL CONNECTION FOR USER: ansible:

  

synchronize是rsync命令的包装器,旨在使rsync的常见任务更容易。它运行并始于运行Ansible的本地主机。

关于第一个问题,同一手册中的参数部分解释了您需要使用以下参数:

  

use_ssh_args   (默认:no)   使用ansible.cfg中指定的ssh_args。

虽然它仅指ansible.cfg,但它也指的是库存文件中定义的变量。