2017-01-09 2 views
0

私は、Ansibleは、通常はSSHを介してリモートサーバーのプロビジョニング/構成を自動化するために使用されることを理解します。Dockerコンテナをリモートで展開できますか?

しかし、この文書の状態。..

http://docs.ansible.com/ansible/intro_inventory.html#non-ssh-connection-types

ドッキングウィンドウ - このコネクタは、直接ローカルドッカークライアントを使用して、ドッカー容器に脚本を展開。

私の質問は...リモートマシン上か、Ansibleが稼動しているマシン(つまりコントローラマシン)のみでDockerコンテナを作成しプロビジョニングできますか?

どのようなヒントや良いリンクをいただければ幸いです。

答えて

1

うまくいけば、あなたの質問を正しく理解しています。

ドッカークライアントまたはAPIライブラリ(EG:docker-py)、ネットワークアクセスを持ち、正しく設定されているマシンであれば、リモートでドッカーデーモンを操作できます。

これを行うには、you must configure the docker daemon to listen remotely.警告:デフォルトでは、認証なしでは安全ではありません!証明書認証でSSLを設定することを確認してください

その後、ドッカークライアント(またはライブラリ)と関連する証明書をインストールできます。クライアントを使用している場合は、Vagrantに環境変数を設定する必要があります。これらの変数は以下のとおりです。

DOCKER_HOST=docker_host:docker_port 
DOCKER_TLS_VERIFY=true 

は、次の命名規則と~/.dockerに証明書を置く必要があります。ca.pem cert.pem key.pem

その時点で、あなたの放浪仮想リモートドッカホストを操作することができます。

2

もちろん、リモートマシンにコンテナを展開できます。そこseveral modules for Dockerがありますが、あなたはdocker_containerを求めている:あなたはドッカーイメージを構築したい場合は

--- 
- hosts: docker_host 
    tasks: 
    - name: Ensure web based hello world container is running 
     docker_container: 
     name: web_hello_world 
     image: tutum/hello-world 
     ports: 
      - 80:80 

docker_imageを見てみましょう。あなたが質問に引用され


ドッカー接続タイプは、いないコンテナを実行しているマシンに、ドッカーコンテナ(コンテナ内で実行タスク)に直接接続するために使用されます。したがって、Dockerをコンテナ内で実行しない限り、このタイプの接続はDockerコンテナの展開には使用されません。

でも、引用符はローカルのDocker Engineではなく、ローカルDockerクライアントを指します。

1

私はそれを使用しています。あなたがプロジェクトをチェックしたい場合: https://github.com/ppc64le/ciaas

を私はdocker_service moduleを使用し、それが正常に動作します。

+0

gitプロジェクトにリンクしてくれてありがとう。それはあなたのローカルマシン上のドッカーコンテナまたはリモートマシン上のコンテナで動作しますか?そのリモートマシンのどこにリモートマシンの設定を渡していますか? – Sam

+0

こんにちは@Sam!このプロジェクトには、** hostsファイル**の使用法を説明する[DOCUMENTATION.md](https://github.com/ppc64le/ciaas/blob/master/DOCUMENTATION.md)ファイルがあります。 hostsファイルは、各リモートノードまたはローカルノードに関連する設定を保持するために使用されます。それがあなたを助けることを願って! –

関連する問題