bodsch.docker
Ansible Role: docker
このロールは、dockerdを完全に設定し、インストールします。
このロールは独自のコレクションに移行しました。
今後は、ここでのプルリクエストや問題は受け付けないのでご了承ください。今後は、リンクされたコレクションを使用してください!
要件と依存関係
Ansibleコレクション
ansible-galaxy collection install bodsch.core
または
ansible-galaxy collection install --requirements-file collections.yml
- docker-ceパッケージのリポジトリへの接続
対応OS
テスト済み:
- ArchLinux
- ArtixLinux
- Debian 基盤
- Debian 10 / 11
- Ubuntu 20.04 / 22.04
RedHat系システムは公式にはサポートされていません!動作する可能性はありますが、必ずしも動作するとは限りません。
ロール変数
以下の変数を使用して、dockerのインストールをカスタマイズできます:
## centosのdockerリポジトリチャンネルの有効状態を選択
docker_repo:
channel:
stable_enabled: true
test_enabled: false
nightly_enabled: false
## パッケージの状態(存在、非存在など)
docker_state: present
## dockerデーモンは起動時に開始すべきか?
docker_service:
enable: true
## dockerサービスの名前
name: docker
## docker-composeをインストールするバージョン
docker_compose: {}
# 例:
# docker_compose:
# install: true
# version: 1.29.2
docker_users: []
docker_plugins: []
docker_client_config: []
docker_config: {}
docker_config_diff: true
docker_python_packages: []
プロキシ関連
dockerデーモンは、外部接続にプロキシを使用するべきか?
docker_proxy:
enabled: false
## 設定すべき環境変数のリスト(不要なものはコメントアウト)
env:
- "HTTP_PROXY=http://proxy.example.com:80/"
- "HTTP_PROXY=https://proxy.example.com:443/"
- "NO_PROXY=localhost,127.0.0.1,internalhub.example.com"
dockerクライアント設定
Docker Registryの認証を有効にします。
ここでは、異なるユーザーのための設定を作成することが可能です。
ここに保存されたパスワードはbase64エンコードされていますが、暗号化はされていません!
対応する文字列を作成する方法は以下の通りです。
echo "jenkins$robot:rubbel-die-katz-du-dummschwätzer1" | base64
amVua2luczpydWJiZWwtZGllLWthdHotZHUtZHVtbXNjaHfDpHR6ZXIxCg==
docker_client_config:
## クライアント設定を保存する場所
- location: "/root/.docker/config.json"
enabled: false
auths:
registry.gitfoo.tld:
auth: amVua2luczpydWJiZWwtZGllLWthdHotZHUtZHVtbXNjaHfDpHR6ZXIxCg==
別の方法として、あなたの username
と password
を入力することも可能です。
Ansibleモジュールはそれを有効なBase64エンコードされた文字列に変換します。
docker_client_config:
## クライアント設定を保存する場所
- location: "/var/tmp/foo/config.json"
enabled: false
auths:
"test.tld":
username: "FOO-was-sonst"
password: "ja-toll-schon-wieder-alles-scheisse!"
バージョン3.1.0以降、docker ps
またはdocker image
の出力フォーマットを設定することも可能です。
ここでは、受け取るパラメータをリストとして定義する必要があります:
docker_client_config:
## クライアント設定を保存する場所
- location: "/root/.docker/config.json"
enabled: false
auths:
registry.gitfoo.tld:
auth: amVua2luczpydWJiZWwtZGllLWthdHotZHUtZHVtbXNjaHfDpHR6ZXIxCg==
formats:
ps:
- ".ID"
- ".Names"
- ".Status"
- ".Labels"
- ".RunningFor"
- ".Ports"
images:
- ".ID"
- ".Size"
- ".Repository"
- ".Tag"
- ".CreatedAt"
dockerdのデフォルト設定オプション
現在サポートされているオプション:
オプション | 種類 | デフォルト | 説明 |
---|---|---|---|
authorization_plugins |
list |
[] |
|
bip |
string |
- |
ネットワークブリッジのIPを指定 |
bridge |
string |
- |
コンテナをネットワークブリッジに接続 |
data_root |
string |
/var/lib/docker |
永続Docker状態のルートディレクトリ |
debug |
bool |
false |
デバッグモードを有効にする |
... (その他のオプションは省略) |
例
docker_config:
log_driver: ""
log_opts: {}
max_concurrent_downloads: 3
max_concurrent_uploads: 5
debug: false
log_level: ""
bridge: ""
bip: "172.16.0.1/24"
# それ以降の設定
設定を作成する際、元のバージョンとの差分を作成および出力することも可能です。
そのためには、変数docker_config_diff
をtrue
に設定する必要があります。
他にも例はmoleculeテストにあります:
docker_usersオプション
既存のユーザーをdocker
グループに追加します。
さらに、setfacl
を使ってdockerソケットへのアクセス権を設定しようとします。
docker_users:
- jenkins
docker_pluginsオプション
カスタムプラグインをインストールして有効化します。
(現在はLokiのみテスト済み!)
docker_plugins:
- alias: loki
source: grafana/loki-docker-driver
version: 2.7.0
state: present
Pythonサポート
このロールのいくつかのモジュールは、適切なPython拡張を必要とします。
最近ではいくつかの互換性の問題があり、これによりこのポイントは設定可能です。
デフォルト設定は次のようになります:
docker_python_packages:
- name: docker
- name: requests
- name: urllib3
こちらが他のpipモジュールのバージョンを指定した場合、これらのデフォルトを上書きすることが可能です。
各モジュールにバージョンを追加できます:
docker_python_packages:
- name: docker
version: 6.1.1
バージョンが指定された場合、正確にそのバージョンをインストールしようとします。
ただし、compare_direction
を使用してこの動作に影響を与えることも可能です。
docker_python_packages:
- name: docker
compare_direction: ">"
version: 6.0.0
または、versions
を使用して関連する範囲を定義することも可能です:
docker_python_packages:
- name: docker
- name: requests
versions:
- ">= 2.27.0"
- "< 2.29.0"
- name: urllib3
versions:
- ">= 1.26.0"
- "< 2.0.0"
例
ローカルのcentosサーバーに最新のstableリリースをインストール
- hosts: localhost
roles:
- role: docker
ローカルのcentosサーバーに最新のedgeリリースをインストール
- hosts: localhost
vars:
docker_repo:
channel:
nightly_enabled: true
roles:
- role: docker
さまざまな変数を適用した高度なプレイブック
- hosts: localhost
vars:
docker_config:
data_root: /opt/docker
bip: 172.16.77.77/24
log_driver: journald
experimental: true
hosts:
- unix:///var/run/docker.sock
- tcp://0.0.0.0:2376
dns_search:
- lab1.linuxctl.com
- lab2.linuxctl.com
log_opts:
"max-size": 10m
"max-file": "3"
labels: molecule
env: "os,customer"
roles:
- role: docker
作者とライセンス
元の
docker
ロール作成者:- George Bolo | linuxctl.com
修正:
- Bodo Schulz
ライセンス
MIT
無料ソフトウェア、最高!
install and configure docker on various linux systems
ansible-galaxy install bodsch.docker