Ansible
Ansible:在不覆蓋文件的情況下向 .ssh/config 添加一個節
我正在研究通過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
已經存在的情況下,我不想覆蓋現有文件,只是將此節添加到其中。(如果它已經存在,跳過這一步會很好,但現在是可選的)
在處理這個問題時,我意識到blockinfile會做我想做的事:
- 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