AnsibleでKnownHostsを書き換える


要点

SSHで初回ホスト接続時に出る確認だったりホスト更新したときにエラー吐かれたりするにっくきknown_hostsを自動的に
inventoryの全サーバから全サーバについて更新する

playbook.yaml
- name: remove known_hosts
  file:
    path: "/home/{{ item }}/.ssh/known_hosts"
    state: absent
  with_items:
    - testuser

- name: send known_hosts
  shell: "ssh-keyscan -H {{ item }} >> ~/.ssh/known_hosts"
  with_items:
    - "{{ groups['all'] }}"
  become_user: testuser

雑感

標準モジュールのknown_hostsだと一致する行については上書きでにやってくれるんですが
ちょっと書き換えてから削除をせずに実行すると古い行残ったまま追記されてしまったりしたり
Keyをしていしなければいけなかったりと、設定項目が多かったのですが、コマンドではホストのみでいけるのが楽な点…かなと