BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース リソースパーシャルとYAMLサポートのChef Infra 16 がリリースされた

リソースパーシャルとYAMLサポートのChef Infra 16 がリリースされた

ブックマーク

原文(投稿日:2020/05/03)へのリンク

Chefは、Chefポリシーの作成、カスタマイズ、および更新を改善するための多くの新機能を備えたChef Infra 16のリリースを発表した。このリリースには、レシピのYAMLサポート、コードの重複を減らすための新機能、ChefInfraが混合カスタムリソースを処理する方法の改善が含まれている。

バージョン 16では、リソースパーシャルと呼ばれるコードの再利用可能な部分を定義できるようになった。これは、既存のカスタムリソースと同様に、クックブックの /resources ディレクトリに保存されるが、接頭辞 _ で始まる。これらは、リソース内で新しく導入された use ヘルパーを使用して呼び出される。たとえば、これを使用して、アクション内で使用するヘルパーメソッドを定義できる:

resources/_api_auth_helpers.rb:

def make_api_call(endpoint, value)
  # API call code here
end
resources/mything.rb:

property :another_property, String
property :yet_another_property, String

action :create do
  # some create logic
end

action_class do
  use 'api_auth_helpers'
End

この追加には、カスタムリソース統合モードが含まれている。統合モードでは、ChefリソースとRubyコードの単一フェーズの実行が可能である。以前は、Chef InfraリソースとRubyコードを混在させることができたが、Rubyが最初に評価され、次にリソースに集中する。統合モードを選択すると、リソースごとに1つのフェーズがあり、すべてのRubyおよびChef Infraリソースが一度に実行される。オプトインは、プロパティ unified_mode true をリソースに追加することによって行われる:

property :Some_property, String

unified_mode true

action :create do
  # some code
End

このリリースでは、レシピを作成するためのYAMLサポートも追加されている。YAMLで書き込むには、Chefリソースとユーザ定義パラメータを resources ハッシュの要素として追加できる:

---
resources:
  - type: "package"
    name: "httpd"
  - type: "template"
    name: "/var/www/html/index.html"
    source: "index.html.erb"
  - type: "service"
    name: "httpd"
    action:
      - enable
      - start

この実装は最小限であり、単純なユースケースを対象としていることに注意してください。必要に応じて、コマンド knife yaml convert を使用してYAMLレシピをDSLに変換できる。

このリリースでは、パフォーマンスが向上し、Windowsでのクライアントの実行が高速化される。これは、Chefチームが多数の不要なファイルを削除したため、クライアントがディスク上で最大30%小さくなることと相まってのことである。クライアントは、Ubuntu 20.04Amazon Linux 2RHEL 8SLES 15などのARM上の複数のLinuxフレーバーもサポートするようになった。

Chef Infra 16のリリースに伴い、バージョン 14は正式に廃止 (EOL) された。バージョン 15は、最新の2つのメジャーリリースのサポートを維持するというChefのコミットメントの一環として、パッチで引き続きサポートされる。このリリースで導入された変更の詳細については、公式リリースノートを参照してください。

この記事に星をつける

おすすめ度
スタイル

BT