Ansible有shell命令使用存储密码

时间:2016-05-19 19:48:37

标签: ansible ansible-playbook

在我调用下面的shell脚本时,希望有一种方法可以在文件中使用密码。我不想为很多机器输入密码来复制一个文件。我需要使用SCP或者我不会工作

我也在使用ansible vault

- hosts: localhost
      gather_facts: no

      tasks:

        - name: Copy File to Local Machine
          shell: "scp test@{{ item }}:/home/test/*.csv  /location/on/localhost"
          with_items: "{{groups['firewall']}}"

2 个答案:

答案 0 :(得分:1)

答案如下:

- name: Copy File to Local Machine
  shell: "sshpass -p {{ ansible_ssh_pass }} scp test@{{ item }}:/home/test/*.csv  /destination"
  with_items: "{{groups['firewall']}}"

答案 1 :(得分:0)

您可以先保存密码。

$ cat config.sh
eval `ssh-agent -s`
ssh-add ~/.ssh/default     # <- replace the ssh key with yours

准备好并在运行ansible playbook之前运行它

$ chmod +x config.sh
$ . config.sh
Agent pid 87414
Enter passphrase for /home/test/.ssh/default:
Identity added: /home/test/.ssh/default (/home/test/.ssh/default)

然后你不应该有密码提示问题。