私はVagrantとある程度のローカルのVMを使って、最小のcentos VMを提供しています。 VMはすべてDocker 1.12.xを実行しています。私は現在、自動的にswarmモードのクラスタを作成しています。目的はvagrant up
であり、CLIが復帰すると、クラスタが稼働しています。swarmモードを設定するDocker swarm with Vagrant
問題ボックスの1つにdocker swarm init --advertise-addr <my init swarm mgr>
を実行できますが、マネージャとワーカーノードのトークンをこのボックスから取得し、後で設定したVMに注入する必要があります。
私はRubyをプログラミングすることはできません。回避することができれば、Docker Remote APIで始めるのは本当にむしろ始まっていません。
私はテスト用のVMセットアップからゲストIDの出力をVagrantfileの変数に割り当てようとしましたが、私のRubyはスクラッチではありません。
ローカルでVMをプロビジョニングするときに、Vagrantを使用してswarmモードのクラスタを作成するにはどうすればよいのでしょうか。
編集:ちょうどファイルの形でトークンを抽出し、それを関連するマシンにコピーするのに少なくとも使用できるvagrant scpを見ました。私はプラグインするよりも純粋なものを保つことを望んでいました。そして、より多くの悪影響コマンドを実行するためにRubyから砲撃するのを避けましたが(それを行う良い方法はありますか?)、少なくとも迷惑行為の可能性のあるローカルを使用します。
これはSwarmモードを使用しないので、この使用例の良い例ではありません。 OPに関しては、シェルスクリプトを使って、あなたがする必要があることを実行するために(トークンをつかまえます(トークンをつかまえてトークンを取得し、トークンを取得してからトークンを取得するなど)ことができます。 ..他の人に。 – johnharris85
まあ、私はそれが正しく見えたと思っていたのでうれしく思います。しかし、スクリプトを使ってゲストに 'docker swarm join-token -q manager'を実行しても動作しないと思いますコマンドがinit swarm mgr上で実行され、返されたトークンがゲスト上にトラップされるため、迷惑メールホストは、Vagrantファイルに定義されている次のマシンにそれを渡すことができません。それを提供することができ、その例はありますか?ありがとう – volvox