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と提携してケータリングのデジタル変革を追求

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

推薦する

Baiduの最適化と今後の開発についてお話ししましょう

私のウェブサイトのトップページがK化された後、私はグループで不満をぶちまけ、Baiduを厳しく罵倒し...

Linodeはどうですか?日本大阪データセンタークラウドサーバーレビュー

Linodeはどうですか? Linode Japanはどうですか?日本の大阪Linodeはどうですか...

上級ウェブマスターがステーショングループの市場と収益モデルを分析

国内の個人的なウェブマスターの時代は、どのように開発されていても、Webサイトの問題を解決する必要が...

owocloud: 深セン-香港 IEPL 専用回線向け natVPS、レイテンシ 2 ミリ秒、帯域幅 200M、月額 84.5 元から

Owocloud(深圳孟林科技有限公司)は現在、「深圳-香港IEPL専用線」シリーズのNAT VPS...

強力なネットワークセキュリティ防御ラインを構築し、天一クラウドが新しいインフラストラクチャを護衛します

9月14日、第7回全国サイバーセキュリティ啓発週間が河南省鄭州で始まりました。このサイバーセキュリテ...

最適化された Web デザインとは何ですか?

検索エンジンによってウェブページのサポートが異なるため、ウェブページをデザインする際には見た目の美し...

検索エンジン最適化中に高品質のユーザーエクスペリエンスを作成するためのウェブサイトコンテンツ要素の分析

ご存知のとおり、Baidu 検索エンジンの継続的なアップグレードにより、ユーザー エクスペリエンスが...

インテリジェントなモノのインターネット - 自動運転のコア技術

中国の自動運転市場には大きな可能性がある。マッキンゼーは、中国の乗用車市場では、2040年までに自動...

クラウドネイティブストレージツールの選択と適用に関する議論

1.クラウドネイティブストレージの概念クラウド ネイティブ ストレージの概念は、クラウド ネイティブ...

SEO実戦まとめ百度最適化究極の道

序文:Brother Lu SEOは1年4か月間、Baiduの最適化に取り組んできました。3か月間の...

責任あるブロガーになる方法

ブロガーには多くの責任があります。読者があなたのコンテンツを読んでいないからといって、責任がないとい...

ソーシャルメディアがSEOに与える4つの直感的な影響を分析する

ソーシャル メディアが SEO に影響を与えることは誰もが知っていますが、ソーシャル メディアは S...

「シニアヘルプシステム」からイベントマーケティングの活力を体感

今日グループでスクリーンショットを見て、とても興味深いと思ったので、下の写真のように、それを記事の冒...

Baidu SearchがAuroraアルゴリズムを導入:オリジナルで高品質なコンテンツの促進を目指す

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

2022年以降に注目すべきエッジコンピューティングの5つのトレンド

近年、IoT エコシステムは急速に成長しており、エンドポイント デバイスからのデータも増加しています...