Ansible-文件查找中的环境变量
我有一个ansible任务,可以将密钥从本地用户复制到远程计算机:Ansible-文件查找中的环境变量,ansible,ansible-playbook,Ansible,Ansible Playbook,我有一个ansible任务,可以将密钥从本地用户复制到远程计算机: authorized_key: user=deployer key="{{ lookup('file', '/home/my_user/.ssh/id_rsa.pub') }}" 我想使用用户变量,而不是我的用户。环境变量(即查找('env','DEPLOY\u KEY\u PATH')或实际上任何变量 是否可能?要获取当前用户密钥,您当然可以使用~别名。这将起作用: authorized_key: state=present
authorized_key: user=deployer key="{{ lookup('file', '/home/my_user/.ssh/id_rsa.pub') }}"
我想使用用户变量,而不是我的用户。环境变量(即查找('env','DEPLOY\u KEY\u PATH')
或实际上任何变量
是否可能?要获取当前用户密钥,您当然可以使用
~
别名。这将起作用:
authorized_key: state=present user=deployer key="{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
另外,请注意,state=present
可能不是强制性的,但是
那么,尽管这取决于你的项目具体是什么,但我不建议你这样做,原因有三:
files/sshkeys/my_user.pub
文件,并将所需的任何公钥粘贴到此文件中。公钥很少更改,因此维护此文件可能不会有问题
├── files
│ └── sshkeys
│ └──my_user.pub
├── hosts
└── site.yml
您可以使用授权密钥模块查找密钥文件:
authorized_key: state=present user=deployer key="{{ lookup('file', './files/sshkeys/my_user.pub') }}"
或者,如您所问,如果使用变量:
authorized_key: state=present user=deployer key="{{ lookup('file', './files/sshkeys/'+ user.name +'.pub') }}"