我使用Ansible相当新,并且一直在阅读
here和谷歌,但还没有找到答案.
我的情况是我在服务器上有1个用户,但需要在其authorized_keys文件中放入2-3个不同的pub键.
--- - 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
使用当前标志,它会读取并添加所有键.使用缺席标志,它将删除列出的所有键.
问题是我有一个仅在服务器上的旧密钥,我想删除/覆盖它,并且为将来的部署覆盖可能在服务器上而不是在我的剧本中的任何未授权密钥.
使用独占标志,它只需要最后一个键并添加它.如果它循环并重复添加所有键,这将是太棒了.如果有一种方法可以在Ansible中执行此操作,我还没有找到它.
有没有办法循环pub文件并同时使用独占选项?
有没有办法循环pub文件并同时使用独占选项?
没有.关于循环和docs独家的说明:
exclusive: Whether to remove all other non-specified keys from the authorized_keys file. Multiple keys can be specified in a single key string value by separating them by newlines.
This option is not loop aware,so if you use with_,it will be exclusive per iteration of the loop,if you want multiple keys in the file you need to pass them all to key in a single batch as mentioned above.
因此,您需要加入所有密钥并立即发送所有密钥.
像这样的东西:
- name: update SSH keys authorized_key: user: <user> key: "{{ lookup('pipe','cat ../files/pub_keys/*.pub') }}" state: present exclusive: yes
在生产中运行之前检查此代码!