tinyblargon.docker_deploy

Ansible ロール: Docker デプロイ

Docker Compose スタック(ファイル)をデプロイするための Ansible ロールです。

要件

ローカルシステム

  • rsync

デプロイ先システム

  • docker-ce
  • docker-ce-cli
  • containerd.io
  • docker-compose-plugin または docker-compose

ロール変数

変数名 タイプ デフォルト値 説明
docker_deploy_source: 文字列 "docker-deploy" Docker デプロイメントと Compose ファイルが含まれるローカルディレクトリ。このディレクトリはメインプレイブックのディレクトリに対して相対的です。
docker_deploy_destination: 文字列 "/opt/docker-deploy" デプロイメントがクローンされる宛先フォルダ。
docker_deploy_compose_file: 文字列 "docker-compose.yml" 起動する Docker Compose ファイルの名前。
docker_deploy_files: リスト(地図) [] docker_deploy_destination: にコピーされるファイルのリスト。詳細は次の章 Docker_deploy_files にあります。
docker_deploy_compatibility: ブール true Compose ファイルを起動する際に --compatibility フラグを有効にします。
docker_deploy_remove_orphans: ブール true Compose ファイルを起動する際に --remove-orphans フラグを有効にします。
docker_deploy_build: ブール false docker_deploy_source: または docker_deploy_files: のいずれかのファイルが変更された場合に --build フラグを有効にします。
docker_deploy_recreate: ブール false docker_deploy_source: または docker_deploy_files: のいずれかのファイルが変更された場合に --force-recreate フラグを有効にします。
docker_deploy_compose_plugin: ブール true docker compose または docker-compose コマンドを使用するか指定します。 truedocker composefalsedocker-compose を指します。
docker_deploy_prune: リスト ["image"] Compose デプロイメントに変更が加えられた後に実行されるプルーンコマンド。値は "builder", "container", "image", "network", "system", "volume" のいずれかの組み合わせにできます。
docker_deploy_state: 文字列 "present" "present" の場合、docker_deploy_source:docker_deploy_destination: に同期され、docker_deploy_compose_file: が起動されます。 "absent" の場合、docker_deploy_destination: 内の docker_deploy_compose_file: が停止されます。
docker_deploy_rsync_opts: リスト ['--exclude="*.example"'] 追加の rsync オプションを配列で指定します。 docker_deploy_files: に指定されたすべての dest は自動的に rsync から除外されます。
docker_deploy_show_warnings: ブール true Docker Compose の警告を表示します。
docker_deploy_absent_volume: ブール false docker_deploy_state:"absent" の場合のみ適用されます。Compose ファイルを停止する際に --volumes フラグを有効にし、Compose ファイルに指定されたすべてのボリュームを削除します。
docker_deploy_absent_remove: ブール false docker_deploy_state:"absent" の場合のみ適用されます。true の場合、docker_deploy_destination: が削除されます。

Docker_deploy_files

変数名 タイプ デフォルト値 説明
content: 文字列 "" src の代わりに使用する場合、ファイルの内容を直接指定された値に設定します。dest がファイルのときのみ機能します。存在しない場合はファイルが作成されます。
dest: 文字列 ファイルがコピーされる docker_deploy_destination: に対するリモートパス。src がディレクトリの場合、これもディレクトリである必要があります。dest が存在しないパスで、dest が “/” で終わる、または src がディレクトリの場合、dest は作成されます。相対パスの場合、開始ディレクトリはリモートホストによって決定されます。srcdest がファイルの場合、dest の親ディレクトリは作成されず、存在しない場合はタスクが失敗します。すべての dest は自動的に rsync から除外されます。
group: 文字列 "root" ファイルシステムオブジェクトが属するグループ名。
mode: 文字列 宛先ファイルまたはディレクトリのパーミッション。 詳細はAnsibleドキュメントを参照してください。
owner: 文字列 "root" ファイルシステムオブジェクトの所有者名。数値のユーザー名を指定するとユーザーIDと見なされるので、混乱を避けるために数値のユーザー名は避けてください。
src: 文字列 リモートサーバにコピーするファイルのローカルパス。絶対パスまたは相対パスが使用可能です。パスがディレクトリの場合は再帰的にコピーされます。パスが “/” で終わる場合、そのディレクトリ内の内容のみがデスティネーションにコピーされます。そうでない場合は、ディレクトリ全体とその内容がコピーされます。この挙動は rsync コマンドラインツールに似ています。
no_log: ブール false true の場合、内容はログに記録されません。

content:src: の両方が未指定の場合、宛先に空のファイルが作成されます。

例 プレイブック

Present(存在)

- hosts: all
  roles:
    - role: tinyblargon.docker_deploy
      vars:
        docker_deploy_source: "docker-deploy"
        docker_deploy_destination: "/opt/docker-deploy"
        docker_deploy_compose_file: "docker-compose.yml"
        docker_deploy_files:
          - dest: ".env"
            src: ".env"
          - dest: ".secrets/password.txt"
            content: "{{ lookup('file', 'password.txt') }}"
            owner: "root"
            group: "root"
            mode: "0600"
            no_log: true
        docker_deploy_compatibility: true
        docker_deploy_remove_orphans: true
        docker_deploy_recreate: true
        docker_deploy_compose_plugin: false
        docker_deploy_prune: ["system"]
        docker_deploy_state: "present"

Absent(不在)

- hosts: all
  roles:
    - role: tinyblargon.docker_deploy
      vars:
        docker_deploy_destination: "/opt/docker-deploy"
        docker_deploy_compose_file: "docker-compose.yml"
        docker_deploy_compose_plugin: false
        docker_deploy_prune: ["system", "volume"]
        docker_deploy_state: "absent"
        docker_deploy_absent_volume: true
        docker_deploy_absent_remove: true

ライセンス

MIT

プロジェクトについて

Ansible role to deploy a docker compose stack (file).

インストール
ansible-galaxy install tinyblargon.docker_deploy
ライセンス
mit
ダウンロード
1.1k
所有者
If the DevOps tooling doesn't exist, I'll write it myself.