Ansible 和 Vault 加密模板

Ansible 和 Vault 加密模板

我对 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 查找变量名称并找到指向保管库的定义。

相关内容