{ "cells": [ { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b6494-c345-11e7-8310-0242ac120002", "history": [], "next": "988b65e8-c345-11e7-8310-0242ac120002", "previous": null } }, "source": [ "# About: Docker - Ready! on Ubuntu and Set! Go!\n", "\n", "---\n", "\n", "Install and configure Docker Engine and Docker Compose onto Ubuntu 16.04. Then, make sure \"docker run\" and \"docker-compose up\" work.\n", "\n", "Ubuntu 16.04環境にDockerをインストールするためのNotebook。
\n", "このNotebookによりインストールできるソフトウェアは以下の通り。\n", "\n", "- Docker CE(Docker Engine)\n", "- Docker Compose\n", "\n", "Docker Engineのインストール手順は、[Get Docker CE for Ubuntu](https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/) (*2017/11/7時点での最新版*) を参考に作成している。また、Docker Composeのインストール手順は、[Install Docker Compose](https://docs.docker.com/compose/install/) (*2017/11/7時点での最新版*) を参考に作成している。" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b65e8-c345-11e7-8310-0242ac120002", "history": [], "next": "988b6714-c345-11e7-8310-0242ac120002", "previous": "988b6494-c345-11e7-8310-0242ac120002" } }, "source": [ "## *Operation Note*\n", "\n", "*This is a cell for your own recording. ここに経緯を記述*" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b6714-c345-11e7-8310-0242ac120002", "history": [], "next": "988b6836-c345-11e7-8310-0242ac120002", "previous": "988b65e8-c345-11e7-8310-0242ac120002" } }, "source": [ "## 設定情報\n", "\n", "このNotebookで行う設定は、以下のようにする。\n", "\n", "- NIIのベアメタルマシンを想定 ... Docker関係のディレクトリは `/mnt` (Ephemeralなパーティション) に配置する\n", "- クラウド運用チームでの利用を想定 ... Dockerのプライベートレジストリを使用するので、プライベートレジストリのホスト情報を明示する\n", "\n", "する。\n", "\n", "docker_optsの定義方法は[DAEMON CONFIGURATION FILE](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file)を参照。" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "lc_cell_meme": { "current": "988b6836-c345-11e7-8310-0242ac120002", "history": [], "next": "988b6944-c345-11e7-8310-0242ac120002", "previous": "988b6714-c345-11e7-8310-0242ac120002" } }, "outputs": [], "source": [ "docker_tmp = \"/mnt/docker-tmp\"\n", "docker_base = \"/mnt/docker\"\n", "docker_opts ={\"data-root\": docker_base, \"insecure-registries\": [\"XXX.XXX.XXX.93:5000\"]}\n" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b6944-c345-11e7-8310-0242ac120002", "history": [], "next": "988b6a5c-c345-11e7-8310-0242ac120002", "previous": "988b6836-c345-11e7-8310-0242ac120002" } }, "source": [ "# Notebookと環境のBinding\n", "\n", "Inventory中のgroup名でBind対象ホスト(Docker Engineをインストールしたいホスト)を指示する。" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:42:43.642400", "start_time": "2016-05-13T07:42:43.633865" }, "lc_cell_meme": { "current": "988b6a5c-c345-11e7-8310-0242ac120002", "history": [], "next": "988b6b74-c345-11e7-8310-0242ac120002", "previous": "988b6944-c345-11e7-8310-0242ac120002" } }, "outputs": [], "source": [ "target_group = 'test-vm'" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b6b74-c345-11e7-8310-0242ac120002", "history": [], "next": "988b6cfa-c345-11e7-8310-0242ac120002", "previous": "988b6a5c-c345-11e7-8310-0242ac120002" } }, "source": [ "Bind対象への疎通状態を確認する。" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:42:46.386073", "start_time": "2016-05-13T07:42:44.599311" }, "lc_cell_meme": { "current": "988b6cfa-c345-11e7-8310-0242ac120002", "history": [], "next": "988b6e12-c345-11e7-8310-0242ac120002", "previous": "988b6b74-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS => {\u001b[0m\r\n", "\u001b[0;32m \"changed\": false, \u001b[0m\r\n", "\u001b[0;32m \"failed\": false, \u001b[0m\r\n", "\u001b[0;32m \"ping\": \"pong\"\u001b[0m\r\n", "\u001b[0;32m}\u001b[0m\r\n" ] } ], "source": [ "!ansible -m ping {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b6e12-c345-11e7-8310-0242ac120002", "history": [], "next": "988b6f20-c345-11e7-8310-0242ac120002", "previous": "988b6cfa-c345-11e7-8310-0242ac120002" } }, "source": [ "# Binding対象の確認\n", "\n", "[Prerequisites](https://docs.docker.com/engine/installation/linux/ubuntulinux/#prerequisites)に示されているとおり、このNotebookを使ってDockerをインストールする対象のホストは、以下の条件を満たしている必要がある。\n", "\n", "もし、このインストール手順に失敗したら、**この条件を満たす状態にマシンを戻す(パッケージの削除, マシンの再プロビジョニングなど)**ことで、**(このNotebookによって)Dockerをインストール可能な状態に戻す**ことができる。" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b6f20-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7038-c345-11e7-8310-0242ac120002", "previous": "988b6e12-c345-11e7-8310-0242ac120002" } }, "source": [ "## 64bit版を使う\n", "\n", "Ubuntuのバージョンにかかわらず、Docker Engineを動作させるには64bit版が必要。" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "lc_cell_meme": { "current": "988b7038-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7146-c345-11e7-8310-0242ac120002", "previous": "988b6f20-c345-11e7-8310-0242ac120002" }, "pinned_outputs": [ { "execution_count": 4, "outputs": [ { "name": "stdout", "output_type": "stream", "text": "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n\u001b[0;32mx86_64\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n" } ] } ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32mx86_64\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -a 'uname -m' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b7146-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7254-c345-11e7-8310-0242ac120002", "previous": "988b7038-c345-11e7-8310-0242ac120002" } }, "source": [ "## kernel versionは最低3.10\n", "\n", "3.10未満の古いバージョンの場合はDockerの機能の一部が使えなかったり、データロストやpanicを生じる可能性がある。\n", "\n", "そのため、以下のバージョン表示が3.10以上であることを確認しておく。" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "lc_cell_meme": { "current": "988b7254-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7362-c345-11e7-8310-0242ac120002", "previous": "988b7146-c345-11e7-8310-0242ac120002" }, "pinned_outputs": [ { "execution_count": 5, "outputs": [ { "name": "stdout", "output_type": "stream", "text": "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n\u001b[0;32m4.4.0-97-generic\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n" } ] } ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32m4.4.0-97-generic\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -a 'uname -r' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b7362-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7466-c345-11e7-8310-0242ac120002", "previous": "988b7254-c345-11e7-8310-0242ac120002" } }, "source": [ "## Ubuntuは16.04を想定\n", "\n", "加えて、このNotebookは、**Ubuntu 16.04がインストールされた環境にBindingされることを前提として実装**している。\n", "\n", "以下のコマンドの出力が Ubuntu 16.04 であることを確認する。\n", "\n", "> 16.04以外のUbuntuの場合はRepositoryのURLなどを適宜読み替えること" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:42:49.080256", "start_time": "2016-05-13T07:42:47.808150" }, "lc_cell_meme": { "current": "988b7466-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7574-c345-11e7-8310-0242ac120002", "previous": "988b7362-c345-11e7-8310-0242ac120002" }, "pinned_outputs": [ { "execution_count": 6, "outputs": [ { "name": "stdout", "output_type": "stream", "text": "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n\u001b[0;32mDistributor ID:\tUbuntu\u001b[0m\r\n\u001b[0;32mDescription:\tUbuntu 16.04.3 LTS\u001b[0m\r\n\u001b[0;32mRelease:\t16.04\u001b[0m\r\n\u001b[0;32mCodename:\txenialNo LSB modules are available.\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n" } ] } ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32mDistributor ID:\tUbuntu\u001b[0m\r\n", "\u001b[0;32mDescription:\tUbuntu 16.04.3 LTS\u001b[0m\r\n", "\u001b[0;32mRelease:\t16.04\u001b[0m\r\n", "\u001b[0;32mCodename:\txenialNo LSB modules are available.\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -a 'lsb_release -a' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b7574-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7682-c345-11e7-8310-0242ac120002", "previous": "988b7466-c345-11e7-8310-0242ac120002" } }, "source": [ "## Ubuntu-maintainedなDockerがインストールされていないこと\n", "\n", "Ubuntu-maintainedなDocker(`docker-io` パッケージ)がすでにインストールされているとファイル構成など競合するかもしれない。そのため、念のため以下のコマンドに**失敗する(FAILED)** ことを確認しておく。" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "lc_cell_meme": { "current": "988b7682-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7790-c345-11e7-8310-0242ac120002", "previous": "988b7574-c345-11e7-8310-0242ac120002" }, "pinned_outputs": [ { "execution_count": 7, "outputs": [ { "name": "stdout", "output_type": "stream", "text": "\u001b[0;31mXXX.XXX.XXX.66 | FAILED | rc=1 >>\u001b[0m\r\n\u001b[0;31mnon-zero return code\u001b[0m\r\n\u001b[0;31m\u001b[0m\r\n" }, { "ename": "RuntimeError", "evalue": "Unexpected exit code: 2", "output_type": "error", "traceback": [ "\u001b[0;31m\u001b[0m", "\u001b[0;31mRuntimeError\u001b[0mTraceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msystem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu\"ansible -b -m shell -a 'dpkg -l | grep docker.io' {target_group}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/home/bit_kun/.ipython/profile_default/startup/10-custom-get_ipython_system.py\u001b[0m in \u001b[0;36m\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0msave_get_ipython_system\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msystem\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msystem\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mget_ipython_system\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;31m# interactiveshell.py's system_piped() function comment saids:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/bit_kun/.ipython/profile_default/startup/10-custom-get_ipython_system.py\u001b[0m in \u001b[0;36mget_ipython_system\u001b[0;34m(cmd)\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0msave_get_ipython_system\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muser_ns\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'_exit_code'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 15\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Unexpected exit code: %d'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muser_ns\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'_exit_code'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mRuntimeError\u001b[0m: Unexpected exit code: 2" ] } ] } ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;31mXXX.XXX.XXX.66 | FAILED | rc=1 >>\u001b[0m\r\n", "\u001b[0;31mnon-zero return code\u001b[0m\r\n", "\u001b[0;31m\u001b[0m\r\n" ] }, { "ename": "RuntimeError", "evalue": "Unexpected exit code: 2", "output_type": "error", "traceback": [ "\u001b[0;31m\u001b[0m", "\u001b[0;31mRuntimeError\u001b[0mTraceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msystem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu\"ansible -b -m shell -a 'dpkg -l | grep docker.io' {target_group}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/home/bit_kun/.ipython/profile_default/startup/10-custom-get_ipython_system.py\u001b[0m in \u001b[0;36m\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0msave_get_ipython_system\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msystem\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msystem\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mget_ipython_system\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;31m# interactiveshell.py's system_piped() function comment saids:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/bit_kun/.ipython/profile_default/startup/10-custom-get_ipython_system.py\u001b[0m in \u001b[0;36mget_ipython_system\u001b[0;34m(cmd)\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0msave_get_ipython_system\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muser_ns\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'_exit_code'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 15\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Unexpected exit code: %d'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muser_ns\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'_exit_code'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mRuntimeError\u001b[0m: Unexpected exit code: 2" ] } ], "source": [ "!ansible -b -m shell -a 'dpkg -l | grep docker.io' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b7790-c345-11e7-8310-0242ac120002", "history": [], "next": "988b789e-c345-11e7-8310-0242ac120002", "previous": "988b7682-c345-11e7-8310-0242ac120002" } }, "source": [ "## 古いrepositoryからインストールされていないこと\n", "\n", "古いrepositoryでは `lxc-docker` というパッケージ名だった時代があった・・・これがインストールされていないことも念のため確認しておく。以下のコマンドに**失敗する(FAILED)** ことを確認しておく。" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "lc_cell_meme": { "current": "988b789e-c345-11e7-8310-0242ac120002", "history": [], "next": "988b79a2-c345-11e7-8310-0242ac120002", "previous": "988b7790-c345-11e7-8310-0242ac120002" }, "pinned_outputs": [ { "execution_count": 8, "outputs": [ { "name": "stdout", "output_type": "stream", "text": "\u001b[0;31mXXX.XXX.XXX.66 | FAILED | rc=1 >>\u001b[0m\r\n\u001b[0;31mnon-zero return code\u001b[0m\r\n\u001b[0;31m\u001b[0m\r\n" }, { "ename": "RuntimeError", "evalue": "Unexpected exit code: 2", "output_type": "error", "traceback": [ "\u001b[0;31m\u001b[0m", "\u001b[0;31mRuntimeError\u001b[0mTraceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msystem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu\"ansible -b -m shell -a 'dpkg -l | grep lxc-docker' {target_group}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/home/bit_kun/.ipython/profile_default/startup/10-custom-get_ipython_system.py\u001b[0m in \u001b[0;36m\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0msave_get_ipython_system\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msystem\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msystem\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mget_ipython_system\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;31m# interactiveshell.py's system_piped() function comment saids:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/bit_kun/.ipython/profile_default/startup/10-custom-get_ipython_system.py\u001b[0m in \u001b[0;36mget_ipython_system\u001b[0;34m(cmd)\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0msave_get_ipython_system\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muser_ns\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'_exit_code'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 15\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Unexpected exit code: %d'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muser_ns\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'_exit_code'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mRuntimeError\u001b[0m: Unexpected exit code: 2" ] } ] } ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;31mXXX.XXX.XXX.66 | FAILED | rc=1 >>\u001b[0m\r\n", "\u001b[0;31mnon-zero return code\u001b[0m\r\n", "\u001b[0;31m\u001b[0m\r\n" ] }, { "ename": "RuntimeError", "evalue": "Unexpected exit code: 2", "output_type": "error", "traceback": [ "\u001b[0;31m\u001b[0m", "\u001b[0;31mRuntimeError\u001b[0mTraceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msystem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu\"ansible -b -m shell -a 'dpkg -l | grep lxc-docker' {target_group}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/home/bit_kun/.ipython/profile_default/startup/10-custom-get_ipython_system.py\u001b[0m in \u001b[0;36m\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0msave_get_ipython_system\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msystem\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msystem\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mget_ipython_system\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;31m# interactiveshell.py's system_piped() function comment saids:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/bit_kun/.ipython/profile_default/startup/10-custom-get_ipython_system.py\u001b[0m in \u001b[0;36mget_ipython_system\u001b[0;34m(cmd)\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0msave_get_ipython_system\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muser_ns\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'_exit_code'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 15\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Unexpected exit code: %d'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muser_ns\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'_exit_code'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mRuntimeError\u001b[0m: Unexpected exit code: 2" ] } ], "source": [ "!ansible -b -m shell -a 'dpkg -l | grep lxc-docker' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b79a2-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7ab0-c345-11e7-8310-0242ac120002", "previous": "988b789e-c345-11e7-8310-0242ac120002" } }, "source": [ "## APTにdocker-engineのrepositoryが未登録\n", "\n", "このNotebook適用時は、docker-engineのrepositoryが未登録であることを前提としている。すでにrepositoryが登録されている場合、このNotebookで指定したパッケージが適切にインストールされないかもしれない。念のため以下のコマンドの実行結果に、**何もインストール候補バージョンが現れない**ことを確認しておく。" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "lc_cell_meme": { "current": "988b7ab0-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7bb4-c345-11e7-8310-0242ac120002", "previous": "988b79a2-c345-11e7-8310-0242ac120002" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1;35m [WARNING]: Consider using apt module rather than running apt-get\u001b[0m\r\n", "\u001b[1;35m\u001b[0m\r\n", "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32mHit:1 http://us.archive.ubuntu.com/ubuntu xenial InRelease\u001b[0m\r\n", "\u001b[0;32mGet:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]\u001b[0m\r\n", "\u001b[0;32mGet:3 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]\u001b[0m\r\n", "\u001b[0;32mGet:4 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]\u001b[0m\r\n", "\u001b[0;32mGet:5 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [652 kB]\u001b[0m\r\n", "\u001b[0;32mGet:6 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [381 kB]\u001b[0m\r\n", "\u001b[0;32mGet:7 http://us.archive.ubuntu.com/ubuntu xenial-updates/main i386 Packages [617 kB]\u001b[0m\r\n", "\u001b[0;32mGet:8 http://security.ubuntu.com/ubuntu xenial-security/main i386 Packages [352 kB]\u001b[0m\r\n", "\u001b[0;32mGet:9 http://security.ubuntu.com/ubuntu xenial-security/main Translation-en [168 kB]\u001b[0m\r\n", "\u001b[0;32mGet:10 http://us.archive.ubuntu.com/ubuntu xenial-updates/main Translation-en [273 kB]\u001b[0m\r\n", "\u001b[0;32mGet:11 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [7,472 B]\u001b[0m\r\n", "\u001b[0;32mGet:12 http://security.ubuntu.com/ubuntu xenial-security/restricted i386 Packages [7,472 B]\u001b[0m\r\n", "\u001b[0;32mGet:13 http://security.ubuntu.com/ubuntu xenial-security/restricted Translation-en [2,412 B]\u001b[0m\r\n", "\u001b[0;32mGet:14 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [178 kB]\u001b[0m\r\n", "\u001b[0;32mGet:15 http://security.ubuntu.com/ubuntu xenial-security/universe i386 Packages [153 kB]\u001b[0m\r\n", "\u001b[0;32mGet:16 http://security.ubuntu.com/ubuntu xenial-security/universe Translation-en [94.3 kB]\u001b[0m\r\n", "\u001b[0;32mGet:17 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [3,208 B]\u001b[0m\r\n", "\u001b[0;32mGet:18 http://security.ubuntu.com/ubuntu xenial-security/multiverse i386 Packages [3,388 B]\u001b[0m\r\n", "\u001b[0;32mGet:19 http://security.ubuntu.com/ubuntu xenial-security/multiverse Translation-en [1,336 B]\u001b[0m\r\n", "\u001b[0;32mGet:20 http://us.archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [8,088 B]\u001b[0m\r\n", "\u001b[0;32mGet:21 http://us.archive.ubuntu.com/ubuntu xenial-updates/restricted i386 Packages [8,072 B]\u001b[0m\r\n", "\u001b[0;32mGet:22 http://us.archive.ubuntu.com/ubuntu xenial-updates/restricted Translation-en [2,672 B]\u001b[0m\r\n", "\u001b[0;32mGet:23 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [543 kB]\u001b[0m\r\n", "\u001b[0;32mGet:24 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe i386 Packages [517 kB]\u001b[0m\r\n", "\u001b[0;32mGet:25 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe Translation-en [221 kB]\u001b[0m\r\n", "\u001b[0;32mGet:26 http://us.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [16.2 kB]\u001b[0m\r\n", "\u001b[0;32mGet:27 http://us.archive.ubuntu.com/ubuntu xenial-updates/multiverse i386 Packages [15.3 kB]\u001b[0m\r\n", "\u001b[0;32mGet:28 http://us.archive.ubuntu.com/ubuntu xenial-updates/multiverse Translation-en [7,996 B]\u001b[0m\r\n", "\u001b[0;32mFetched 4,540 kB in 3s (1,276 kB/s)\u001b[0m\r\n", "\u001b[0;32mReading package lists...\u001b[0m\r\n", "\u001b[0;32mdocker-ce:\u001b[0m\r\n", "\u001b[0;32m Installed: (none)\u001b[0m\r\n", "\u001b[0;32m Candidate: (none)\u001b[0m\r\n", "\u001b[0;32m Version table:\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -m shell -a 'apt-get update && apt-cache policy docker-ce' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b7bb4-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7cc2-c345-11e7-8310-0242ac120002", "previous": "988b7ab0-c345-11e7-8310-0242ac120002" } }, "source": [ "# Docker Engineのインストール\n", "\n", "Bind対象にDocker Engineをインストールする。" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b7cc2-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7dd0-c345-11e7-8310-0242ac120002", "previous": "988b7bb4-c345-11e7-8310-0242ac120002" } }, "source": [ "## apt sourcesの更新\n", "\n", "Docker社のrepositoryの情報をBind対象マシンに追加する。\n", "\n", "まず、HTTPSのrepositoryからパッケージをインストールできるようにしておく。" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "lc_cell_meme": { "current": "988b7dd0-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7ed4-c345-11e7-8310-0242ac120002", "previous": "988b7cc2-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1;35m [WARNING]: Consider using apt module rather than running apt-get\u001b[0m\r\n", "\u001b[1;35m\u001b[0m\r\n", "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32mHit:1 http://us.archive.ubuntu.com/ubuntu xenial InRelease\u001b[0m\r\n", "\u001b[0;32mHit:2 http://security.ubuntu.com/ubuntu xenial-security InRelease\u001b[0m\r\n", "\u001b[0;32mHit:3 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease\u001b[0m\r\n", "\u001b[0;32mHit:4 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease\u001b[0m\r\n", "\u001b[0;32mReading package lists...\u001b[0m\r\n", "\u001b[0;32mReading package lists...\u001b[0m\r\n", "\u001b[0;32mBuilding dependency tree...\u001b[0m\r\n", "\u001b[0;32mReading state information...\u001b[0m\r\n", "\u001b[0;32mca-certificates is already the newest version (20170717~16.04.1).\u001b[0m\r\n", "\u001b[0;32mca-certificates set to manually installed.\u001b[0m\r\n", "\u001b[0;32mThe following additional packages will be installed:\u001b[0m\r\n", "\u001b[0;32m libasn1-8-heimdal libcurl3-gnutls libgssapi3-heimdal libhcrypto4-heimdal\u001b[0m\r\n", "\u001b[0;32m libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal\u001b[0m\r\n", "\u001b[0;32m libkrb5-26-heimdal libldap-2.4-2 libroken18-heimdal librtmp1 libsasl2-2\u001b[0m\r\n", "\u001b[0;32m libsasl2-modules libsasl2-modules-db libwind0-heimdal\u001b[0m\r\n", "\u001b[0;32mSuggested packages:\u001b[0m\r\n", "\u001b[0;32m libsasl2-modules-otp libsasl2-modules-ldap libsasl2-modules-sql\u001b[0m\r\n", "\u001b[0;32m libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal\u001b[0m\r\n", "\u001b[0;32mThe following NEW packages will be installed:\u001b[0m\r\n", "\u001b[0;32m apt-transport-https curl libasn1-8-heimdal libcurl3-gnutls\u001b[0m\r\n", "\u001b[0;32m libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal\u001b[0m\r\n", "\u001b[0;32m libheimntlm0-heimdal libhx509-5-heimdal libkrb5-26-heimdal libldap-2.4-2\u001b[0m\r\n", "\u001b[0;32m libroken18-heimdal librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db\u001b[0m\r\n", "\u001b[0;32m libwind0-heimdal\u001b[0m\r\n", "\u001b[0;32m0 upgraded, 17 newly installed, 0 to remove and 25 not upgraded.\u001b[0m\r\n", "\u001b[0;32mNeed to get 1,473 kB of archives.\u001b[0m\r\n", "\u001b[0;32mAfter this operation, 5,133 kB of additional disk space will be used.\u001b[0m\r\n", "\u001b[0;32mGet:1 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libroken18-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [41.4 kB]\u001b[0m\r\n", "\u001b[0;32mGet:2 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libasn1-8-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [174 kB]\u001b[0m\r\n", "\u001b[0;32mGet:3 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libhcrypto4-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [85.0 kB]\u001b[0m\r\n", "\u001b[0;32mGet:4 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libheimbase1-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [29.3 kB]\u001b[0m\r\n", "\u001b[0;32mGet:5 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libwind0-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [47.8 kB]\u001b[0m\r\n", "\u001b[0;32mGet:6 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libhx509-5-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [107 kB]\u001b[0m\r\n", "\u001b[0;32mGet:7 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libkrb5-26-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [202 kB]\u001b[0m\r\n", "\u001b[0;32mGet:8 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libheimntlm0-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [15.1 kB]\u001b[0m\r\n", "\u001b[0;32mGet:9 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgssapi3-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [96.1 kB]\u001b[0m\r\n", "\u001b[0;32mGet:10 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libsasl2-modules-db amd64 2.1.26.dfsg1-14build1 [14.5 kB]\u001b[0m\r\n", "\u001b[0;32mGet:11 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libsasl2-2 amd64 2.1.26.dfsg1-14build1 [48.7 kB]\u001b[0m\r\n", "\u001b[0;32mGet:12 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libldap-2.4-2 amd64 2.4.42+dfsg-2ubuntu3.2 [160 kB]\u001b[0m\r\n", "\u001b[0;32mGet:13 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 librtmp1 amd64 2.4+20151223.gitfa8646d-1ubuntu0.1 [54.4 kB]\u001b[0m\r\n", "\u001b[0;32mGet:14 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcurl3-gnutls amd64 7.47.0-1ubuntu2.4 [184 kB]\u001b[0m\r\n", "\u001b[0;32mGet:15 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 apt-transport-https amd64 1.2.24 [26.1 kB]\u001b[0m\r\n", "\u001b[0;32mGet:16 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libsasl2-modules amd64 2.1.26.dfsg1-14build1 [47.5 kB]\u001b[0m\r\n", "\u001b[0;32mGet:17 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 curl amd64 7.47.0-1ubuntu2.4 [139 kB]\u001b[0m\r\n", "\u001b[0;32mFetched 1,473 kB in 2s (505 kB/s)\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libroken18-heimdal:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32m(Reading database ... \r", "(Reading database ... 5%\r", "(Reading database ... 10%\r", "(Reading database ... 15%\r", "(Reading database ... 20%\r", "(Reading database ... 25%\r", "(Reading database ... 30%\r", "(Reading database ... 35%\r", "(Reading database ... 40%\r", "(Reading database ... 45%\r", "(Reading database ... 50%\r", "(Reading database ... 55%\r", "(Reading database ... 60%\r", "(Reading database ... 65%\r", "(Reading database ... 70%\r", "(Reading database ... 75%\r", "(Reading database ... 80%\r", "(Reading database ... 85%\r", "(Reading database ... 90%\r", "(Reading database ... 95%\r", "(Reading database ... 100%\r", "(Reading database ... 53639 files and directories currently installed.)\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libroken18-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libroken18-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libasn1-8-heimdal:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libasn1-8-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libasn1-8-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libhcrypto4-heimdal:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libhcrypto4-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libhcrypto4-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libheimbase1-heimdal:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libheimbase1-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libheimbase1-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libwind0-heimdal:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libwind0-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libwind0-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libhx509-5-heimdal:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libhx509-5-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libhx509-5-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libkrb5-26-heimdal:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libkrb5-26-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libkrb5-26-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libheimntlm0-heimdal:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libheimntlm0-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libheimntlm0-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libgssapi3-heimdal:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libgssapi3-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libgssapi3-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libsasl2-modules-db:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libsasl2-modules-db_2.1.26.dfsg1-14build1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libsasl2-modules-db:amd64 (2.1.26.dfsg1-14build1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libsasl2-2:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libsasl2-2_2.1.26.dfsg1-14build1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libsasl2-2:amd64 (2.1.26.dfsg1-14build1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libldap-2.4-2:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libldap-2.4-2_2.4.42+dfsg-2ubuntu3.2_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libldap-2.4-2:amd64 (2.4.42+dfsg-2ubuntu3.2) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package librtmp1:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../librtmp1_2.4+20151223.gitfa8646d-1ubuntu0.1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking librtmp1:amd64 (2.4+20151223.gitfa8646d-1ubuntu0.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libcurl3-gnutls:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libcurl3-gnutls_7.47.0-1ubuntu2.4_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.4) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package apt-transport-https.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../apt-transport-https_1.2.24_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking apt-transport-https (1.2.24) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libsasl2-modules:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libsasl2-modules_2.1.26.dfsg1-14build1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libsasl2-modules:amd64 (2.1.26.dfsg1-14build1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package curl.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../curl_7.47.0-1ubuntu2.4_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking curl (7.47.0-1ubuntu2.4) ...\r", "\u001b[0m\r\n", "\u001b[0;32mProcessing triggers for libc-bin (2.23-0ubuntu9) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libroken18-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libasn1-8-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libhcrypto4-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libheimbase1-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libwind0-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libhx509-5-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libkrb5-26-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libheimntlm0-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libgssapi3-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libsasl2-modules-db:amd64 (2.1.26.dfsg1-14build1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libsasl2-2:amd64 (2.1.26.dfsg1-14build1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libldap-2.4-2:amd64 (2.4.42+dfsg-2ubuntu3.2) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up librtmp1:amd64 (2.4+20151223.gitfa8646d-1ubuntu0.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.4) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up apt-transport-https (1.2.24) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libsasl2-modules:amd64 (2.1.26.dfsg1-14build1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up curl (7.47.0-1ubuntu2.4) ...\r", "\u001b[0m\r\n", "\u001b[0;32mProcessing triggers for libc-bin (2.23-0ubuntu9) ...\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -m shell -a 'apt-get update && \\\n", " apt-get install -y apt-transport-https ca-certificates curl' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b7ed4-c345-11e7-8310-0242ac120002", "history": [], "next": "988b7fe2-c345-11e7-8310-0242ac120002", "previous": "988b7dd0-c345-11e7-8310-0242ac120002" } }, "source": [ "GPG keyを追加しておく。" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "lc_cell_meme": { "current": "988b7fe2-c345-11e7-8310-0242ac120002", "history": [], "next": "988b80e6-c345-11e7-8310-0242ac120002", "previous": "988b7ed4-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1;35m [WARNING]: Consider using get_url or uri module rather than running curl\u001b[0m\r\n", "\u001b[1;35m\u001b[0m\r\n", "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32mOK\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -m shell \\\n", " -a 'curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b80e6-c345-11e7-8310-0242ac120002", "history": [], "next": "988b81f4-c345-11e7-8310-0242ac120002", "previous": "988b7fe2-c345-11e7-8310-0242ac120002" } }, "source": [ "以下のコマンドで現れるfingerprintが `9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88` であることを確認しておく。" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:42:57.805906", "start_time": "2016-05-13T07:42:54.891340" }, "lc_cell_meme": { "current": "988b81f4-c345-11e7-8310-0242ac120002", "history": [], "next": "988b8302-c345-11e7-8310-0242ac120002", "previous": "988b80e6-c345-11e7-8310-0242ac120002" }, "pinned_outputs": [ { "execution_count": 12, "outputs": [ { "name": "stdout", "output_type": "stream", "text": "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n\u001b[0;32mpub 4096R/0EBFCD88 2017-02-22\u001b[0m\r\n\u001b[0;32m Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88\u001b[0m\r\n\u001b[0;32muid Docker Release (CE deb) \u001b[0m\r\n\u001b[0;32msub 4096R/F273FCD8 2017-02-22\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n" } ] } ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32mpub 4096R/0EBFCD88 2017-02-22\u001b[0m\r\n", "\u001b[0;32m Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88\u001b[0m\r\n", "\u001b[0;32muid Docker Release (CE deb) \u001b[0m\r\n", "\u001b[0;32msub 4096R/F273FCD8 2017-02-22\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -a 'apt-key fingerprint 0EBFCD88' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b8302-c345-11e7-8310-0242ac120002", "history": [], "next": "988b8406-c345-11e7-8310-0242ac120002", "previous": "988b81f4-c345-11e7-8310-0242ac120002" } }, "source": [ "Ubuntuのバージョンに応じたrepositoryのURLを追加する。このNotebookでは **16.04(Xenial)** を追加。" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:42:59.626142", "start_time": "2016-05-13T07:42:58.411312" }, "lc_cell_meme": { "current": "988b8406-c345-11e7-8310-0242ac120002", "history": [], "next": "988b850a-c345-11e7-8310-0242ac120002", "previous": "988b8302-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -m shell -a 'echo deb [arch=amd64] https://download.docker.com/linux/ubuntu \\\n", " xenial stable \\\n", " > /etc/apt/sources.list.d/docker.list' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b850a-c345-11e7-8310-0242ac120002", "history": [], "next": "988b8618-c345-11e7-8310-0242ac120002", "previous": "988b8406-c345-11e7-8310-0242ac120002" } }, "source": [ "aptがrepositoryから情報を取得できているかの確認。" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:43:20.018966", "start_time": "2016-05-13T07:42:59.663766" }, "lc_cell_meme": { "current": "988b8618-c345-11e7-8310-0242ac120002", "history": [], "next": "988b8726-c345-11e7-8310-0242ac120002", "previous": "988b850a-c345-11e7-8310-0242ac120002" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1;35m [WARNING]: Consider using apt module rather than running apt-get\u001b[0m\r\n", "\u001b[1;35m\u001b[0m\r\n", "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32mGet:1 https://download.docker.com/linux/ubuntu xenial InRelease [49.8 kB]\u001b[0m\r\n", "\u001b[0;32mHit:2 http://us.archive.ubuntu.com/ubuntu xenial InRelease\u001b[0m\r\n", "\u001b[0;32mHit:3 http://security.ubuntu.com/ubuntu xenial-security InRelease\u001b[0m\r\n", "\u001b[0;32mGet:4 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages [2,579 B]\u001b[0m\r\n", "\u001b[0;32mHit:5 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease\u001b[0m\r\n", "\u001b[0;32mHit:6 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease\u001b[0m\r\n", "\u001b[0;32mFetched 52.4 kB in 0s (59.8 kB/s)\u001b[0m\r\n", "\u001b[0;32mReading package lists...\u001b[0m\r\n", "\u001b[0;32mdocker-ce:\u001b[0m\r\n", "\u001b[0;32m Installed: (none)\u001b[0m\r\n", "\u001b[0;32m Candidate: 17.09.0~ce-0~ubuntu\u001b[0m\r\n", "\u001b[0;32m Version table:\u001b[0m\r\n", "\u001b[0;32m 17.09.0~ce-0~ubuntu 500\u001b[0m\r\n", "\u001b[0;32m 500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages\u001b[0m\r\n", "\u001b[0;32m 17.06.2~ce-0~ubuntu 500\u001b[0m\r\n", "\u001b[0;32m 500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages\u001b[0m\r\n", "\u001b[0;32m 17.06.1~ce-0~ubuntu 500\u001b[0m\r\n", "\u001b[0;32m 500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages\u001b[0m\r\n", "\u001b[0;32m 17.06.0~ce-0~ubuntu 500\u001b[0m\r\n", "\u001b[0;32m 500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages\u001b[0m\r\n", "\u001b[0;32m 17.03.2~ce-0~ubuntu-xenial 500\u001b[0m\r\n", "\u001b[0;32m 500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages\u001b[0m\r\n", "\u001b[0;32m 17.03.1~ce-0~ubuntu-xenial 500\u001b[0m\r\n", "\u001b[0;32m 500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages\u001b[0m\r\n", "\u001b[0;32m 17.03.0~ce-0~ubuntu-xenial 500\u001b[0m\r\n", "\u001b[0;32m 500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -m shell -a 'apt-get update && \\\n", " apt-cache policy docker-ce' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b8726-c345-11e7-8310-0242ac120002", "history": [], "next": "988b8834-c345-11e7-8310-0242ac120002", "previous": "988b8618-c345-11e7-8310-0242ac120002" } }, "source": [ "## パッケージのインストール\n", "\n", "`docker-ce` パッケージをインストールする。" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:43:48.131696", "start_time": "2016-05-13T07:43:29.201543" }, "lc_cell_meme": { "current": "988b8834-c345-11e7-8310-0242ac120002", "history": [], "next": "988b8938-c345-11e7-8310-0242ac120002", "previous": "988b8726-c345-11e7-8310-0242ac120002" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1;35m [WARNING]: Consider using apt module rather than running apt-get\u001b[0m\r\n", "\u001b[1;35m\u001b[0m\r\n", "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32mHit:1 https://download.docker.com/linux/ubuntu xenial InRelease\u001b[0m\r\n", "\u001b[0;32mHit:2 http://us.archive.ubuntu.com/ubuntu xenial InRelease\u001b[0m\r\n", "\u001b[0;32mHit:3 http://security.ubuntu.com/ubuntu xenial-security InRelease\u001b[0m\r\n", "\u001b[0;32mHit:4 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease\u001b[0m\r\n", "\u001b[0;32mHit:5 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease\u001b[0m\r\n", "\u001b[0;32mReading package lists...\u001b[0m\r\n", "\u001b[0;32mReading package lists...\u001b[0m\r\n", "\u001b[0;32mBuilding dependency tree...\u001b[0m\r\n", "\u001b[0;32mReading state information...\u001b[0m\r\n", "\u001b[0;32mThe following additional packages will be installed:\u001b[0m\r\n", "\u001b[0;32m apparmor aufs-tools cgroupfs-mount git git-man iptables libapparmor-perl\u001b[0m\r\n", "\u001b[0;32m liberror-perl libgdbm3 libltdl7 libnfnetlink0 libperl5.22 patch perl\u001b[0m\r\n", "\u001b[0;32m perl-modules-5.22 rename rsync xz-utils\u001b[0m\r\n", "\u001b[0;32mSuggested packages:\u001b[0m\r\n", "\u001b[0;32m apparmor-profiles apparmor-profiles-extra apparmor-docs apparmor-utils\u001b[0m\r\n", "\u001b[0;32m mountall git-daemon-run | git-daemon-sysvinit git-doc git-el git-email\u001b[0m\r\n", "\u001b[0;32m git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn ed diffutils-doc\u001b[0m\r\n", "\u001b[0;32m perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make\u001b[0m\r\n", "\u001b[0;32mThe following NEW packages will be installed:\u001b[0m\r\n", "\u001b[0;32m apparmor aufs-tools cgroupfs-mount docker-ce git git-man iptables\u001b[0m\r\n", "\u001b[0;32m libapparmor-perl liberror-perl libgdbm3 libltdl7 libnfnetlink0 libperl5.22\u001b[0m\r\n", "\u001b[0;32m patch perl perl-modules-5.22 rename rsync xz-utils\u001b[0m\r\n", "\u001b[0;32m0 upgraded, 19 newly installed, 0 to remove and 25 not upgraded.\u001b[0m\r\n", "\u001b[0;32mNeed to get 32.6 MB of archives.\u001b[0m\r\n", "\u001b[0;32mAfter this operation, 170 MB of additional disk space will be used.\u001b[0m\r\n", "\u001b[0;32mGet:1 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libgdbm3 amd64 1.8.3-13.1 [16.9 kB]\u001b[0m\r\n", "\u001b[0;32mGet:2 https://download.docker.com/linux/ubuntu xenial/stable amd64 docker-ce amd64 17.09.0~ce-0~ubuntu [21.0 MB]\u001b[0m\r\n", "\u001b[0;32mGet:3 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libnfnetlink0 amd64 1.0.1-3 [13.3 kB]\u001b[0m\r\n", "\u001b[0;32mGet:4 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 perl-modules-5.22 all 5.22.1-9 [2,641 kB]\u001b[0m\r\n", "\u001b[0;32mGet:5 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libperl5.22 amd64 5.22.1-9 [3,371 kB]\u001b[0m\r\n", "\u001b[0;32mGet:6 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 perl amd64 5.22.1-9 [237 kB]\u001b[0m\r\n", "\u001b[0;32mGet:7 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapparmor-perl amd64 2.10.95-0ubuntu2.7 [31.6 kB]\u001b[0m\r\n", "\u001b[0;32mGet:8 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 apparmor amd64 2.10.95-0ubuntu2.7 [450 kB]\u001b[0m\r\n", "\u001b[0;32mGet:9 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 iptables amd64 1.6.0-2ubuntu3 [266 kB]\u001b[0m\r\n", "\u001b[0;32mGet:10 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 rsync amd64 3.1.1-3ubuntu1 [325 kB]\u001b[0m\r\n", "\u001b[0;32mGet:11 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 aufs-tools amd64 1:3.2+20130722-1.1ubuntu1 [92.9 kB]\u001b[0m\r\n", "\u001b[0;32mGet:12 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 cgroupfs-mount all 1.2 [4,970 B]\u001b[0m\r\n", "\u001b[0;32mGet:13 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libltdl7 amd64 2.4.6-0.1 [38.3 kB]\u001b[0m\r\n", "\u001b[0;32mGet:14 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 liberror-perl all 0.17-1.2 [19.6 kB]\u001b[0m\r\n", "\u001b[0;32mGet:15 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 git-man all 1:2.7.4-0ubuntu1.3 [736 kB]\u001b[0m\r\n", "\u001b[0;32mGet:16 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 git amd64 1:2.7.4-0ubuntu1.3 [3,102 kB]\u001b[0m\r\n", "\u001b[0;32mGet:17 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 patch amd64 2.7.5-1 [90.4 kB]\u001b[0m\r\n", "\u001b[0;32mGet:18 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 rename all 0.20-4 [12.0 kB]\u001b[0m\r\n", "\u001b[0;32mGet:19 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 xz-utils amd64 5.1.1alpha+20120614-2ubuntu2 [78.8 kB]\u001b[0m\r\n", "\u001b[0;32mPreconfiguring packages ...\u001b[0m\r\n", "\u001b[0;32mFetched 32.6 MB in 5s (6,284 kB/s)\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libgdbm3:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32m(Reading database ... \r", "(Reading database ... 5%\r", "(Reading database ... 10%\r", "(Reading database ... 15%\r", "(Reading database ... 20%\r", "(Reading database ... 25%\r", "(Reading database ... 30%\r", "(Reading database ... 35%\r", "(Reading database ... 40%\r", "(Reading database ... 45%\r", "(Reading database ... 50%\r", "(Reading database ... 55%\r", "(Reading database ... 60%\r", "(Reading database ... 65%\r", "(Reading database ... 70%\r", "(Reading database ... 75%\r", "(Reading database ... 80%\r", "(Reading database ... 85%\r", "(Reading database ... 90%\r", "(Reading database ... 95%\r", "(Reading database ... 100%\r", "(Reading database ... 53772 files and directories currently installed.)\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libgdbm3_1.8.3-13.1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libgdbm3:amd64 (1.8.3-13.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libnfnetlink0:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libnfnetlink0_1.0.1-3_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libnfnetlink0:amd64 (1.0.1-3) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package perl-modules-5.22.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../perl-modules-5.22_5.22.1-9_all.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking perl-modules-5.22 (5.22.1-9) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libperl5.22:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libperl5.22_5.22.1-9_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libperl5.22:amd64 (5.22.1-9) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package perl.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../perl_5.22.1-9_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking perl (5.22.1-9) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libapparmor-perl.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libapparmor-perl_2.10.95-0ubuntu2.7_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libapparmor-perl (2.10.95-0ubuntu2.7) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package apparmor.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../apparmor_2.10.95-0ubuntu2.7_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking apparmor (2.10.95-0ubuntu2.7) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package iptables.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../iptables_1.6.0-2ubuntu3_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking iptables (1.6.0-2ubuntu3) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package rsync.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../rsync_3.1.1-3ubuntu1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking rsync (3.1.1-3ubuntu1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package aufs-tools.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../aufs-tools_1%3a3.2+20130722-1.1ubuntu1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking aufs-tools (1:3.2+20130722-1.1ubuntu1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package cgroupfs-mount.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../cgroupfs-mount_1.2_all.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking cgroupfs-mount (1.2) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package libltdl7:amd64.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../libltdl7_2.4.6-0.1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking libltdl7:amd64 (2.4.6-0.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package docker-ce.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../docker-ce_17.09.0~ce-0~ubuntu_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking docker-ce (17.09.0~ce-0~ubuntu) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package liberror-perl.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../liberror-perl_0.17-1.2_all.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking liberror-perl (0.17-1.2) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package git-man.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../git-man_1%3a2.7.4-0ubuntu1.3_all.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking git-man (1:2.7.4-0ubuntu1.3) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package git.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../git_1%3a2.7.4-0ubuntu1.3_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking git (1:2.7.4-0ubuntu1.3) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package patch.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../patch_2.7.5-1_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking patch (2.7.5-1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package rename.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../archives/rename_0.20-4_all.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking rename (0.20-4) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSelecting previously unselected package xz-utils.\r", "\u001b[0m\r\n", "\u001b[0;32mPreparing to unpack .../xz-utils_5.1.1alpha+20120614-2ubuntu2_amd64.deb ...\r", "\u001b[0m\r\n", "\u001b[0;32mUnpacking xz-utils (5.1.1alpha+20120614-2ubuntu2) ...\r", "\u001b[0m\r\n", "\u001b[0;32mProcessing triggers for ureadahead (0.100.0-19) ...\r", "\u001b[0m\r\n", "\u001b[0;32mProcessing triggers for systemd (229-4ubuntu19) ...\r", "\u001b[0m\r\n", "\u001b[0;32mProcessing triggers for libc-bin (2.23-0ubuntu9) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libgdbm3:amd64 (1.8.3-13.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libnfnetlink0:amd64 (1.0.1-3) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up perl-modules-5.22 (5.22.1-9) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libperl5.22:amd64 (5.22.1-9) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up perl (5.22.1-9) ...\r", "\u001b[0m\r\n", "\u001b[0;32mupdate-alternatives: using /usr/bin/prename to provide /usr/bin/rename (rename) in auto mode\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libapparmor-perl (2.10.95-0ubuntu2.7) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up apparmor (2.10.95-0ubuntu2.7) ...\r", "\u001b[0m\r\n", "\u001b[0;32mupdate-rc.d: warning: start and stop actions are no longer supported; falling back to defaults\r", "\u001b[0m\r\n", "\u001b[0;32mdiff: /var/lib/apparmor/profiles/.apparmor.md5sums: No such file or directory\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up iptables (1.6.0-2ubuntu3) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up rsync (3.1.1-3ubuntu1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up aufs-tools (1:3.2+20130722-1.1ubuntu1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up cgroupfs-mount (1.2) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up libltdl7:amd64 (2.4.6-0.1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up docker-ce (17.09.0~ce-0~ubuntu) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up liberror-perl (0.17-1.2) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up git-man (1:2.7.4-0ubuntu1.3) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up git (1:2.7.4-0ubuntu1.3) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up patch (2.7.5-1) ...\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up rename (0.20-4) ...\r", "\u001b[0m\r\n", "\u001b[0;32mupdate-alternatives: using /usr/bin/file-rename to provide /usr/bin/rename (rename) in auto mode\r", "\u001b[0m\r\n", "\u001b[0;32mSetting up xz-utils (5.1.1alpha+20120614-2ubuntu2) ...\r", "\u001b[0m\r\n", "\u001b[0;32mupdate-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode\r", "\u001b[0m\r\n", "\u001b[0;32mProcessing triggers for libc-bin (2.23-0ubuntu9) ...\r", "\u001b[0m\r\n", "\u001b[0;32mProcessing triggers for systemd (229-4ubuntu19) ...\r", "\u001b[0m\r\n", "\u001b[0;32mProcessing triggers for ureadahead (0.100.0-19) ...\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -m shell -a 'apt-get update && \\\n", " apt-get install -y docker-ce' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b8938-c345-11e7-8310-0242ac120002", "history": [], "next": "988b8a46-c345-11e7-8310-0242ac120002", "previous": "988b8834-c345-11e7-8310-0242ac120002" } }, "source": [ "## Docker Engineの設定変更\n", "\n", "あらかじめ定義した設定情報にしたがい、Docker Engineに与えるDefault Configを指定する。" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:43:51.747443", "start_time": "2016-05-13T07:43:51.727326" }, "lc_cell_meme": { "current": "988b8a46-c345-11e7-8310-0242ac120002", "history": [], "next": "988b8b4a-c345-11e7-8310-0242ac120002", "previous": "988b8938-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "data": { "text/plain": [ "'/tmp/tmpkLyFWr'" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import tempfile\n", "temp_dir = tempfile.mkdtemp()\n", "temp_dir" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "lc_cell_meme": { "current": "988b8b4a-c345-11e7-8310-0242ac120002", "history": [], "next": "988b8c4e-c345-11e7-8310-0242ac120002", "previous": "988b8a46-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{\"data-root\": \"/mnt/docker\", \"insecure-registries\": []}" ] } ], "source": [ "import os\n", "import json\n", "with open(os.path.join(temp_dir, 'daemon.json'), 'w') as f:\n", " f.write(json.dumps(docker_opts))\n", "!cat {temp_dir}/daemon.json" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:43:52.597534", "start_time": "2016-05-13T07:43:52.588248" }, "lc_cell_meme": { "current": "988b8c4e-c345-11e7-8310-0242ac120002", "history": [], "next": "988b8d5c-c345-11e7-8310-0242ac120002", "previous": "988b8b4a-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# Systemd drop-in configuration for Docker\r\n", "[Service]\r\n", "Environment=\"DOCKER_TMPDIR=/mnt/docker-tmp\"" ] } ], "source": [ "import os\n", "with open(os.path.join(temp_dir, 'tmpdir.conf'), 'w') as f:\n", " f.write('''# Systemd drop-in configuration for Docker\n", "[Service]\n", "Environment=\"DOCKER_TMPDIR={docker_tmp}\"'''.format(docker_tmp=docker_tmp))\n", "!cat {temp_dir}/tmpdir.conf" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b8d5c-c345-11e7-8310-0242ac120002", "history": [], "next": "988b8e60-c345-11e7-8310-0242ac120002", "previous": "988b8c4e-c345-11e7-8310-0242ac120002" } }, "source": [ "ローカルに作った configファイル を、Bind対象の/etc/default/dockerにコピーし、Docker Engineに反映する。" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:43:58.155342", "start_time": "2016-05-13T07:43:53.334780" }, "lc_cell_meme": { "current": "988b8e60-c345-11e7-8310-0242ac120002", "history": [], "next": "988b8f6e-c345-11e7-8310-0242ac120002", "previous": "988b8d5c-c345-11e7-8310-0242ac120002" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;33mXXX.XXX.XXX.66 | SUCCESS => {\u001b[0m\n", "\u001b[0;33m \"changed\": true, \u001b[0m\n", "\u001b[0;33m \"checksum\": \"d7af45d32223f16ef2c90c84519f37e8bd425777\", \u001b[0m\n", "\u001b[0;33m \"dest\": \"/etc/docker/daemon.json\", \u001b[0m\n", "\u001b[0;33m \"failed\": false, \u001b[0m\n", "\u001b[0;33m \"gid\": 0, \u001b[0m\n", "\u001b[0;33m \"group\": \"root\", \u001b[0m\n", "\u001b[0;33m \"md5sum\": \"d24bc7e71c6f5bb90f4c60847e086406\", \u001b[0m\n", "\u001b[0;33m \"mode\": \"0644\", \u001b[0m\n", "\u001b[0;33m \"owner\": \"root\", \u001b[0m\n", "\u001b[0;33m \"size\": 55, \u001b[0m\n", "\u001b[0;33m \"src\": \"/home/ansible/.ansible/tmp/ansible-tmp-1510008598.03-253168517244957/source\", \u001b[0m\n", "\u001b[0;33m \"state\": \"file\", \u001b[0m\n", "\u001b[0;33m \"uid\": 0\u001b[0m\n", "\u001b[0;33m}\u001b[0m\n", "\u001b[0;33mXXX.XXX.XXX.66 | SUCCESS => {\u001b[0m\n", "\u001b[0;33m \"changed\": true, \u001b[0m\n", "\u001b[0;33m \"failed\": false, \u001b[0m\n", "\u001b[0;33m \"gid\": 0, \u001b[0m\n", "\u001b[0;33m \"group\": \"root\", \u001b[0m\n", "\u001b[0;33m \"mode\": \"0755\", \u001b[0m\n", "\u001b[0;33m \"owner\": \"root\", \u001b[0m\n", "\u001b[0;33m \"path\": \"/etc/systemd/system/docker.service.d\", \u001b[0m\n", "\u001b[0;33m \"size\": 6, \u001b[0m\n", "\u001b[0;33m \"state\": \"directory\", \u001b[0m\n", "\u001b[0;33m \"uid\": 0\u001b[0m\n", "\u001b[0;33m}\u001b[0m\n", "\u001b[0;33mXXX.XXX.XXX.66 | SUCCESS => {\u001b[0m\n", "\u001b[0;33m \"changed\": true, \u001b[0m\n", "\u001b[0;33m \"checksum\": \"17e2db6d5b09b4a11d6ad962ea1b86da7d2c553b\", \u001b[0m\n", "\u001b[0;33m \"dest\": \"/etc/systemd/system/docker.service.d/tmpdir.conf\", \u001b[0m\n", "\u001b[0;33m \"failed\": false, \u001b[0m\n", "\u001b[0;33m \"gid\": 0, \u001b[0m\n", "\u001b[0;33m \"group\": \"root\", \u001b[0m\n", "\u001b[0;33m \"md5sum\": \"2aea202d5e2f6713a286fb9f187cd3dd\", \u001b[0m\n", "\u001b[0;33m \"mode\": \"0644\", \u001b[0m\n", "\u001b[0;33m \"owner\": \"root\", \u001b[0m\n", "\u001b[0;33m \"size\": 96, \u001b[0m\n", "\u001b[0;33m \"src\": \"/home/ansible/.ansible/tmp/ansible-tmp-1510008600.97-188521196625471/source\", \u001b[0m\n", "\u001b[0;33m \"state\": \"file\", \u001b[0m\n", "\u001b[0;33m \"uid\": 0\u001b[0m\n", "\u001b[0;33m}\u001b[0m\n", "\u001b[0;33mXXX.XXX.XXX.66 | SUCCESS => {\u001b[0m\n", "\u001b[0;33m \"changed\": true, \u001b[0m\n", "\u001b[0;33m \"failed\": false, \u001b[0m\n", "\u001b[0;33m \"gid\": 0, \u001b[0m\n", "\u001b[0;33m \"group\": \"root\", \u001b[0m\n", "\u001b[0;33m \"mode\": \"0755\", \u001b[0m\n", "\u001b[0;33m \"owner\": \"root\", \u001b[0m\n", "\u001b[0;33m \"path\": \"/mnt/docker-tmp\", \u001b[0m\n", "\u001b[0;33m \"size\": 6, \u001b[0m\n", "\u001b[0;33m \"state\": \"directory\", \u001b[0m\n", "\u001b[0;33m \"uid\": 0\u001b[0m\n", "\u001b[0;33m}\u001b[0m\n", "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\n", "\u001b[0;32m\u001b[0m\n", "\u001b[0;32m\u001b[0m\n", "\u001b[0;33mXXX.XXX.XXX.66 | SUCCESS => {\u001b[0m\n", "\u001b[0;33m \"changed\": true, \u001b[0m\n", "\u001b[0;33m \"failed\": false, \u001b[0m\n", "\u001b[0;33m \"name\": \"docker\", \u001b[0m\n", "\u001b[0;33m \"state\": \"started\", \u001b[0m\n", "\u001b[0;33m \"status\": {\u001b[0m\n", "\u001b[0;33m \"ActiveEnterTimestamp\": \"Tue 2017-11-07 07:49:07 JST\", \u001b[0m\n", "\u001b[0;33m \"ActiveEnterTimestampMonotonic\": \"310512614468\", \u001b[0m\n", "\u001b[0;33m \"ActiveExitTimestampMonotonic\": \"0\", \u001b[0m\n", "\u001b[0;33m \"ActiveState\": \"active\", \u001b[0m\n", "\u001b[0;33m \"After\": \"docker.socket basic.target systemd-journald.socket firewalld.service network-online.target sysinit.target system.slice\", \u001b[0m\n", "\u001b[0;33m \"AllowIsolate\": \"no\", \u001b[0m\n", "\u001b[0;33m \"AmbientCapabilities\": \"0\", \u001b[0m\n", "\u001b[0;33m \"AssertResult\": \"yes\", \u001b[0m\n", "\u001b[0;33m \"AssertTimestamp\": \"Tue 2017-11-07 07:49:05 JST\", \u001b[0m\n", "\u001b[0;33m \"AssertTimestampMonotonic\": \"310511149702\", \u001b[0m\n", "\u001b[0;33m \"Before\": \"multi-user.target shutdown.target\", \u001b[0m\n", "\u001b[0;33m \"BlockIOAccounting\": \"no\", \u001b[0m\n", "\u001b[0;33m \"BlockIOWeight\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"CPUAccounting\": \"no\", \u001b[0m\n", "\u001b[0;33m \"CPUQuotaPerSecUSec\": \"infinity\", \u001b[0m\n", "\u001b[0;33m \"CPUSchedulingPolicy\": \"0\", \u001b[0m\n", "\u001b[0;33m \"CPUSchedulingPriority\": \"0\", \u001b[0m\n", "\u001b[0;33m \"CPUSchedulingResetOnFork\": \"no\", \u001b[0m\n", "\u001b[0;33m \"CPUShares\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"CPUUsageNSec\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"CanIsolate\": \"no\", \u001b[0m\n", "\u001b[0;33m \"CanReload\": \"yes\", \u001b[0m\n", "\u001b[0;33m \"CanStart\": \"yes\", \u001b[0m\n", "\u001b[0;33m \"CanStop\": \"yes\", \u001b[0m\n", "\u001b[0;33m \"CapabilityBoundingSet\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"ConditionResult\": \"yes\", \u001b[0m\n", "\u001b[0;33m \"ConditionTimestamp\": \"Tue 2017-11-07 07:49:05 JST\", \u001b[0m\n", "\u001b[0;33m \"ConditionTimestampMonotonic\": \"310511149702\", \u001b[0m\n", "\u001b[0;33m \"Conflicts\": \"shutdown.target\", \u001b[0m\n", "\u001b[0;33m \"ConsistsOf\": \"docker.socket\", \u001b[0m\n", "\u001b[0;33m \"ControlGroup\": \"/system.slice/docker.service\", \u001b[0m\n", "\u001b[0;33m \"ControlPID\": \"0\", \u001b[0m\n", "\u001b[0;33m \"DefaultDependencies\": \"yes\", \u001b[0m\n", "\u001b[0;33m \"Delegate\": \"yes\", \u001b[0m\n", "\u001b[0;33m \"Description\": \"Docker Application Container Engine\", \u001b[0m\n", "\u001b[0;33m \"DevicePolicy\": \"auto\", \u001b[0m\n", "\u001b[0;33m \"Documentation\": \"https://docs.docker.com\", \u001b[0m\n", "\u001b[0;33m \"DropInPaths\": \"/etc/systemd/system/docker.service.d/tmpdir.conf\", \u001b[0m\n", "\u001b[0;33m \"Environment\": \"DOCKER_TMPDIR=/mnt/docker-tmp\", \u001b[0m\n", "\u001b[0;33m \"ExecMainCode\": \"0\", \u001b[0m\n", "\u001b[0;33m \"ExecMainExitTimestampMonotonic\": \"0\", \u001b[0m\n", "\u001b[0;33m \"ExecMainPID\": \"4640\", \u001b[0m\n", "\u001b[0;33m \"ExecMainStartTimestamp\": \"Tue 2017-11-07 07:49:06 JST\", \u001b[0m\n", "\u001b[0;33m \"ExecMainStartTimestampMonotonic\": \"310511184150\", \u001b[0m\n", "\u001b[0;33m \"ExecMainStatus\": \"0\", \u001b[0m\n", "\u001b[0;33m \"ExecReload\": \"{ path=/bin/kill ; argv[]=/bin/kill -s HUP $MAINPID ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\", \u001b[0m\n", "\u001b[0;33m \"ExecStart\": \"{ path=/usr/bin/dockerd ; argv[]=/usr/bin/dockerd -H fd:// ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\", \u001b[0m\n", "\u001b[0;33m \"FailureAction\": \"none\", \u001b[0m\n", "\u001b[0;33m \"FileDescriptorStoreMax\": \"0\", \u001b[0m\n", "\u001b[0;33m \"FragmentPath\": \"/lib/systemd/system/docker.service\", \u001b[0m\n", "\u001b[0;33m \"GuessMainPID\": \"yes\", \u001b[0m\n", "\u001b[0;33m \"IOScheduling\": \"0\", \u001b[0m\n", "\u001b[0;33m \"Id\": \"docker.service\", \u001b[0m\n", "\u001b[0;33m \"IgnoreOnIsolate\": \"no\", \u001b[0m\n", "\u001b[0;33m \"IgnoreSIGPIPE\": \"yes\", \u001b[0m\n", "\u001b[0;33m \"InactiveEnterTimestampMonotonic\": \"0\", \u001b[0m\n", "\u001b[0;33m \"InactiveExitTimestamp\": \"Tue 2017-11-07 07:49:06 JST\", \u001b[0m\n", "\u001b[0;33m \"InactiveExitTimestampMonotonic\": \"310511184182\", \u001b[0m\n", "\u001b[0;33m \"JobTimeoutAction\": \"none\", \u001b[0m\n", "\u001b[0;33m \"JobTimeoutUSec\": \"infinity\", \u001b[0m\n", "\u001b[0;33m \"KillMode\": \"process\", \u001b[0m\n", "\u001b[0;33m \"KillSignal\": \"15\", \u001b[0m\n", "\u001b[0;33m \"LimitAS\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitASSoft\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitCORE\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitCORESoft\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitCPU\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitCPUSoft\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitDATA\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitDATASoft\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitFSIZE\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitFSIZESoft\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitLOCKS\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitLOCKSSoft\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitMEMLOCK\": \"65536\", \u001b[0m\n", "\u001b[0;33m \"LimitMEMLOCKSoft\": \"65536\", \u001b[0m\n", "\u001b[0;33m \"LimitMSGQUEUE\": \"819200\", \u001b[0m\n", "\u001b[0;33m \"LimitMSGQUEUESoft\": \"819200\", \u001b[0m\n", "\u001b[0;33m \"LimitNICE\": \"0\", \u001b[0m\n", "\u001b[0;33m \"LimitNICESoft\": \"0\", \u001b[0m\n", "\u001b[0;33m \"LimitNOFILE\": \"1048576\", \u001b[0m\n", "\u001b[0;33m \"LimitNOFILESoft\": \"1048576\", \u001b[0m\n", "\u001b[0;33m \"LimitNPROC\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitNPROCSoft\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitRSS\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitRSSSoft\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitRTPRIO\": \"0\", \u001b[0m\n", "\u001b[0;33m \"LimitRTPRIOSoft\": \"0\", \u001b[0m\n", "\u001b[0;33m \"LimitRTTIME\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitRTTIMESoft\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitSIGPENDING\": \"96307\", \u001b[0m\n", "\u001b[0;33m \"LimitSIGPENDINGSoft\": \"96307\", \u001b[0m\n", "\u001b[0;33m \"LimitSTACK\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"LimitSTACKSoft\": \"8388608\", \u001b[0m\n", "\u001b[0;33m \"LoadState\": \"loaded\", \u001b[0m\n", "\u001b[0;33m \"MainPID\": \"4640\", \u001b[0m\n", "\u001b[0;33m \"MemoryAccounting\": \"no\", \u001b[0m\n", "\u001b[0;33m \"MemoryCurrent\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"MemoryLimit\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"MountFlags\": \"0\", \u001b[0m\n", "\u001b[0;33m \"NFileDescriptorStore\": \"0\", \u001b[0m\n", "\u001b[0;33m \"Names\": \"docker.service\", \u001b[0m\n", "\u001b[0;33m \"NeedDaemonReload\": \"no\", \u001b[0m\n", "\u001b[0;33m \"Nice\": \"0\", \u001b[0m\n", "\u001b[0;33m \"NoNewPrivileges\": \"no\", \u001b[0m\n", "\u001b[0;33m \"NonBlocking\": \"no\", \u001b[0m\n", "\u001b[0;33m \"NotifyAccess\": \"main\", \u001b[0m\n", "\u001b[0;33m \"OOMScoreAdjust\": \"0\", \u001b[0m\n", "\u001b[0;33m \"OnFailureJobMode\": \"replace\", \u001b[0m\n", "\u001b[0;33m \"PermissionsStartOnly\": \"no\", \u001b[0m\n", "\u001b[0;33m \"PrivateDevices\": \"no\", \u001b[0m\n", "\u001b[0;33m \"PrivateNetwork\": \"no\", \u001b[0m\n", "\u001b[0;33m \"PrivateTmp\": \"no\", \u001b[0m\n", "\u001b[0;33m \"ProtectHome\": \"no\", \u001b[0m\n", "\u001b[0;33m \"ProtectSystem\": \"no\", \u001b[0m\n", "\u001b[0;33m \"RefuseManualStart\": \"no\", \u001b[0m\n", "\u001b[0;33m \"RefuseManualStop\": \"no\", \u001b[0m\n", "\u001b[0;33m \"RemainAfterExit\": \"no\", \u001b[0m\n", "\u001b[0;33m \"Requires\": \"docker.socket sysinit.target system.slice\", \u001b[0m\n", "\u001b[0;33m \"Restart\": \"on-failure\", \u001b[0m\n", "\u001b[0;33m \"RestartUSec\": \"100ms\", \u001b[0m\n", "\u001b[0;33m \"Result\": \"success\", \u001b[0m\n", "\u001b[0;33m \"RootDirectoryStartOnly\": \"no\", \u001b[0m\n", "\u001b[0;33m \"RuntimeDirectoryMode\": \"0755\", \u001b[0m\n", "\u001b[0;33m \"RuntimeMaxUSec\": \"infinity\", \u001b[0m\n", "\u001b[0;33m \"SameProcessGroup\": \"no\", \u001b[0m\n", "\u001b[0;33m \"SecureBits\": \"0\", \u001b[0m\n", "\u001b[0;33m \"SendSIGHUP\": \"no\", \u001b[0m\n", "\u001b[0;33m \"SendSIGKILL\": \"yes\", \u001b[0m\n", "\u001b[0;33m \"Slice\": \"system.slice\", \u001b[0m\n", "\u001b[0;33m \"StandardError\": \"inherit\", \u001b[0m\n", "\u001b[0;33m \"StandardInput\": \"null\", \u001b[0m\n", "\u001b[0;33m \"StandardOutput\": \"journal\", \u001b[0m\n", "\u001b[0;33m \"StartLimitAction\": \"none\", \u001b[0m\n", "\u001b[0;33m \"StartLimitBurst\": \"3\", \u001b[0m\n", "\u001b[0;33m \"StartLimitInterval\": \"60000000\", \u001b[0m\n", "\u001b[0;33m \"StartupBlockIOWeight\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"StartupCPUShares\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"StateChangeTimestamp\": \"Tue 2017-11-07 07:49:07 JST\", \u001b[0m\n", "\u001b[0;33m \"StateChangeTimestampMonotonic\": \"310512614468\", \u001b[0m\n", "\u001b[0;33m \"StatusErrno\": \"0\", \u001b[0m\n", "\u001b[0;33m \"StopWhenUnneeded\": \"no\", \u001b[0m\n", "\u001b[0;33m \"SubState\": \"running\", \u001b[0m\n", "\u001b[0;33m \"SyslogFacility\": \"3\", \u001b[0m\n", "\u001b[0;33m \"SyslogLevel\": \"6\", \u001b[0m\n", "\u001b[0;33m \"SyslogLevelPrefix\": \"yes\", \u001b[0m\n", "\u001b[0;33m \"SyslogPriority\": \"30\", \u001b[0m\n", "\u001b[0;33m \"SystemCallErrorNumber\": \"0\", \u001b[0m\n", "\u001b[0;33m \"TTYReset\": \"no\", \u001b[0m\n", "\u001b[0;33m \"TTYVHangup\": \"no\", \u001b[0m\n", "\u001b[0;33m \"TTYVTDisallocate\": \"no\", \u001b[0m\n", "\u001b[0;33m \"TasksAccounting\": \"no\", \u001b[0m\n", "\u001b[0;33m \"TasksCurrent\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"TasksMax\": \"18446744073709551615\", \u001b[0m\n", "\u001b[0;33m \"TimeoutStartUSec\": \"infinity\", \u001b[0m\n", "\u001b[0;33m \"TimeoutStopUSec\": \"1min 30s\", \u001b[0m\n", "\u001b[0;33m \"TimerSlackNSec\": \"50000\", \u001b[0m\n", "\u001b[0;33m \"Transient\": \"no\", \u001b[0m\n", "\u001b[0;33m \"TriggeredBy\": \"docker.socket\", \u001b[0m\n", "\u001b[0;33m \"Type\": \"notify\", \u001b[0m\n", "\u001b[0;33m \"UMask\": \"0022\", \u001b[0m\n", "\u001b[0;33m \"UnitFilePreset\": \"enabled\", \u001b[0m\n", "\u001b[0;33m \"UnitFileState\": \"enabled\", \u001b[0m\n", "\u001b[0;33m \"UtmpMode\": \"init\", \u001b[0m\n", "\u001b[0;33m \"WantedBy\": \"multi-user.target\", \u001b[0m\n", "\u001b[0;33m \"Wants\": \"network-online.target\", \u001b[0m\n", "\u001b[0;33m \"WatchdogTimestamp\": \"Tue 2017-11-07 07:49:07 JST\", \u001b[0m\n", "\u001b[0;33m \"WatchdogTimestampMonotonic\": \"310512614467\", \u001b[0m\n", "\u001b[0;33m \"WatchdogUSec\": \"0\"\u001b[0m\n", "\u001b[0;33m }\u001b[0m\n", "\u001b[0;33m}\u001b[0m\n" ] } ], "source": [ "!ansible -b -m copy -a 'src={temp_dir}/daemon.json dest=/etc/docker/daemon.json' {target_group}\n", "!ansible -b -m file -a 'path=/etc/systemd/system/docker.service.d state=directory' {target_group}\n", "!ansible -b -m copy -a 'src={temp_dir}/tmpdir.conf dest=/etc/systemd/system/docker.service.d/tmpdir.conf' {target_group}\n", "\n", "!ansible -b -m file -a 'path={docker_tmp} state=directory' {target_group}\n", "!ansible -b -a 'systemctl daemon-reload' {target_group}\n", "!ansible -b -m service -a 'name=docker state=restarted' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b8f6e-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9072-c345-11e7-8310-0242ac120002", "previous": "988b8e60-c345-11e7-8310-0242ac120002" } }, "source": [ "念のため、Docker Engineにより /mnt/docker, /mnt/docker-tmp にファイルが作成されていることを確認する。" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:44:02.088751", "start_time": "2016-05-13T07:44:00.927141" }, "lc_cell_meme": { "current": "988b9072-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9180-c345-11e7-8310-0242ac120002", "previous": "988b8f6e-c345-11e7-8310-0242ac120002" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32m/mnt/docker:\u001b[0m\r\n", "\u001b[0;32mtotal 0\u001b[0m\r\n", "\u001b[0;32mdrwx--x--x 11 root root 139 Nov 7 07:50 .\u001b[0m\r\n", "\u001b[0;32mdrwxr-xr-x 4 root root 38 Nov 7 07:50 ..\u001b[0m\r\n", "\u001b[0;32mdrwx------ 2 root root 24 Nov 7 07:50 builder\u001b[0m\r\n", "\u001b[0;32mdrwx------ 2 root root 6 Nov 7 07:50 containers\u001b[0m\r\n", "\u001b[0;32mdrwx------ 3 root root 22 Nov 7 07:50 image\u001b[0m\r\n", "\u001b[0;32mdrwxr-x--- 3 root root 19 Nov 7 07:50 network\u001b[0m\r\n", "\u001b[0;32mdrwx------ 3 root root 40 Nov 7 07:50 overlay2\u001b[0m\r\n", "\u001b[0;32mdrwx------ 4 root root 32 Nov 7 07:50 plugins\u001b[0m\r\n", "\u001b[0;32mdrwx------ 2 root root 6 Nov 7 07:50 swarm\u001b[0m\r\n", "\u001b[0;32mdrwx------ 2 root root 6 Nov 7 07:50 trust\u001b[0m\r\n", "\u001b[0;32mdrwx------ 2 root root 25 Nov 7 07:50 volumes\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n", "\u001b[0;32m/mnt/docker-tmp:\u001b[0m\r\n", "\u001b[0;32mtotal 0\u001b[0m\r\n", "\u001b[0;32mdrwxr-xr-x 2 root root 6 Nov 7 07:50 .\u001b[0m\r\n", "\u001b[0;32mdrwxr-xr-x 4 root root 38 Nov 7 07:50 ..\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -a 'ls -la {docker_tmp} {docker_base}' {target_group}" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "lc_cell_meme": { "current": "988b9180-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9284-c345-11e7-8310-0242ac120002", "previous": "988b9072-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32m● docker.service - Docker Application Container Engine\u001b[0m\r\n", "\u001b[0;32m Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)\u001b[0m\r\n", "\u001b[0;32m Drop-In: /etc/systemd/system/docker.service.d\u001b[0m\r\n", "\u001b[0;32m └─tmpdir.conf\u001b[0m\r\n", "\u001b[0;32m Active: active (running) since Tue 2017-11-07 07:50:08 JST; 12s ago\u001b[0m\r\n", "\u001b[0;32m Docs: https://docs.docker.com\u001b[0m\r\n", "\u001b[0;32m Main PID: 5046 (dockerd)\u001b[0m\r\n", "\u001b[0;32m Tasks: 23\u001b[0m\r\n", "\u001b[0;32m Memory: 23.1M\u001b[0m\r\n", "\u001b[0;32m CPU: 207ms\u001b[0m\r\n", "\u001b[0;32m CGroup: /system.slice/docker.service\u001b[0m\r\n", "\u001b[0;32m ├─5046 /usr/bin/dockerd -H fd://\u001b[0m\r\n", "\u001b[0;32m └─5057 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n", "\u001b[0;32mNov 07 07:50:08 ubuntu dockerd[5046]: time=\"2017-11-07T07:50:08.040890717+09:00\" level=warning msg=\"Your kernel does not support swap memory limit\"\u001b[0m\r\n", "\u001b[0;32mNov 07 07:50:08 ubuntu dockerd[5046]: time=\"2017-11-07T07:50:08.041074723+09:00\" level=warning msg=\"Your kernel does not support cgroup rt period\"\u001b[0m\r\n", "\u001b[0;32mNov 07 07:50:08 ubuntu dockerd[5046]: time=\"2017-11-07T07:50:08.041269724+09:00\" level=warning msg=\"Your kernel does not support cgroup rt runtime\"\u001b[0m\r\n", "\u001b[0;32mNov 07 07:50:08 ubuntu dockerd[5046]: time=\"2017-11-07T07:50:08.041789087+09:00\" level=info msg=\"Loading containers: start.\"\u001b[0m\r\n", "\u001b[0;32mNov 07 07:50:08 ubuntu dockerd[5046]: time=\"2017-11-07T07:50:08.103748312+09:00\" level=info msg=\"Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address\"\u001b[0m\r\n", "\u001b[0;32mNov 07 07:50:08 ubuntu dockerd[5046]: time=\"2017-11-07T07:50:08.134515798+09:00\" level=info msg=\"Loading containers: done.\"\u001b[0m\r\n", "\u001b[0;32mNov 07 07:50:08 ubuntu dockerd[5046]: time=\"2017-11-07T07:50:08.164633962+09:00\" level=info msg=\"Docker daemon\" commit=afdb6d4 graphdriver(s)=overlay2 version=17.09.0-ce\u001b[0m\r\n", "\u001b[0;32mNov 07 07:50:08 ubuntu dockerd[5046]: time=\"2017-11-07T07:50:08.164936349+09:00\" level=info msg=\"Daemon has completed initialization\"\u001b[0m\r\n", "\u001b[0;32mNov 07 07:50:08 ubuntu systemd[1]: Started Docker Application Container Engine.\u001b[0m\r\n", "\u001b[0;32mNov 07 07:50:08 ubuntu dockerd[5046]: time=\"2017-11-07T07:50:08.174620764+09:00\" level=info msg=\"API listen on /var/run/docker.sock\"\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -a 'systemctl status docker' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b9284-c345-11e7-8310-0242ac120002", "history": [], "next": "988b93ec-c345-11e7-8310-0242ac120002", "previous": "988b9180-c345-11e7-8310-0242ac120002" } }, "source": [ "Docker Engineのバージョンを確認する。" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:44:06.276956", "start_time": "2016-05-13T07:44:05.055621" }, "lc_cell_meme": { "current": "988b93ec-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9504-c345-11e7-8310-0242ac120002", "previous": "988b9284-c345-11e7-8310-0242ac120002" }, "pinned_outputs": [ { "execution_count": 23, "outputs": [ { "name": "stdout", "output_type": "stream", "text": "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n\u001b[0;32mClient:\u001b[0m\r\n\u001b[0;32m Version: 17.09.0-ce\u001b[0m\r\n\u001b[0;32m API version: 1.32\u001b[0m\r\n\u001b[0;32m Go version: go1.8.3\u001b[0m\r\n\u001b[0;32m Git commit: afdb6d4\u001b[0m\r\n\u001b[0;32m Built: Tue Sep 26 22:42:18 2017\u001b[0m\r\n\u001b[0;32m OS/Arch: linux/amd64\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n\u001b[0;32mServer:\u001b[0m\r\n\u001b[0;32m Version: 17.09.0-ce\u001b[0m\r\n\u001b[0;32m API version: 1.32 (minimum version 1.12)\u001b[0m\r\n\u001b[0;32m Go version: go1.8.3\u001b[0m\r\n\u001b[0;32m Git commit: afdb6d4\u001b[0m\r\n\u001b[0;32m Built: Tue Sep 26 22:40:56 2017\u001b[0m\r\n\u001b[0;32m OS/Arch: linux/amd64\u001b[0m\r\n\u001b[0;32m Experimental: false\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n" } ] } ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32mClient:\u001b[0m\r\n", "\u001b[0;32m Version: 17.09.0-ce\u001b[0m\r\n", "\u001b[0;32m API version: 1.32\u001b[0m\r\n", "\u001b[0;32m Go version: go1.8.3\u001b[0m\r\n", "\u001b[0;32m Git commit: afdb6d4\u001b[0m\r\n", "\u001b[0;32m Built: Tue Sep 26 22:42:18 2017\u001b[0m\r\n", "\u001b[0;32m OS/Arch: linux/amd64\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n", "\u001b[0;32mServer:\u001b[0m\r\n", "\u001b[0;32m Version: 17.09.0-ce\u001b[0m\r\n", "\u001b[0;32m API version: 1.32 (minimum version 1.12)\u001b[0m\r\n", "\u001b[0;32m Go version: go1.8.3\u001b[0m\r\n", "\u001b[0;32m Git commit: afdb6d4\u001b[0m\r\n", "\u001b[0;32m Built: Tue Sep 26 22:40:56 2017\u001b[0m\r\n", "\u001b[0;32m OS/Arch: linux/amd64\u001b[0m\r\n", "\u001b[0;32m Experimental: false\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -a 'docker version' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b9504-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9612-c345-11e7-8310-0242ac120002", "previous": "988b93ec-c345-11e7-8310-0242ac120002" } }, "source": [ "Docker Engineの設定状況も確認しておく。" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "lc_cell_meme": { "current": "988b9612-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9720-c345-11e7-8310-0242ac120002", "previous": "988b9504-c345-11e7-8310-0242ac120002" }, "pinned_outputs": [ { "execution_count": 24, "outputs": [ { "name": "stdout", "output_type": "stream", "text": "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n\u001b[0;32mContainers: 0\u001b[0m\r\n\u001b[0;32m Running: 0\u001b[0m\r\n\u001b[0;32m Paused: 0\u001b[0m\r\n\u001b[0;32m Stopped: 0\u001b[0m\r\n\u001b[0;32mImages: 0\u001b[0m\r\n\u001b[0;32mServer Version: 17.09.0-ce\u001b[0m\r\n\u001b[0;32mStorage Driver: overlay2\u001b[0m\r\n\u001b[0;32m Backing Filesystem: xfs\u001b[0m\r\n\u001b[0;32m Supports d_type: true\u001b[0m\r\n\u001b[0;32m Native Overlay Diff: true\u001b[0m\r\n\u001b[0;32mLogging Driver: json-file\u001b[0m\r\n\u001b[0;32mCgroup Driver: cgroupfs\u001b[0m\r\n\u001b[0;32mPlugins:\u001b[0m\r\n\u001b[0;32m Volume: local\u001b[0m\r\n\u001b[0;32m Network: bridge host macvlan null overlay\u001b[0m\r\n\u001b[0;32m Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog\u001b[0m\r\n\u001b[0;32mSwarm: inactive\u001b[0m\r\n\u001b[0;32mRuntimes: runc\u001b[0m\r\n\u001b[0;32mDefault Runtime: runc\u001b[0m\r\n\u001b[0;32mInit Binary: docker-init\u001b[0m\r\n\u001b[0;32mcontainerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0\u001b[0m\r\n\u001b[0;32mrunc version: 3f2f8b84a77f73d38244dd690525642a72156c64\u001b[0m\r\n\u001b[0;32minit version: 949e6fa\u001b[0m\r\n\u001b[0;32mSecurity Options:\u001b[0m\r\n\u001b[0;32m apparmor\u001b[0m\r\n\u001b[0;32m seccomp\u001b[0m\r\n\u001b[0;32m Profile: default\u001b[0m\r\n\u001b[0;32mKernel Version: 4.4.0-97-generic\u001b[0m\r\n\u001b[0;32mOperating System: Ubuntu 16.04.3 LTS\u001b[0m\r\n\u001b[0;32mOSType: linux\u001b[0m\r\n\u001b[0;32mArchitecture: x86_64\u001b[0m\r\n\u001b[0;32mCPUs: 6\u001b[0m\r\n\u001b[0;32mTotal Memory: 23.55GiB\u001b[0m\r\n\u001b[0;32mName: ubuntu\u001b[0m\r\n\u001b[0;32mID: J5HS:7GY5:4GOE:7DYW:S3U3:UOLS:YDCL:SJCW:DVR2:KRW4:O3FA:NV5P\u001b[0m\r\n\u001b[0;32mDocker Root Dir: /mnt/docker\u001b[0m\r\n\u001b[0;32mDebug Mode (client): false\u001b[0m\r\n\u001b[0;32mDebug Mode (server): false\u001b[0m\r\n\u001b[0;32mRegistry: https://index.docker.io/v1/\u001b[0m\r\n\u001b[0;32mExperimental: false\u001b[0m\r\n\u001b[0;32mInsecure Registries:\u001b[0m\r\n\u001b[0;32m 127.0.0.0/8\u001b[0m\r\n\u001b[0;32mLive Restore Enabled: falseWARNING: No swap limit support\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n" } ] } ], "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32mContainers: 0\u001b[0m\r\n", "\u001b[0;32m Running: 0\u001b[0m\r\n", "\u001b[0;32m Paused: 0\u001b[0m\r\n", "\u001b[0;32m Stopped: 0\u001b[0m\r\n", "\u001b[0;32mImages: 0\u001b[0m\r\n", "\u001b[0;32mServer Version: 17.09.0-ce\u001b[0m\r\n", "\u001b[0;32mStorage Driver: overlay2\u001b[0m\r\n", "\u001b[0;32m Backing Filesystem: xfs\u001b[0m\r\n", "\u001b[0;32m Supports d_type: true\u001b[0m\r\n", "\u001b[0;32m Native Overlay Diff: true\u001b[0m\r\n", "\u001b[0;32mLogging Driver: json-file\u001b[0m\r\n", "\u001b[0;32mCgroup Driver: cgroupfs\u001b[0m\r\n", "\u001b[0;32mPlugins:\u001b[0m\r\n", "\u001b[0;32m Volume: local\u001b[0m\r\n", "\u001b[0;32m Network: bridge host macvlan null overlay\u001b[0m\r\n", "\u001b[0;32m Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog\u001b[0m\r\n", "\u001b[0;32mSwarm: inactive\u001b[0m\r\n", "\u001b[0;32mRuntimes: runc\u001b[0m\r\n", "\u001b[0;32mDefault Runtime: runc\u001b[0m\r\n", "\u001b[0;32mInit Binary: docker-init\u001b[0m\r\n", "\u001b[0;32mcontainerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0\u001b[0m\r\n", "\u001b[0;32mrunc version: 3f2f8b84a77f73d38244dd690525642a72156c64\u001b[0m\r\n", "\u001b[0;32minit version: 949e6fa\u001b[0m\r\n", "\u001b[0;32mSecurity Options:\u001b[0m\r\n", "\u001b[0;32m apparmor\u001b[0m\r\n", "\u001b[0;32m seccomp\u001b[0m\r\n", "\u001b[0;32m Profile: default\u001b[0m\r\n", "\u001b[0;32mKernel Version: 4.4.0-97-generic\u001b[0m\r\n", "\u001b[0;32mOperating System: Ubuntu 16.04.3 LTS\u001b[0m\r\n", "\u001b[0;32mOSType: linux\u001b[0m\r\n", "\u001b[0;32mArchitecture: x86_64\u001b[0m\r\n", "\u001b[0;32mCPUs: 6\u001b[0m\r\n", "\u001b[0;32mTotal Memory: 23.55GiB\u001b[0m\r\n", "\u001b[0;32mName: ubuntu\u001b[0m\r\n", "\u001b[0;32mID: J5HS:7GY5:4GOE:7DYW:S3U3:UOLS:YDCL:SJCW:DVR2:KRW4:O3FA:NV5P\u001b[0m\r\n", "\u001b[0;32mDocker Root Dir: /mnt/docker\u001b[0m\r\n", "\u001b[0;32mDebug Mode (client): false\u001b[0m\r\n", "\u001b[0;32mDebug Mode (server): false\u001b[0m\r\n", "\u001b[0;32mRegistry: https://index.docker.io/v1/\u001b[0m\r\n", "\u001b[0;32mExperimental: false\u001b[0m\r\n", "\u001b[0;32mInsecure Registries:\u001b[0m\r\n", "\u001b[0;32m 127.0.0.0/8\u001b[0m\r\n", "\u001b[0;32mLive Restore Enabled: falseWARNING: No swap limit support\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -a 'docker info' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b9720-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9824-c345-11e7-8310-0242ac120002", "previous": "988b9612-c345-11e7-8310-0242ac120002" } }, "source": [ "# Docker Composeのインストール\n", "\n", "*2017/11/7時点* では、docker-composeのバージョンは1.17.0となる。" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:44:50.145188", "start_time": "2016-05-13T07:44:41.669010" }, "lc_cell_meme": { "current": "988b9824-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9928-c345-11e7-8310-0242ac120002", "previous": "988b9720-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1;35m [WARNING]: Consider using get_url or uri module rather than running curl\u001b[0m\r\n", "\u001b[1;35m\u001b[0m\r\n", "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32m % Total % Received % Xferd Average Speed Time Time Time Current\u001b[0m\r\n", "\u001b[0;32m Dload Upload Total Spent Left Speed\u001b[0m\r\n", "\u001b[0;32m\r", " 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\r", " 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\r", "100 617 0 617 0 0 702 0 --:--:-- --:--:-- --:--:-- 701\u001b[0m\r\n", "\u001b[0;32m\r", " 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0\r", " 0 8649k 0 33322 0 0 15100 0 0:09:46 0:00:02 0:09:44 36062\r", " 1 8649k 1 169k 0 0 53443 0 0:02:45 0:00:03 0:02:42 88318\r", " 6 8649k 6 559k 0 0 134k 0 0:01:04 0:00:04 0:01:00 194k\r", " 14 8649k 14 1256k 0 0 243k 0 0:00:35 0:00:05 0:00:30 324k\r", " 35 8649k 35 3059k 0 0 493k 0 0:00:17 0:00:06 0:00:11 622k\r", " 76 8649k 76 6583k 0 0 921k 0 0:00:09 0:00:07 0:00:02 1326k\r", "100 8649k 100 8649k 0 0 1128k 0 0:00:07 0:00:07 --:--:-- 1920k\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -m shell \\\n", " -a 'curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` \\\n", " > /usr/local/bin/docker-compose' {target_group}" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:44:51.378884", "start_time": "2016-05-13T07:44:50.149976" }, "lc_cell_meme": { "current": "988b9928-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9a36-c345-11e7-8310-0242ac120002", "previous": "988b9824-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1;35m [WARNING]: Consider using file module with mode rather than running chmod\u001b[0m\r\n", "\u001b[1;35m\u001b[0m\r\n", "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -a 'chmod +x /usr/local/bin/docker-compose' {target_group}" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:44:53.135491", "start_time": "2016-05-13T07:44:51.384906" }, "lc_cell_meme": { "current": "988b9a36-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9b44-c345-11e7-8310-0242ac120002", "previous": "988b9928-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32mdocker-compose version 1.17.0, build ac53b73\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -a 'docker-compose --version' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b9b44-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9c48-c345-11e7-8310-0242ac120002", "previous": "988b9a36-c345-11e7-8310-0242ac120002" } }, "source": [ "# Docker Engineの動作確認\n", "\n", "まずはお試しで、hello-worldイメージを実行してみる。`Hello from Docker`のようなメッセージが表示されたらOK。" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:44:58.436640", "start_time": "2016-05-13T07:44:53.139843" }, "lc_cell_meme": { "current": "988b9c48-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9d56-c345-11e7-8310-0242ac120002", "previous": "988b9b44-c345-11e7-8310-0242ac120002" }, "pinned_outputs": [ { "execution_count": 28, "outputs": [ { "name": "stdout", "output_type": "stream", "text": "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n\u001b[0;32mHello from Docker!\u001b[0m\r\n\u001b[0;32mThis message shows that your installation appears to be working correctly.\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n\u001b[0;32mTo generate this message, Docker took the following steps:\u001b[0m\r\n\u001b[0;32m 1. The Docker client contacted the Docker daemon.\u001b[0m\r\n\u001b[0;32m 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub.\u001b[0m\r\n\u001b[0;32m 3. The Docker daemon created a new container from that image which runs the\u001b[0m\r\n\u001b[0;32m executable that produces the output you are currently reading.\u001b[0m\r\n\u001b[0;32m 4. The Docker daemon streamed that output to the Docker client, which sent it\u001b[0m\r\n\u001b[0;32m to your terminal.\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n\u001b[0;32mTo try something more ambitious, you can run an Ubuntu container with:\u001b[0m\r\n\u001b[0;32m $ docker run -it ubuntu bash\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n\u001b[0;32mShare images, automate workflows, and more with a free Docker ID:\u001b[0m\r\n\u001b[0;32m https://cloud.docker.com/\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n\u001b[0;32mFor more examples and ideas, visit:\u001b[0m\r\n\u001b[0;32m https://docs.docker.com/engine/userguide/Unable to find image 'hello-world:latest' locally\u001b[0m\r\n\u001b[0;32mlatest: Pulling from library/hello-world\u001b[0m\r\n\u001b[0;32m9a0669468bf7: Pulling fs layer\u001b[0m\r\n\u001b[0;32m9a0669468bf7: Download complete\u001b[0m\r\n\u001b[0;32m9a0669468bf7: Pull complete\u001b[0m\r\n\u001b[0;32mDigest: sha256:0e06ef5e1945a718b02a8c319e15bae44f47039005530bc617a5d071190ed3fc\u001b[0m\r\n\u001b[0;32mStatus: Downloaded newer image for hello-world:latest\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n" } ] } ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n", "\u001b[0;32mHello from Docker!\u001b[0m\r\n", "\u001b[0;32mThis message shows that your installation appears to be working correctly.\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n", "\u001b[0;32mTo generate this message, Docker took the following steps:\u001b[0m\r\n", "\u001b[0;32m 1. The Docker client contacted the Docker daemon.\u001b[0m\r\n", "\u001b[0;32m 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub.\u001b[0m\r\n", "\u001b[0;32m 3. The Docker daemon created a new container from that image which runs the\u001b[0m\r\n", "\u001b[0;32m executable that produces the output you are currently reading.\u001b[0m\r\n", "\u001b[0;32m 4. The Docker daemon streamed that output to the Docker client, which sent it\u001b[0m\r\n", "\u001b[0;32m to your terminal.\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n", "\u001b[0;32mTo try something more ambitious, you can run an Ubuntu container with:\u001b[0m\r\n", "\u001b[0;32m $ docker run -it ubuntu bash\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n", "\u001b[0;32mShare images, automate workflows, and more with a free Docker ID:\u001b[0m\r\n", "\u001b[0;32m https://cloud.docker.com/\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n", "\u001b[0;32mFor more examples and ideas, visit:\u001b[0m\r\n", "\u001b[0;32m https://docs.docker.com/engine/userguide/Unable to find image 'hello-world:latest' locally\u001b[0m\r\n", "\u001b[0;32mlatest: Pulling from library/hello-world\u001b[0m\r\n", "\u001b[0;32m9a0669468bf7: Pulling fs layer\u001b[0m\r\n", "\u001b[0;32m9a0669468bf7: Download complete\u001b[0m\r\n", "\u001b[0;32m9a0669468bf7: Pull complete\u001b[0m\r\n", "\u001b[0;32mDigest: sha256:0e06ef5e1945a718b02a8c319e15bae44f47039005530bc617a5d071190ed3fc\u001b[0m\r\n", "\u001b[0;32mStatus: Downloaded newer image for hello-world:latest\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -a 'docker run hello-world' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b9d56-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9e5a-c345-11e7-8310-0242ac120002", "previous": "988b9c48-c345-11e7-8310-0242ac120002" } }, "source": [ "Dockerのhello-worldイメージが実行された。OK。" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988b9e5a-c345-11e7-8310-0242ac120002", "history": [], "next": "988b9f68-c345-11e7-8310-0242ac120002", "previous": "988b9d56-c345-11e7-8310-0242ac120002" } }, "source": [ "# Docker Composeの動作確認\n", "\n", "Docker Composeが動作することも確認しておく。\n", "\n", "まずローカルにdocker-compose.ymlファイルを準備。" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "lc_cell_meme": { "current": "988b9f68-c345-11e7-8310-0242ac120002", "history": [], "next": "988ba06c-c345-11e7-8310-0242ac120002", "previous": "988b9e5a-c345-11e7-8310-0242ac120002" } }, "outputs": [], "source": [ "!mkdir -p {temp_dir}/hello-compose/" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "lc_cell_meme": { "current": "988ba06c-c345-11e7-8310-0242ac120002", "history": [], "next": "988ba17a-c345-11e7-8310-0242ac120002", "previous": "988b9f68-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Writing /tmp/tmpkLyFWr/hello-compose/docker-compose.yml\n" ] } ], "source": [ "%%writefile {temp_dir}/hello-compose/docker-compose.yml\n", "version: '2'\n", "services:\n", " test-hello-world:\n", " image: hello-world" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988ba17a-c345-11e7-8310-0242ac120002", "history": [], "next": "988ba288-c345-11e7-8310-0242ac120002", "previous": "988ba06c-c345-11e7-8310-0242ac120002" } }, "source": [ "作成したdocker-compose.ymlを、Bind対象ホストにアップロードする。" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "lc_cell_meme": { "current": "988ba288-c345-11e7-8310-0242ac120002", "history": [], "next": "988ba38c-c345-11e7-8310-0242ac120002", "previous": "988ba17a-c345-11e7-8310-0242ac120002" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;33mXXX.XXX.XXX.66 | SUCCESS => {\u001b[0m\r\n", "\u001b[0;33m \"changed\": true, \u001b[0m\r\n", "\u001b[0;33m \"checksum\": \"19f3b6e911e6461b09d1ddaf5a5f7f8dbc538a6e\", \u001b[0m\r\n", "\u001b[0;33m \"dest\": \"/root/hello-compose/docker-compose.yml\", \u001b[0m\r\n", "\u001b[0;33m \"failed\": false, \u001b[0m\r\n", "\u001b[0;33m \"gid\": 0, \u001b[0m\r\n", "\u001b[0;33m \"group\": \"root\", \u001b[0m\r\n", "\u001b[0;33m \"md5sum\": \"a157d75e4107e5c1aa63441b9ff90758\", \u001b[0m\r\n", "\u001b[0;33m \"mode\": \"0644\", \u001b[0m\r\n", "\u001b[0;33m \"owner\": \"root\", \u001b[0m\r\n", "\u001b[0;33m \"size\": 65, \u001b[0m\r\n", "\u001b[0;33m \"src\": \"/home/ansible/.ansible/tmp/ansible-tmp-1510008665.9-219846645213383/source\", \u001b[0m\r\n", "\u001b[0;33m \"state\": \"file\", \u001b[0m\r\n", "\u001b[0;33m \"uid\": 0\u001b[0m\r\n", "\u001b[0;33m}\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -m copy -a 'src={temp_dir}/hello-compose dest=~' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988ba38c-c345-11e7-8310-0242ac120002", "history": [], "next": "988ba49a-c345-11e7-8310-0242ac120002", "previous": "988ba288-c345-11e7-8310-0242ac120002" } }, "source": [ "実行してみる。`Hello from Docker`のようなメッセージが表示されたらOK。" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "lc_cell_meme": { "current": "988ba49a-c345-11e7-8310-0242ac120002", "history": [], "next": "988ba5a8-c345-11e7-8310-0242ac120002", "previous": "988ba38c-c345-11e7-8310-0242ac120002" }, "pinned_outputs": [ { "execution_count": 32, "outputs": [ { "name": "stdout", "output_type": "stream", "text": "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n\u001b[0;32mAttaching to hellocompose_test-hello-world_1\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m \u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m Hello from Docker!\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m This message shows that your installation appears to be working correctly.\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m \u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m To generate this message, Docker took the following steps:\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m 1. The Docker client contacted the Docker daemon.\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub.\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m 3. The Docker daemon created a new container from that image which runs the\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m executable that produces the output you are currently reading.\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m 4. The Docker daemon streamed that output to the Docker client, which sent it\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m to your terminal.\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m \u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m To try something more ambitious, you can run an Ubuntu container with:\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m $ docker run -it ubuntu bash\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m \u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m Share images, automate workflows, and more with a free Docker ID:\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m https://cloud.docker.com/\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m \u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m For more examples and ideas, visit:\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m https://docs.docker.com/engine/userguide/\u001b[0m\r\n\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m \u001b[0m\r\n\u001b[0;32m\u001b[36mhellocompose_test-hello-world_1 exited with code 0\u001b[0m\r\n\u001b[0;32m\u001b[0mCreating network \"hellocompose_default\" with the default driver\u001b[0m\r\n\u001b[0;32mCreating hellocompose_test-hello-world_1 ... \r\u001b[0m\r\n\u001b[0;32mCreating hellocompose_test-hello-world_1\u001b[0m\r\n\u001b[0;32m\u001b[1A\u001b[2K\rCreating hellocompose_test-hello-world_1 ... \u001b[32mdone\u001b[0m\r\u001b[1B\u001b[0m\r\n\u001b[0;32m\u001b[0m\r\n" } ] } ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;32mXXX.XXX.XXX.66 | SUCCESS | rc=0 >>\u001b[0m\r\n", "\u001b[0;32mAttaching to hellocompose_test-hello-world_1\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m \u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m Hello from Docker!\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m This message shows that your installation appears to be working correctly.\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m \u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m To generate this message, Docker took the following steps:\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m 1. The Docker client contacted the Docker daemon.\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub.\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m 3. The Docker daemon created a new container from that image which runs the\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m executable that produces the output you are currently reading.\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m 4. The Docker daemon streamed that output to the Docker client, which sent it\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m to your terminal.\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m \u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m To try something more ambitious, you can run an Ubuntu container with:\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m $ docker run -it ubuntu bash\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m \u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m Share images, automate workflows, and more with a free Docker ID:\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m https://cloud.docker.com/\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m \u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m For more examples and ideas, visit:\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m https://docs.docker.com/engine/userguide/\u001b[0m\r\n", "\u001b[0;32m\u001b[36mtest-hello-world_1 |\u001b[0m \u001b[0m\r\n", "\u001b[0;32m\u001b[36mhellocompose_test-hello-world_1 exited with code 0\u001b[0m\r\n", "\u001b[0;32m\u001b[0mCreating network \"hellocompose_default\" with the default driver\u001b[0m\r\n", "\u001b[0;32mCreating hellocompose_test-hello-world_1 ... \r", "\u001b[0m\r\n", "\u001b[0;32mCreating hellocompose_test-hello-world_1\u001b[0m\r\n", "\u001b[0;32m\u001b[1A\u001b[2K\r", "Creating hellocompose_test-hello-world_1 ... \u001b[32mdone\u001b[0m\r", "\u001b[1B\u001b[0m\r\n", "\u001b[0;32m\u001b[0m\r\n" ] } ], "source": [ "!ansible -b -a 'chdir=~/hello-compose docker-compose up' {target_group}" ] }, { "cell_type": "markdown", "metadata": { "lc_cell_meme": { "current": "988ba5a8-c345-11e7-8310-0242ac120002", "history": [], "next": "988ba6b6-c345-11e7-8310-0242ac120002", "previous": "988ba49a-c345-11e7-8310-0242ac120002" } }, "source": [ "# 後始末\n", "\n", "一時ディレクトリを削除する。" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "ExecuteTime": { "end_time": "2016-05-13T07:49:11.297336", "start_time": "2016-05-13T07:49:11.128387" }, "lc_cell_meme": { "current": "988ba6b6-c345-11e7-8310-0242ac120002", "history": [], "next": "988ba7ba-c345-11e7-8310-0242ac120002", "previous": "988ba5a8-c345-11e7-8310-0242ac120002" } }, "outputs": [], "source": [ "!rm -fr {temp_dir}" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "lc_cell_meme": { "current": "988ba7ba-c345-11e7-8310-0242ac120002", "history": [], "next": null, "previous": "988ba6b6-c345-11e7-8310-0242ac120002" } }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" }, "lc_notebook_meme": { "current": "988b6296-c345-11e7-8310-0242ac120002", "history": [], "root_cells": [ "988b6494-c345-11e7-8310-0242ac120002", "988b65e8-c345-11e7-8310-0242ac120002", "988b6714-c345-11e7-8310-0242ac120002", "988b6836-c345-11e7-8310-0242ac120002", "988b6944-c345-11e7-8310-0242ac120002", "988b6a5c-c345-11e7-8310-0242ac120002", "988b6b74-c345-11e7-8310-0242ac120002", "988b6cfa-c345-11e7-8310-0242ac120002", "988b6e12-c345-11e7-8310-0242ac120002", "988b6f20-c345-11e7-8310-0242ac120002", "988b7038-c345-11e7-8310-0242ac120002", "988b7146-c345-11e7-8310-0242ac120002", "988b7254-c345-11e7-8310-0242ac120002", "988b7362-c345-11e7-8310-0242ac120002", "988b7466-c345-11e7-8310-0242ac120002", "988b7574-c345-11e7-8310-0242ac120002", "988b7682-c345-11e7-8310-0242ac120002", "988b7790-c345-11e7-8310-0242ac120002", "988b789e-c345-11e7-8310-0242ac120002", "988b79a2-c345-11e7-8310-0242ac120002", "988b7ab0-c345-11e7-8310-0242ac120002", "988b7bb4-c345-11e7-8310-0242ac120002", "988b7cc2-c345-11e7-8310-0242ac120002", "988b7dd0-c345-11e7-8310-0242ac120002", "988b7ed4-c345-11e7-8310-0242ac120002", "988b7fe2-c345-11e7-8310-0242ac120002", "988b80e6-c345-11e7-8310-0242ac120002", "988b81f4-c345-11e7-8310-0242ac120002", "988b8302-c345-11e7-8310-0242ac120002", "988b8406-c345-11e7-8310-0242ac120002", "988b850a-c345-11e7-8310-0242ac120002", "988b8618-c345-11e7-8310-0242ac120002", "988b8726-c345-11e7-8310-0242ac120002", "988b8834-c345-11e7-8310-0242ac120002", "988b8938-c345-11e7-8310-0242ac120002", "988b8a46-c345-11e7-8310-0242ac120002", "988b8b4a-c345-11e7-8310-0242ac120002", "988b8c4e-c345-11e7-8310-0242ac120002", "988b8d5c-c345-11e7-8310-0242ac120002", "988b8e60-c345-11e7-8310-0242ac120002", "988b8f6e-c345-11e7-8310-0242ac120002", "988b9072-c345-11e7-8310-0242ac120002", "988b9180-c345-11e7-8310-0242ac120002", "988b9284-c345-11e7-8310-0242ac120002", "988b93ec-c345-11e7-8310-0242ac120002", "988b9504-c345-11e7-8310-0242ac120002", "988b9612-c345-11e7-8310-0242ac120002", "988b9720-c345-11e7-8310-0242ac120002", "988b9824-c345-11e7-8310-0242ac120002", "988b9928-c345-11e7-8310-0242ac120002", "988b9a36-c345-11e7-8310-0242ac120002", "988b9b44-c345-11e7-8310-0242ac120002", "988b9c48-c345-11e7-8310-0242ac120002", "988b9d56-c345-11e7-8310-0242ac120002", "988b9e5a-c345-11e7-8310-0242ac120002", "988b9f68-c345-11e7-8310-0242ac120002", "988ba06c-c345-11e7-8310-0242ac120002", "988ba17a-c345-11e7-8310-0242ac120002", "988ba288-c345-11e7-8310-0242ac120002", "988ba38c-c345-11e7-8310-0242ac120002", "988ba49a-c345-11e7-8310-0242ac120002", "988ba5a8-c345-11e7-8310-0242ac120002", "988ba6b6-c345-11e7-8310-0242ac120002", "988ba7ba-c345-11e7-8310-0242ac120002" ] }, "toc": { "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "toc_cell": false, "toc_position": {}, "toc_section_display": "block", "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 1 }