新しい同僚が会社に入社するたびに、その同僚は自分のコンピューター上でさまざまな環境を構成する必要があり、これは時間と労力がかかります。開発とテストを実行するたびに、開発環境を手動で再構成して構築する必要があり、手順が面倒でエラーが発生しやすくなります。 偉大な神がここにいるとき、彼はそれを建てます。偉大な神がここにいないとき、彼は胸に手を当ててそこに座ってため息をついています。この目的のために、VVVVVagrant が誕生しました!!! 仮想マシンオーケストレーションツール Vagrant 彼は、仮想マシンに基づいて、完璧な物理的分離を作成できます。 一度構築すればどこでも使用できます。新入社員はイメージをコピーするだけですぐに開発を開始できます。ボスのお気に入りです! ネットワーク構成を制御し、クラスターを構築するには、テキストと数行だけが必要です。 シェル スクリプト、Ansible の自動デプロイメントなどをサポートする優れたサードパーティ サポートも、彼を安心させています。彼は私たちの主人公 Vagrant です。 今回は、Vagrant がもたらす利便性を享受するために、Python 開発環境の構築を例に挙げてみます。 インストール Mac環境用の2行コマンド
他の環境では、2つのインストールパッケージをダウンロードするだけです Vagrant パッケージ https://www.vagrantup.com/downloads.html バーチャルボックス https://www.virtualbox.org/wiki/Downloads インストールが成功したか確認する
環境を初期化する 画像をダウンロードする最初の方法
このうち、--provider virtualboxはvirtualboxによって公式に提供されているかどうかを確認することを意味します 2番目のダウンロード方法
ここで、/Users/pzqu/Documents/code/test/vboxが私が選択したダウンロードディレクトリです。 ボックス操作の一連のコマンドドキュメントについては、https://www.vagrantup.com/docs/cli/box.html を参照してください。 初期化
この時点で、ディレクトリ内に Vagrantfile が生成されます。これが自動構成の鍵となります。 https://www.vagrantup.com/docs/vagrantfile/ コメントを見れば、主に Ruby 構文を含む書き方を大まかに把握できます。ローカル ディレクトリを仮想マシンにマウントしたり、ネットワークを構成 (パブリック ネットワークにアクセスするか、仮想マシンのみがアクセスできるようにするか) したりできます。 仮想マシンを構成するだけでなく、さまざまなプロビジョナーを通じてソフトウェアを自動的にインストールし、構成を調整することもできます。 詳細については、https://www.vagrantup.com/docs/provisioning/ を参照してください。 私の設定は比較的シンプルです。私は centos/7 システムを使用し、ネイティブ コード プロジェクトのディレクトリを /data/code ディレクトリにマウントします。 仮想マシンを起動したら、仮想マシンに直接開発環境をインストールし、イメージにコンパイルします。 構成は以下のとおりです
ファイルディレクトリのマウント時にエラーが発生しました このプラグインをインストールするだけです
開発環境を構築する Vagrantfile が配置されているディレクトリで、vagrant up を使用して仮想マシンを起動します。 次に、vagrant sshを使用して仮想マシンにログインします。 次に、次のコマンドを実行して、必要な Python 環境を自動的にインストールします。 requirements.txt は Python プロジェクトによって自動的に生成されることに注意してください。
補足: 要件ファイルを自動生成する方法
PyCharm を設定する 設定を開いてプラグインを追加します Vagrant環境の設定 仮想マシン内の Python パスを指定します。最初のステップですべて表示を選択します。 Vagrantを選択し、仮想マシン内のイメージディレクトリとPythonパスを選択します。 起動モードを設定します。ここでは、主に Python インタープリターの Python パスと作業ディレクトリのプロジェクト パスである Swagger を生成します (これは仮想マシンにマップされたパスであることに注意してください。前のセクションで /data/code を構成しました。これは、ローカルで開発するときに自動的に変更されます) 走る 他の人が使用できるようにボックス画像ファイルをエクスポートする 1. vboxmanage list vms コマンドを実行して、Vagrant の下にある仮想マシンのリストを表示します (私の仮想マシンには「vbox_default_1563884434349_3918」というボックスが 1 つだけあります)。
2. ボックスイメージをエクスポートする まずシャットダウンしてからエクスポートします。 vagrant packageはボックスをエクスポートするためのパッケージングコマンドです
--baseはローカルを表す vbox_default_1563884434349_3918はエクスポートしたいボックスの名前です --outputはエクスポートを意味します centos7_hanah_environment.boxは、エクスポートされたボックスがcentos7_hanah_environment.boxという名前で現在のディレクトリに保存されることを意味します。 3. 次に、次の内容が表示されます。これはエクスポートが成功したことを意味します。
牛乳1本分くらいの時間で終わります。箱のサイズによって異なります。私のボックスは約900Mです。 これで、それを友達に直接送信することができ、1 つのコマンドで友達はあなたとまったく同じ開発/テスト環境を取得できます。
vagrant box エイリアスボックス名の追加 その他のアイデア Vagrant の機能と Docker の機能には多くの重複があるようです。なぜ Docker を使用しないのですか? 1秒で最適な環境を起動できるだけでなく、軽量かつ純粋です。 長所と短所を比較検討すると、Vagrant 自体は仮想化技術ではありません。実行するには、VirtualBox などの仮想化プラットフォームをインストールする必要があります。これは、仮想マシン用のプラグインおよびオーケストレーション ツールのようなものです。これは仮想マシンのバッチ管理を目的としており、開発環境を即座に作成するためによく使用されます。 Docker 自体は、構築が迅速でリソースを占有しない仮想化テクノロジーです。これはアプリケーションのオーケストレーションを目的としており、開発環境と本番環境を統合するためによく使用されます。 結局のところ、Vagrant と Docker の違いは、仮想化プラットフォームとコンテナの違いに関係しています。 Docker は依然としてシステムカーネルに依存しています。カーネルが異なる場合は、再構築する必要があります。 時間があれば Docker を使った開発環境の構築について、また機会があれば Docker Machine についてお話ししましょう。 この記事はWeChatの公開アカウント「Three Minutes of Programming」から転載したものです。下のQRコードからフォローできます。この記事を転載する場合は、Three Minutes Programming の公開アカウントにご連絡ください。 |
<<: Alibaba Cloud Intelligence 社長、張建鋒氏:「完全なクラウド移行の転換点が到来しました!」
>>: 5つの分散トランザクションソリューションの長所と短所の比較
今日のデジタル経済では、爆発的なデータの増加が世界中のあらゆる業界に広がり、サブスクリプション ソフ...
【編集後記】この記事は@子木yoyoさんが個人ブログで公開したものです。 Web ページでもモバイル...
5G、AR、AIoT などのシナリオが次世代クラウド アーキテクチャの進化を推進し、コンテナがクラウ...
企業は完全なクラウド移行の時代を迎えており、ERP をクラウドに移行することが一般的な傾向となってい...
Baiduのアルゴリズムアップデートが発表されて以来、アップデート後のBaiduのアルゴリズムの定義...
クラウド時代において、開発者は反復的な開発の手間を軽減するために、より便利で「軽量」なツールを緊急に...
6月28日の百度Kステーション事件後、私は大手フォーラムで数え切れないほどのウェブマスターが「外部リ...
近年、オンラインライブストリーミングの台頭により、リアルタイムのオーディオとビデオのソーシャルネット...
香港スペース: 通常は香港ホスティング、特に香港仮想ホスティングを指します。主な特徴は、高速で申請が...
前回の急成長の後、2012年の電子商取引業界は「大魚が小魚を食べ、速い魚が遅い魚を蹴る」という統合の...
昨年、Host Catは300Mbpsの帯域幅を持つAkkocloudのドイツのcn2 vpsを導入...
中国では電子商取引の推進が成功し、JD.comやSuningなどの大型B2C総合オンラインショッピン...
[[279233]] API は、モジュールまたはサブシステム間の相互作用のためのインターフェース定...
ユーザーがPinterestに登録する際は、FacebookまたはTwitterアカウントにログイン...
クラウドでのデータの保存と処理にかかるコストと効率性への注目が高まるにつれ、多くの企業が業務をクラウ...