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

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

推薦する

ちょっと立ち止まって美しい女の子を送ってください

そのウェブサイトは午後中ずっと CC に攻撃され、ちょっと不愉快でした。「狂犬に噛まれたら、狂犬も噛...

韓国の文化産業の台頭により、オンライン販売商品の人気が高まり、文化マーケティングが韓国の主流のマーケティングモデルになりました。

1993年に韓国CCTVが初めて紹介した韓国ドラマ「嫉妬」に始まり、「愛がなんだ」「天橋風雲」「銭湯...

CKA 試験に必須: 複数のコンテナの Pod カプセル化の高度なテクニックを習得しましょう。

Kubernetes の世界では、Pod はデプロイ可能な最小単位であり、複数のコンテナが緊密に連携...

クラウド データベースの選択に必読: 自分に合ったものが必ず見つかります!

[[420553]]この記事はWeChatの公開アカウント「Computer World」から転載し...

B Station の弾幕ライブインタラクティブゲームが復活するのか?

この世代の若者は、ライブ放送室でますます熱狂的に遊んでいます。紫秀溝ナイトクラブが人気を博した後、6...

ehvps-$4.9/KVM/1g メモリ/50g ハードディスク/10T トラフィック/フリーモント

ehvps は海外に登録され、海外の人が運営している VPS 事業者です (中国人が関与している、ま...

sharktech - ロサンゼルスサーバー、10Gbps帯域幅、無制限トラフィック、400ドル割引

ロサンゼルス データセンターの10Gbps 帯域幅と無制限トラフィックを備えた専用サーバーである S...

海外のクールなウェブサイト: ミニマリストな電子商取引ウェブサイトのデザイン事例 20 件

電子商取引は、買い手と売り手の両方にメリットをもたらす成長産業です。買い物客は自宅で必要な商品を購入...

ウェブサイトがブロックされてから検索エンジンによって再インデックスされるまでのプロセス全体を分析します

ご覧いただいた上で、まずはフォローしていただいたことに感謝するとともに、お時間を無駄にしてしまったこ...

SEO入門書シリーズ: ウェブサイトのインクルード問題

ウェブページの包含の問題1. 自分のウェブサイト(独立したウェブサイトまたはブログ)を Baidu ...

初志を貫き、再び五家万井(赤峰)情報技術産業パークへ出発

「祖国の北の国境の風景をより美しくしましょう。」事務総長の切実な期待がこの広大な土地の発展の方向性を...

友人同士の電子商取引は良いビジネスではありません。友情を維持するためのコストが高すぎます。

少し前、いくつかのメディア記事によってナンシーという女の子が有名になり、WeChat Moments...

周立波ドメイン名訴訟の原告は第一審判決を不服として控訴した。

話題の周立波ドメイン名事件が、文学愛好家の「粘り強さ」によって復活した。最近、北京出身の岳通宇さんは...

ウェブサイトのダウングレードに対処する方法についての簡単な説明

筆者はインターネット業界で4年間SEOに携わっており、その間に百度で大小さまざまな調整を経験してきま...

ServerHub - 2g メモリ/110g ハードディスク/3T トラフィック/6IP/月額 6.99 ドル

簡単に言えば、ServerHub はフェニックスにデータセンターを持ち、ネットワーク条件が優れている...