Ansible: ファイルを上書きせずに .ssh/config にスタンザを追加します。

Ansible: ファイルを上書きせずに .ssh/config にスタンザを追加します。

私は仕事をしています。レスティックAnsibleによるSSHベースのバックアップソリューション詳細を省略すると、リポジトリURLとして使用されます。つまり、送信サーバーのバックアップユーザーにsftp:backups-{{ restic_backup_name }}:{{ inventory_hostname }}次のスタンザを追加する必要があります。.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

おすすめ記事