Vagrantが開発言語をRubyからGo言語へ切り替え、次のメジャーバージョンアップ「Vagrant 3.0」で。現バージョンとの互換性は維持

2021年6月14日

HashiCorpは、仮想環境をプログラミングできるツール「Vagrant」の開発言語を、これまでのRubyからGo言語切り替えることを明らかにしました

時期未定ながら、今後約1年のあいだに登場するVagrant 2.3、Vagrant 2.4を経て、Vagrant 3.0でGo言語への移行が完了する予定。

Vagrant 3.0では、デフォルトで新たなAPIやHCL(HashiCorp Configuration Language)によるコンフィグレーションなどに対応。また、Rubyベースのコンフィグレーションやプラグインを検出するとRubyや互換性維持用ヘルパーツールなどを導入し、最大限の互換性維持を図るとしています。

Vagrant 3.0で予定されている新機能など

Vagrant 3.0では主に次のような新機能が追加される予定です。

リモートマシンのVagrantを操作可能に
Vagrantは基本的にローカルマシン内の仮想マシンを操作するためのツールでしたが、クライアント/サーバアーキテクチャを採用することで、リモートマシン内のVagrantを操作できるようになります。

これにより非力なクライアントマシンからリモート先の強力なマシン内のVagrantを操する、といった使い方が可能になります。

ヘッドレスでの操作が可能に
これまでWindowsでは特権ユーザーの操作が必要な場合にはユーザーアカウント制御のダイアログボックスが表示されるため、それをクリックする必要がありました。Vagrant 3.0では特権的なサービスが可能になるため、こうしたユーザー操作が不要となり、ヘッドレスな操作が可能になります。

グローバルな構成管理が可能に
現在のVagrantのユーザーは自分の設定を参照することしかできませんが、新しいサーバベースのアプローチでは、グローバルに適用可能なVagrantの設定を管理できるようになり、設定のデータベースへの保存も可能になります。これにより設定が失われるなどの事故に強くなるなど、Vagrantの回復力の強化にもつながります。

プラグインAPIの改善とポータビリティの強化
現在のRubyベースのプラグインは引き続きサポートされ、それに加えて新たなAPIとGRPCのサポートによってGo言語やそれ以外の言語によるプラグインの開発が可能になります。新たなAPIはVagrantのリリースに依存せず、プラットフォーム依存もなくなるため、プラグインのポータビリティも容易に実現できるようになります。

Rubyランタイムへの依存がなくなる
RubyベースのVagrantでは、Vagrantとともにそののランタイムとしての特定のRubyランタイムが必要でした。GoベースになるVagrantでは、こうした特定のRubyランタイムへの依存がなくなるため、ユーザー自身で好みのRubyランタイムを利用することができるようになります。

今後、Vagrant 2.3ではGo言語で実装されたアルファ版のVagrantが含まれ、Vagrant 2.4でGo言語で実装されたVagrant本体がデフォルトになり、Vagrant 3.0でGo言語で実装されたVagrantだけがパッケージに含まれることで、Go言語版に完全に切り替わる予定だとされています。

関連記事

このエントリーをはてなブックマークに追加
follow us in feedly




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本