fbpx

[和訳] ChefDK for Windows: Progress Update #opschef_ja #getchef_ja

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

本項は ChefDK for Windows: Progress Update (2014/05/06) の和訳です。

シェフのみなさん、こんにちは。

ChefDK の Windows 版のリリースに向けた進捗に関するクイックアップデートを紹介します。
Berkshelf 3 で依存関係の解決器に変更があったことが知られていますが、Windows で berks コマンドを動かすための努力が必要です。
我々はできるだけ早くリリースできるよう作業しています。

次は我々が Windows 用の ChefDK をリリースするために取り組んでいる作業の概要です。

Omnibus ビルド定義の更新

まずは Omnibus ビルドツールを使ってビルドできるようにすることです。
ビルドツールが動作するようになったというよいニュースがあり、マージに適するようにパッチをクリーンアップしています。
関連する pull request は次の通りです。

ビルドツールの Windows サポートを追加・修正

ChefDK は組み込みアプリケーションの実行ファイルの生成に Appbundler を用いています。
Appbundler は通常の RubyGems 実行ファイルを越えるパフォーマンスを提供し、読み込まれたプラグインが動作できるように知られているバージョンに依存関係を固定します。
Windows では、Ruby 実行ファイルはコマンドラインで直接実行するために小さなバッチスクリプトでラップする必要があります。
我々は pull request #3 でバッチスクリプトの生成のサポートを追加しました。

Windows の Ruby 2.0 への Chef の更新

Ruby の最新バージョンは Windows でのいくつかのパフォーマンス改善を含んでおり、Ruby 1.9.3 はサポートの終了が近付いているので、ChefDK に最新の Ruby を含めるつもりでいます。
我々は Windows の Ruby 2.0 で Chef を動作させた際の 2つの問題を発見してきました。
1つ目は、既にマージしたwin32-api gem に対する簡単な依存関係の更新です。
一旦は解決しましたが、テストを実行している際、ruby-wmi gem が Ruby をクラッシュさせるという問題を見つけました。
我々は ruby-wmi の機能の多くを使っていないので、Win32OLE に直接アクセスしてこの問題のワークアラウンドを調査しています。
現在、我々は Chef PR #1405 で問題が解決するかどうかをテストしています。今のところ順調です。

MSI の生成をよりよくサポートするための Omnibus の更新

イメージやテキストなどを含む MSI を作成するために、現在は chef-client のビルドをハードコーディングしている MSI の生成コードを書き直しています。
関連する pull request は Omnibus Ruby #149 です。

ビルドクラスタに Windows マシンを追加

これは作業中です。
我々の内部 CI インフラを設定するために用いている Cookbook はプライベートなので、残念ながらコードは共有できません。

QA

これらの問題を解決でき次第、Windows 版 ChefDK のナイトリービルドの公開を開始します。
それから、自動テストスイートを通り過ぎてきたバグを見つけるために手動で QA を行います。

リリースはいつ?

我々はもうすぐリリースできると楽観視していますが、他の複雑なソフトウェアプロジェクト同様、我々がこれまで続けてきたテストのように、より多くのバグに晒されるというリスクがあります。
進捗をアップデートし続け、ナイトリービルドを提供でき次第、テストの呼び掛けをするつもりです。
しばらくお待ち下さい。

新規CTA