友とコーヒーと嘘と胃袋

Docker

  • iptablesをAnsibleで管理したかっただけなのに

    結論

    Dockerを利用している場合、iptablesのルールを変更した際はDockerデーモンを再起動させましょう

    - name: Apply iptables rules
      ansible.builtin.command: iptables-restore /etc/iptables/rules.v4
      become: true
      register: apply_iptables
      changed_when: true
      failed_when: apply_iptables.rc != 0
      notify: Restart Docker
    
    - name: Restart Docker
      ansible.builtin.systemd:
        name: docker
        state: restarted
      become: true
    
    

    時系列

    複数Linuxサーバ(アプリは全てDockerで動いている)がありiptablesの管理を手でやっていたのだが、毎回コマンドを思い出すのが嫌になり、Ansibleコード化を決意

    今ならAIでサクサクコードを書けるね、よし適用!

    全アプリが外部と通信できなくなりダウン

    何が起きたのか

    Dockerは内部ネットワーク管理にiptablesルールを利用している。
    https://docs.docker.jp/network/iptables.html

    Docker管理のiptablesルールを上書きしてしまったため、Dockerで動くアプリの通信ができなくなってしまった。(以降、結論に戻る)

    あとがき

    そもそもiptablesで管理するのを辞めたい