[和訳] ChefDK 0.7.0 リリース #getchef
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本稿は ChefDK 0.7.0 Released (2015/08/17) の和訳です。
シェフのみなさん、こんにちは! ChefDK 0.7.0 をリリースし、ダウンロードページ から取得できるように準備完了しました。たくさんの機能、更新、バグ修正をすべてのみなさんにお届けします。ハイライトは次の通りです。
- Cookbook と gem キャッシュを指す、新しい環境変数 CHEFDK_HOME。
- 最新のパッチを適用した SSL CA 証明書を同梱。
- Chef Server 上のポリシーファイルの状態を表示する新しいコマンド chef show-policy。
- ポリシーファイルに複数のデフォルトソース。
- ポリシーデータを tar ボールにする chef export のオプションと chef push-archive。
- ダブル/トリプルクォートの問題を改善するための Powershell ラッパー。
- 安全のために Windows の ChefDK MSI に署名を追加。
-
依存関係の更新。
- chef-12.4.1
- ohai-8.5.1
- chef-provisioning-1.3.0
- chef-provisioning-vagrant-0.9.0
- chef-provisioning-aws-1.3.1
- cheffish-1.3.1
- chefspec-4.3.0
- knife-windows-0.8.6
- winrm-transport-1.0.2
たのしい第一歩
ChefDK をインストールしてすぐに Chef を始められるように、多くの更新を行いました。
CHEFDK_HOME 環境変数
ChefDK のすべてのコマンドは、この位置に Cookbook や Gem、その他のものをキャッシュします。デフォルトでは、Windows は %LOCALAPPDATA%\chefdk、その他は ~/.chefdk です。Windows では、コマンドを実行する際のデフォルトの %HOME% を設定することで MSI インストーラが環境を修正できます。どちらの変更も、いつも存在するとは限らないネットワークマウントされたホームドライブを使っている際の悪影響を軽減するためのものです。
同梱の SSL CA 証明書の更新
2015-04-22 からの Mozilla のルート証明書を使うようになりました。Amazon S3 を含む多数のウェブサイトのトラストチェーンに未だ使われている Verisign の古い RSA 1024 ビット鍵を手動で許可しています。これにより、多数の Chef ツールを通してそれらのサイトにアクセスできるようになります。
ポリシーファイルの改善
Chef Server 上のポリシー一覧
chef show-policy コマンドは Chef Server 上のポリシーファイルの状態を表示します。引数がなければ、次のようにすべてのポリシーを表示します。
aar
===
* dev: 95040c1993
* production: 95040c1993
* staging: 37f9b658cd
jenkins
=======
* dev: fcb73eccac
* production: *NOT APPLIED*
* staging: *NOT APPLIED*
chef show-policy aar のように、ポリシー名を指定してそのポリシーのみを表示することもできます。例えば chef show-policy aar production のようにポリシーグループを追加することで、ポリシーグループに適用したポリシーの現在のリビジョンを表示できます。
ポリシーファイルの複数のデフォルトソース
ポリシーファイルが複数のデフォルトソースを持てるようになりました。それらのソース中で Cookbook がお互いに衝突しない場合に限り有効です。ソースとして Supermarket とローカルの Chef Repo の両方を指定できるようになり、Chef は必要に応じて両方から Cookbook を自動的に取得します。例えば、デモプロジェクトでは次のようになっています。
name "jenkins"
default_source :supermarket
default_source :chef_repo, "cookbooks"
run_list "apt", "java", "jenkins::master", "recipe[policyfile_demo]"
この例では policyfile_demo Cookbook を cookbook レポジトリから取得し、apt、java、jenkins とそれらの依存関係にある Cookbook は Supermarket から取得します。
ポリシーをパッケージングしてエクスポート
ChefDK は制限されたネットワークのような安全な環境でポリシーファイルをより簡単に使えるようになりました。全ポリシーをパッケージングし、後で安全な環境にある Chef Server へアップロードするといった使い方ができます。
ポリシーをパッケージングするには、chef export に -a フラグを追加するだけです。例えば chef export -a . のようにします。これですべての Cookbook とポリシーデータが tar ボールにパッケージングされ、それから安全な環境に持っていくことができます。ポリシーを Chef Server にアップロードするには、新しい chef push-archive コマンドで行えます。
Windows 版の改善
Powershell ラッパー
MSI のオプション機能として、ChefDK のインストール中にあわせて Powershell モジュールをデプロイできます。通常 C:\opscode\chefdk\modules になります。この場所は PSModulePath 環境変数にも追加されます。Powershell セッションから有効にするには次のようにします。
Import-Module chef
~\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 の Powershell プロファイルにそれを追加することもできます。
このモジュールは、chef-client、knife、chef-apply のような普段よく使う Chef コマンドラインユーティリティと同じ名前の多くのコマンドレットを導入します。これらは Powershell コマンドライン上でダブルクォートをやりすぎる必要なしに、クォートされた文字列引数を渡せるようになります。例は chef#3026 や chef#1687 を見てください。
これまでは次のようにしなければならなかったところを、
knife exec -E 'puts ARGV' """&s0meth1ng"""
knife node run_list set test-node '''role[ssssssomething]'''
次のようにするだけでよくなります。
knife exec -E 'puts ARGV' '&s0meth1ng'
knife node run_list set test-node 'role[ssssssomething]'
ラッパーがもう必要なくなったら、次を実行します。
Remove-Module chef
MSI の署名
ChefDK MSI はコードサイニング証明書を使って署名するようになりました。これにより ChefDK のインストールはセキュリティマナーに従ってより簡単に早くできるようになりました。(注意: Windows の SmartScreen フィルタやその他類似のフィルタでは、通常のダウンロードされたファイルではないという警告を最初に出すかもしれません。これは普通のことで、パッケージが危険であることを意味しているわけではありません。証明書の信用を向上させるためのレピュテーションアルゴリズムにもうしばらく時間が必要です)