Edited at

Rancherに追加したホストをdocker-machineにインポート

More than 1 year has passed since last update.


概要

Rancherでマシンドライバーを使って追加したホストをdocker-machineにインポートする方法です。


手順

インポートは以下の手順で行います。


  • 1) Rancherサーバからdocker-machineで使うファイル一式(マシン設定)をダウンロード

  • 2) ローカルマシン上の所定のディレクトリ配下に展開

  • 3) docker-machineコマンドに-sオプションを指定して起動


なお、今回は解説しませんが、ダウンロードしたマシン設定ファイル(config.json)の中のパスを書き換えることで任意のディレクトリを使用してインポートする方法もあります。



前準備

以下はあらかじめ準備しておいてください。


  • 手元のマシンにdocker-machineコマンドをインストール

  • サードパーティ製のマシンドライバーを使う場合はインストール

    (例えばさくらのクラウドの場合はこちらをインストール)

  • docker-machine用の設定ファイルを格納するディレクトリ(/var/lib/cattle/machine/machines)を作成しておく

$ mkdir -p /var/lib/cattle/machine/machines


1) Rancherサーバからdocker-machineで使うファイル一式をダウンロード

Rancherサーバでホスト一覧画面を表示し、該当ホストのマシン設定をダウンロードします。


「マシン設定」には各種証明書や秘密鍵、docker-machineでのマシンごとの設定ファイル(config.json)が含まれています。


ここでは「sakura-test-01」という名前のホストを対象とします。


ホストの右上のボタンからメニューを表示し、「マシン設定」をクリックします。

01.png

02.png

「ホスト名.tar」というファイルがダウンロードされます。(この例ではsakura-test-01.tar)


2) ローカルマシン上に展開

ダウンロードしたファイルをローカルファイル上の所定の位置に展開します。

#/var/lib/cattle/machine/machines配下に展開

$ tar xvf sakura-test-01.tar -C /var/lib/cattle/machine/machines/

展開されたディレクトリ名を控えておきましょう。

03.png


3) docker-machineコマンドに-sオプションを指定して起動

ダウンロードしたマシン設定ファイルを利用するために、docker-machineコマンドに-sオプションを指定します。

-sオプション、または--store-pathオプションは、docker-machineで利用する証明書関連ファイルやマシンの設定ファイル(json)を格納するディレクトリを指定するものです。


今回は先ほど2)で展開したディレクトリを指定すればOKです。

なお、-sオプションは環境変数MACHINE_STORAGE_PATHでも指定可能です。

#ダウンロードしたマシン設定ファイル一式を利用してdocker-machine起動

$ docker-machine -s /var/lib/cattle/machine/machines/展開したディレクトリ ls

#または環境変数で-sオプションを指定
$export MACHINE_STORAGE_PATH=/var/lib/cattle/machine/machines/展開したディレクトリ
$ docker-machine ls


実行例(docker-machine ls)

04.png

あとは通常のdocker-machineのホストと同様に扱えるはずです。

例えば、dockerコマンドの対象ホストを変更する場合は以下のようにeval $(docker-machine env)を実行します。

$ eval $(docker-machine -s /var/lib/cattle/machine/machines/展開したディレクトリ env sakura-test-01)

この状態でdocker psを実行するとRancher関連のコンテナが表示されるはずです。


実行例(Rancherホスト上のdockerに接続)

05.png

以上でインポート完了です。

Enjoy!!