Vagrant - マルチノード仮想マシンクラスタの構築

Vagrant - マルチノード仮想マシンクラスタの構築

I. はじめに

プログラムを開発する場合、使用するオペレーティング環境は通常、自分のコンピューター、Windows、Mac、または Linux オペレーティング システムであり、ほとんどの場合、ソフトウェアを正常に実行できます。ただし、最近のアプリケーションの多くは分散されています。実稼働環境では、複数のノードがクラスターを形成し、各ノードは異なるマシンにデプロイされます。この場合、ローカル スタンドアロン デプロイメントでは、運用環境のクラスター環境をシミュレートできません。クラスターをシミュレートするためだけに複数のホストを購入してプライベート クラウドを展開することはできません。コストが高すぎるためです。そのため、仮想マシンを使用するのがコスト効率の良い選択であり、仮想マシンの中でも Vagrant + VitualBox の組み合わせが最も便利であると考えます。

[[275794]]

2. スタンドアロン仮想マシンの構築

1. Vagrant + VitualBoxをダウンロードしてインストールする

Vagrant ダウンロード リンク

  1. https://www.vagrantup.com/downloads.html

VitualBox ダウンロードリンク

  1. https://www.virtualbox.org/wiki/ダウンロード

ダウンロードとインストールが完了したら、ターミナルで vagrant -v コマンドを実行します。次のようなプロンプトが表示された場合、インストールは成功したことを意味します。

  1. ヴァグラント 2.2.3

2. ボックスをインストールする

Vagrant における Box の概念は、オペレーティング システムに相当します。 Vagrant を使用して仮想マシンを構築する前に、Vagrant にシステム パッケージを追加する必要があります。さまざまなバージョンのオペレーティング システムについては、Vagrant Cloud の公式 Web サイトをご覧ください。 Ubuntu 16.04 LTS バージョンのオペレーティング システムを例にとると、対応するものは ubuntu/xenial64 という名前のボックスです。

2.1 インストール方法1

次のコマンドを実行すると、このボックスを直接追加できます。コマンドを実行すると、Vagrant はリモート ウェアハウスから対応する Box をダウンロードします。

  1. ~ vagrant boxubuntu/xenial64を追加

2.2 インストール方法2

上記の手順は問題ないように見えますが、実際に実行すると、Box のダウンロード速度が非常に遅く、ダウンロードに数日かかる場合もあるため、ここでは別のインストール方法が必要になります。

まず、次のコマンドを実行します

  1. ~ vagrant boxubuntu/xenial64を追加

実行後、ターミナルは次のような情報を出力します。

  1. ~ vagrant boxubuntu/xenial64を追加
  2. /opt/vagrant/embedded/gems/2.2.3/gems/vagrant-2.2.3/lib/vagrant/util/which.rb:37: 警告: PATH内の安全でない書き込み可能ディレクトリ /Users/meetmax/test 、モード 040777
  3. ==> ボックス:ボックス'ubuntu/xenial64'メタデータを読み込んでいます 
  4. ボックス: URL: https://vagrantcloud.com/ubuntu/xenial64
  5. ==> ボックス:プロバイダー: virtualboxボックス'ubuntu/xenial64' (v20190724.1.0)を追加します
  6. box: ダウンロード中: https://vagrantcloud.com/ubuntu/boxes/xenial64/versions/20190724.1.0/providers/virtualbox.box

次に、Ctrl + C を押してコマンドを中断します。ダウンロードリンクはダウンロード後にあります。リンクをコピーしたら、ブラウザに直接貼り付けるか、Thunder でダウンロードすることができます。実際のテストでは、速度ははるかに速くなり、問題なくダウンロードするのに数分しかかかりません。

ダウンロード後、次のコマンドを実行してローカルボックスを追加します。

  1. ~ vagrant box add /your/path/virtualbox.box --name YourBoxName  

virtualbox.box パスを独自のローカル パスに変更します。 --name の後には Box の名前が続きます。自分で名前を付けることもできます。通常の状況では、公式のもの、つまり ubuntu/xenial64 と一致する可能性があります。

2.3 検証

インストールが完了したら、次のコマンドを実行してインストールが成功したかどうかを確認します。

  1. ~ 浮浪者ボックスリスト

端末には次のような情報が出力されます。

  1. laravel/homestead (仮想ボックス、5.1.0)
  2. ubuntu/xenial64 (仮想ボックス、0)

インストールしたボックスが存在するかどうかを確認します。

