我在使用Ansible方面相当新,并且一直在这里阅读和谷歌,还没有find答案。
我的情况是,我有一个服务器上的用户,但有2-3个不同的酒吧的钥匙,需要放在它的authorized_keys文件。
我可以成功删除所有密钥,或者使用此脚本添加所有密钥:
--- - hosts: all tasks: - name: update SSH keys authorized_key: user: <user> key: "{{ lookup('file',item) }}" state: present #exclusive: yes with_fileglob: - ../files/pub_keys/*.pub
用present标志读取并添加所有的键。 使用absent标志删除列出的所有密钥。
无密码的sshlogin后检查远程用户的身份?
Amazon AWS EC2已删除的密钥被locking在根外
问题是我有一个旧的密钥,只有在服务器上,我想删除/覆盖它,并为将来的部署覆盖可能在服务器上,而不是在我的手册中的任何未经授权的密钥。
使用exclusive标志只需要最后一个键并添加它。 如果它会循环添加所有的键,这将是太棒了。 如果在Ansible有办法做到这一点,我还没有find它。
有什么办法可以循环使用pub文件并同时使用exclusive选项吗?
有什么办法可以循环使用pub文件并同时使用独占选项吗?
没有。在文档中有关于循环和排他性的注释:
exclusive:是否从authorized_keys文件中删除所有其他非指定的密钥。 通过用换行符分隔多个键可以在单个键字符串值中指定。 这个选项不是循环感知的,所以如果你使用with_,它将在循环迭代中是独占的,如果你想在文件中使用多个键,你需要把它们全部传递到上面提到的一个批处理中。
所以你需要加入所有的钥匙,并一次发送所有的钥匙。
像这样的东西:
- name: update SSH keys authorized_key: user: <user> key: "{{ lookup('pipe','cat ../files/pub_keys/*.pub') }}" state: present exclusive: yes
在生产运行之前检查这个代码!
如果你把你的用户放在一个变量中,你可以使用这个:
--- - hosts: all vars_files: - roles/users/vars/main.yml tasks: - name: Allow other users to login to the account authorized_key: user: user_name exclusive: yes key: "{{ developers|map(attribute='publish_ssh_key')|join('n') }}"
roles/users/vars/main.yml如下所示:
--- developers: - name: user1 publish_ssh_key: ssh-rsa AAAA... - name: user2 publish_ssh_key: ssh-rsa AAAA...
总结以上是内存溢出为你收集整理的是否有可能使用Ansible authorized_key与多个键独占?全部内容,希望文章能够帮你解决是否有可能使用Ansible authorized_key与多个键独占?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)