ansibleguy.infra_docker_minimal
Ansibleロール - Dockerセットアップ
Ansibleロールを使用して、Linuxサーバーに基本的なDockerインストールを展開します。
テスト済み:
- Debian 11
- Debian 12
インストール
# 最新版
ansible-galaxy role install git+https://github.com/ansibleguy/infra_docker_minimal
# galaxyから
ansible-galaxy install ansibleguy.infra_docker_minimal
# またはカスタムロールパスにインストール
ansible-galaxy install ansibleguy.infra_docker_minimal --roles-path ./roles
使用方法
シンプルなAnsible GUIが欲しいですか?私のAnsible WebUIをチェックしてください。
設定
'docker'変数/辞書を使ってDockerを設定できます。
docker:
tcp:
enable: true # TCPでのdockerサービスリスニングを有効にする
bind: '0.0.0.0'
compose:
enable: true # docker-composeをインストール
plugin: true # デフォルト; docker-compose-pluginをインストール('docker compose'を使用)
tls:
enable: true
cert: '/etc/ssl/certs/docker.crt'
key: '/etc/ssl/private/docker.pem'
# ca: '/etc/ssl/certs/docker.ca.crt'
# verify_client: true
nftables:
clean: true # bridge_none、disable_iptablesをtrueに設定してリロード
bridge_none: false # docker起動時にbridge=none引数を設定
disable_iptables: false # docker起動時にiptables=false引数を設定
reload: false # docker.serviceの再起動後にnftablesをリロードし、自動追加されたiptablesルールを削除
実行
プレイブックを実行します:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml
機能
簡単に言うと、こちらに記載されている通りにDockerをセットアップします。
ターゲットホストにdocker-composeをインストールするオプションもあります。
- パッケージのインストール
Dockerの前提条件
Dockerの基本パッケージ
デフォルトのオプトアウト:
- docker-compose
デフォルトのオプトイン:
- dockerサーバーコンポーネント(_他はクライアントのみがインストールされる_)
情報
注意: このロールは現在、Debianベースのシステムのみをサポートしています。
注意: NFTablesを使用している場合、Dockerを実行すると問題が発生します。
DockerはNFTablesをネイティブにサポートしていません。'docker-ce'/'docker-ce-cli'パッケージはIPTablesが依存関係として設定されています。
'iptables=false'のパラメータでDockerを実行することで、NFTablesのルールセットをクリーンに保つことができます。'bridge=none'が設定されていると、さらにクリーンです!
その後、少数のIPTablesルールのみが追加されます。このDockerルールセットを完全に排除するには、Dockerが再起動するたびにNFTablesをリロードする必要があります。
このAnsibleロールを使用すれば、その動作を設定できます。以下の例を参照してください!
NFTablesを使用している場合は、ansibleguy.infra_nftablesロールも確認した方が良いでしょう!
ansible-galaxy install ansibleguy.infra_docker_minimal