3. Vagrantを初期化する

Boxをインストールしたら、次のコマンドを実行してVagrantを初期化します。

  1. ~ mkdir vagrant_test
  2. ~ cd vagrant_test
  3. ~ vagrant init ubuntu/xenial64

実行が完了すると、vagrant_test ディレクトリに Vagrantfile が表示され、ターミナルに次のような情報が出力されます。

  1. このディレクトリ`Vagrantfile` が配置されていますあなたは今
  2. 最初の仮想環境を `vagrant up`する準備ができました!お読みください 
  3. Vagrantfileコメントドキュメント 
  4. Vagrant の使用に関する詳細については、`vagrantup.com` を参照してください

Vagrantfile ファイルには、仮想マシンに関連する構成情報が含まれています。ここではデフォルトの設定を使用し、今のところは無視します。

4. 仮想マシンを起動してSSHログインする

4.1 仮想マシンの構築と起動

初期化が完了したら、vagrant_testディレクトリで次のコマンドを実行して、仮想マシンを構築して実行します。

  1. ~ 放浪者アップ

以下のメッセージが表示されれば起動は成功です。

  1. ==>デフォルト: マシンが起動して準備完了です!
  2. ==> default : VM内のゲストの追加確認しています...
  3. デフォルト:このVMゲスト追加機能は、インストールされているバージョンと一致しませ  
  4. デフォルト: VirtualBox!ほとんどの場合問題ありませんが、まれ
  5. デフォルト:共有フォルダーなどが正しく動作しないようにします。もしあなたが
  6. デフォルト:共有フォルダエラー、ゲスト追加が
  7. デフォルト: 仮想マシンは、インストールされているVirtualBoxバージョンと一致します 
  8. デフォルト: ホストVM をリロードします。
  9. デフォルト
  10. デフォルト: ゲスト追加バージョン: 5.1.38
  11. デフォルト: VirtualBox バージョン: 6.0
  12. ==>デフォルト: 共有フォルダーをマウントしています...
  13. デフォルト: /vagrant => /Users/meetmax/vagrant/vagrant_test

4.2 SSHログイン

Vagrant で SSH を使用するのは非常に簡単です。 vagrant_test ディレクトリで次のコマンドを実行します。

  1. ~ vagrant ssh

成功すると、仮想マシンに入ります

3. より多くの仮想クラスターを借りて構築する

上記は Vagrant のスタンドアロン モードを使用します。 Vagrant はマルチマシン モードもサポートしており、単一の構成で複数の仮想マシンを起動できます。サーバー クラスター環境を簡単にシミュレートできます。クラスター モードとスタンドアロン モードの唯一の違いは、ループを通じて複数の仮想マシンを作成する Vagrantfile 構成ファイルです。

1. Vagrantを初期化する

次のコマンドを実行して、クラスタ構成ファイルを初期化します。

  1. ~ mkdir vagrant_cluster
  2. ~ cd vagrant_cluster
  3. ~ vagrant init ubuntu/xenial64

2. Vagrantfileを変更する

仮想マシン クラスターを構築するときは、Vagrantfile に対応する変更を加える必要があります。設定ファイルは以下のとおりです。

  1. Vagrant.configure( "2" ) を実行して |config| を実行します。
  2. (1..4).それぞれ|i|を実行します。
  3.        
  4. #ノード変数を定義する
  5. config.vm.define "node#{i}"を実行します |node|
  6.       
  7. # ボックス構成
  8. node.vm.box = "ubuntu/xenial64"  
  9.  
  10. # 仮想マシンのホスト名を設定する
  11. node.vm.hostname = "ノード#{i}"  
  12.  
  13. # 仮想マシンのIPアドレスを設定する
  14. node.vm.network "プライベートネットワーク" 、IP: "192.168.60.#{10+i}"  
  15.  
  16. # ホストと仮想マシン間の共有ディレクトリを設定する
  17. node.vm.synced_folder "/Users/meetmax" "/home/vagrant/code"  
  18. # VirtaulBox関連の設定
  19. node.vm.provider "virtualbox"を実行します |v|
  20.  
  21. # 仮想マシンの名前を設定する
  22. v.name = "ノード#{i}"  
  23.  
  24. # 仮想マシンのメモリサイズを設定する
  25. 仮想メモリ = 2048
  26.  
  27. # 仮想マシンのCPU数を設定する
  28. 仮想CPU = 1
  29. 終わり 
  30. 終わり 
  31. 終わり 
  32. 終わり 

