wangsha.docker-generic-image
docker-generic-image
指定されたイメージからDockerコンテナを管理および実行するためのAnsibleロールです。
要件
このロールはUbuntu 14.04でのみテストされています。Ansibleのdockerモジュールを使用するため、最新バージョンのdocker-py
とdocker
がインストールされていることを確認してください。
例
このモジュールをAnsible Galaxyから./roles
ディレクトリにインストールするには、以下のコマンドを実行します:
ansible-galaxy install wangsha.docker-generic-image -p ./roles
Dockerをすでに設定していると仮定して、プレイブックで次のように使用します:
- hosts: 'servers'
roles:
- role: angstwad.docker_ubuntu
become: true
- role: wangsha.docker-generic-image
become: true
docker_container_name: hello-world
docker_container_image: hello-world
オーバーライドできるロール変数については、defaults/main.ymlを確認してください。
Docker自体を設定するプレイブックが必要な場合は、angstwad.docker_ubuntuのGalaxyロールを確認してください。
カスタムボリュームマッピング
Dockerはホストディレクトリやホストファイルをデータボリュームとしてマウントすることを許可しています。このロールでは、コンテナデータを永続化するためにホストディレクトリをマウントし、コンテナの挙動を設定するためにホストファイルをマウントします。docker_generic-image_directory_volumes
とdocker_generic-image_file_volumes
の2つの変数でボリュームマッピングを制御します。
マッピングをカスタマイズしたい場合は、<ホストディレクトリ>:<コンテナディレクトリ>:<マッピングモード>
の形式に従い、ホストディレクトリがコンテナを起動する前に正しく作成されるようにしてください。
ホストファイルのマッピングをカスタマイズするには、docker_generic-image_file_volumes
を更新します。このロールは、自動的にファイルの親ディレクトリを作成し、テンプレートをホストマシンにコピーします。テンプレートの命名規則は<host_file_name>.<host_file_extension>.j2
です。
自分のAnsibleディレクトリからテンプレートをコピーするには、docker_generic-image_template_path
を設定します。
例の設定:
docker_container_file_volumes:
- '/opt/myapp/conf/settings.conf:/etc/myapp/conf/settings.conf:ro'
docker_container_template_path: /path/to/ansible/project/templates/
# /path/to/ansible/project/templates/settings.conf.j2が存在することを確認してください。
追加の参考情報
ライセンス
著者情報
- wangsha