我正在研究一个雷斯蒂奇以及通过 Ansible 实现的基于 SSH 的备份解决方案。省略详细信息,它用作sftp:backups-{{ restic_backup_name }}:{{ inventory_hostname }}
存储库 URL,这意味着我需要将以下节添加.ssh/config
到发送服务器上的备份用户:
Host backup-{{ restic_backup_name }}
HostName {{ restic_backup_host }}
User restic-backup
IdentityFile /etc/restic/{{ restic_backup_name }}.key
正如您所看到的,从模板生成节没有问题,但在(可能很少见,但我试图考虑边缘情况)已经.ssh/config
存在的情况下,我不想覆盖现有文件,只是将此节添加到其中。
(如果此步骤已经存在,则跳过此步骤会很好,但目前这是可选的)
答案1
在研究这个问题时,我意识到块文件会做我想做的事:
- name: Create SSH config block
blockinfile:
path: /root/.ssh/config
block: |
Host backup-{{ restic_backup_name }}
HostName {{ restic_backup_host }}
User restic-backup
IdentityFile /etc/restic/{{ restic_backup_name }}.key
backup: yes
validate: /usr/sbin/sshd -T -f %s