特定の仮想マシン構成については、ファイル内のコメントを参照してください。単一の仮想マシンを作成する場合との違いは、クラスターの作成では (1..4).each ループを通じて 4 つの仮想マシン ノードが作成されることです。

3. 仮想マシンクラスターを構築して起動する

クラスターの起動コマンドは通常のコマンドと同じです。次のコマンドを実行すると、すべての仮想マシン ノードが起動します。

  1. ~ 放浪者アップ

単一ノードを起動するには、次のコマンドを実行します。

  1. ~ vagrant ノード1を起動

ここで、node1 はノード名です。複数の仮想マシンを起動する

  1. ~ vagrant up ノード1 ノード2

3.SSHログイン

仮想マシンの単一ノードにログインする

  1. ~ vagrant ssh ノード1

4. 一般的な仮想マシン管理コマンド

  • 仮想マシンを起動します: vagrant up
  • 仮想マシンにログイン: vagrant ssh
  • 仮想マシンを再起動します: vagrant reload
  • 仮想マシンをシャットダウンします: vagrant halt
  • 仮想マシンを破棄する: vagrant destroy

要約する

リソースが限られている場合、マルチノード仮想マシン クラスターを使用すると、分散環境をシミュレートし、仮想マシンでさまざまなテストを実行できます。システムが破損した場合でも、各仮想マシンノードは分離されており負荷がかからないため、復旧が容易です。上記がお役に立てば幸いです。

<<:  Hehegu、Oracleと提携してケータリングのデジタル変革を追求

>>:  「インテリジェンス+」は製造業の変革とアップグレードを強力にサポートします

推薦する

SEO戦略の実施後はSEO効果のモニタリングが不可欠となる

ウェブサイトの運用を最適化するには、完全な SEO 戦略計画が必要です。計画的で思慮深い SEO 戦...

週刊ニュースレビュー:Sina Weiboがオンラインショッピングを開拓、Taobaoが「Alimama」を再開

1. Sina Weiboがソーシャルオンラインショッピング決済プラットフォームを模索しクラッシュ1...

QingCloud Technologyは新しい外観と新しい企業ブランドで9周年を迎えます

ハイブリッドクラウドの先駆者でありリーダーであるQingCloud Technology(証券コード...

外部ハイパーリンクとプレーンテキストは Web サイトにどのような影響を与えますか?

ウェブサイトの最適化といえば、編集者は重要な外部リンクの構築について言及しなければなりません。外部リ...

情報の流れをめぐる大混乱の中で、誰が立ち上がるのか?

戦いの中で、遅れをとる者もいれば、台頭する者もいた。 2018年、情報フロー製品の王座をめぐる熾烈な...

民間病院のマーケティング:WeChatプロモーションの実践

「WeChat」は、今や多くの若者の携帯電話になくてはならないソフトです。新時代の友達作りツールとし...

なぜWeChatはついにアルゴリズム配信を採用し始めたのでしょうか?

過去 1 ~ 2 年間の WeChat の最大の変化は何かと聞かれたら、 WeChat がついにアル...

WeChatの永久アカウント停止に関する新しい規則は5月29日に施行されます。すでに影響を受けているかもしれません。

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますA5ベンチ...

大学生はどのようにして適切な金融商品を選ぶのでしょうか?

現在、市場には多種多様な金融商品が存在し、その種類も多岐にわたり、品質もさまざまです。大学生の私たち...

SEO基準を満たす企業ウェブサイトの設計方法についての簡単な説明

SEO を行う際、ほとんどの企業サイトに触れたことがあると思います。企業サイトのキーワード最適化やト...

サーバー仮想化の動向分析

サーバー仮想化技術は短期間で大きく進歩しました。 IT テストおよび開発パイロット プロジェクトの初...

hostingbot: 月額 6 ドル、米国 VPS、10Gbps 帯域幅、512M メモリ/2 コア/15g NVMe/3T トラフィック

Hostingbot は、2011 年 6 月に米国ダラスに設立されたホスティング会社で、登録番号は...

「2012 Discuz! アプリケーション開発コンテスト」優秀アプリケーション推薦シーズン3

ウェブマスターの皆様、「2012 アプリケーションコンテスト優秀アプリケーション推薦」の第 1 シー...

JVMでよく使われるパフォーマンス監視ツールを見てみましょう

前回の記事では、主にJVMのメモリ構造、クラスロードの仕組み、ガベージコレクションの仕組みについて分...