我对 Ansible Vault 有一个问题。
Vault 上的文件复制命令运行完美,但我找不到任何解决方案来让加密模板正常工作。
我的目标是部署一个 SSH 密钥,并authorized_keys
在顶部添加一些注释,{{ ansible_managed }}
但 Ansible 只是在目标主机上创建加密的文件。
我的任务:
- name: Copy public RSA key
template: src=id_rsa.pub.j2 dest=/root/.ssh/authorized_keys owner=root mode=600
目标服务器上的结果:
$ANSIBLE_VAULT;1.1;AES256
66393735343333616637383238643132646134343235633662663262353530663133386439356334
6437633863333434393333336336396239636531306262640a623764303165333035633333643631
6631613234346133386261343162653931643865633139[...]
有没有人尝试过同样的事情并且成功运行?
答案1
授权密钥是 SSH民众钥匙,因此您不需要将它们存储在保险库中。
话虽如此,听起来您的做法id_rsa.pub.j2
是错误的。下面是我将 ssh 私钥复制到计算机上的示例任务:
- name: install ssh key
copy:
content: "{{ssh_key}}"
dest: ~/.ssh/example.pem
owner: "{{ansible_user_id}}"
mode: u=r,g=,o=
ssh_key
然后定义为group_vars/all/vars.yaml
:
ssh_key: "{{vault_ssh_key}}"
和group_vars/all/vault.yaml
是定义 的加密保管库文件vault_ssh_key
。此方法允许查看任务或模板的人通过 grep 查找变量名称并找到指向保管库的定义。