Vagrant、そのプラグイン、およびトランプの生活からのその他の物語について

私の意見では、ほとんどのITプロフェッショナルはVagrantを使用する必要があります。 誰がそれを知っているか-公式サイトから始めることをお勧めします。 Habréでは、 VagrantとChefを使用した開発環境や 、1分で新しい仮想マシン作成する、または「vagrant up!」などの vagrantのレビューもいくつかありました。 この記事では、浮浪者の「生態系」について詳しく説明します。



ウォグラントを簡単に説明すると、これは、お気に入りの構成管理システムとお気に入りの仮想化システムを使用して、繰り返し環境を作成するためのツールです。 そして、仮想化システムと構成管理システムが多数ある場合、vagrantはその種のユニークな製品であり、類似物はありません。



しかし、状況をより詳細に検討してください。 現在、Vagrantは次の仮想化システムをすぐにサポートしています。





さらに、次のプラグインはサードパーティの開発者によって作成されました(もちろん、すべてがここにリストされているわけではありません)。





念のため、Ubuntu 12.04でのParallelsのボックスはこちらです。



さまざまな仮想化システムを使用するvagrantは、CI環境でのテストを使用してインフラストラクチャのさまざまな側面をテストする不可欠なツールになります。



仮想化システムを接続したら、構成管理システムを決定する必要があります。 現在、次のプロビジョニングシステムがサポートされています。





その後、すべてが非常に簡単です-オペレーティングシステムの「参照」イメージが必要です。 自分でそれを行うことができますが、それほど難しくはありませんが、たとえばウェブサイトVagrantBox.esで準備することができます。 Ubuntu 12.04でのVirtualBoxのボックスはこちらにあります



それでも既製のソリューションが気に入らない場合は、基本的なイメージの作成を自動化するプロジェクトがあります。 たとえば、 VeeWeeHabré に関する彼に関する紹介記事 )およびPackerです。 後者は、浮浪者の作者であるミッチェル・ハシモトによって作成されました。 残念ながら、ロシア語のレビューはありませんが、次の記事のいずれかでそれについて書きます。



参照OSイメージは、開発から戦闘まで、すべての環境で同じものを使用することに意味があることに注意することが重要です。



その後、Vagrantfileを使用してすべてをまとめます。 たとえば、複数のマシンを一度に実行できるようにする構成ファイルを提供します。これは、分散環境をテストする必要がある場合に非常に便利です。



Vagrant.configure("2") do |config| config.vm.define :infra do |main| main.vm.box = "ubuntu12.04-chef11" main.vm.hostname = "infra" config.vm.network :forwarde_port, guest: 80, host: 8002 config.vm.network :private_network, ip: "192.168.100.13" main.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", "2048"] end config.vm.provision :chef_solo do |chef| chef.log_level = :info chef.roles_path = "roles" chef.data_bags_path = "data_bags" chef.add_role "base" chef.add_role "zabbix-db" chef.add_role "zabbix-server" chef.add_role "graylog2" end end config.vm.define :vm1 do |main| main.vm.box = "ubuntu12.04-chef11" main.vm.hostname = "vm1" config.vm.network :forwarded_port, guest: 80, host: 8001 config.vm.network :private_network, ip: "192.168.100.14" main.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", "2048"] end config.vm.provision :chef_solo do |chef| chef.log_level = :info chef.roles_path = "roles" chef.data_bags_path = "data_bags" chef.add_role "base" chef.add_role "zabbix-client" chef.add_role "projectname" end end end
      
      







同様の構成ファイルを使用して、たとえばvagrant up vm1



vagrant up infra



またはvagrant up vm1



など、仮想マシンを個別に上げることができます。



ここで記事を完成させることができますが、とりわけ、その機能を拡張し補完するwagrant用の多くのプラグインがあります。 最も有名なプラグインのリストは wagrant wikiにあります。 私の意見では、最も興味深いものがここにあります。





Wagrantは、プロジェクトの環境を再現可能な方法で準備するのに役立ちます。 Wagrantを使用すると、開発の早い段階から統合を開始できます。 これがインフラストラクチャを「準備する」唯一の方法であると私は深く確信しています。 しかし、今ではそのような料理をする人はほとんどいません。 そして、「Express 42」はそのように準備します。



All Articles