kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Chef で yum_repository を利用する

Chef で yum_repository を使おうと思ったら No resource or method named yum_repository というエラーが出て困ったけど,よく考えたら単純なミスだった.

==> default: FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> default: FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
==> default: ERROR: No resource or method named `yum_repository' for `Chef::Recipe "default"'
==> default: FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

yum_repository Lightweight Resource

「活用ガイド」を読んでいたら yum_repositoryyum_globalconfig は yum Cookbook の Lightweight Resource であると書いてあって,SuperMarket を見に行ったら確かにそう書かれていた.

supermarket.chef.io

nodes

よって事前に yum を run_list に加えておく必要があった.解決!

{
    "run_list": [
        "recipe[yum]",
        "recipe[xxxxx]"
    ]
}

バージョンに気を付ける

少し古いんだけど Chef 11.4.4 で yum 3.10.0 を実行したら以下のエラーが出た.原因は sensitive が Chef 11.14 以降で使えるシンタックスだからだった.

GitHub でコードを追って,yum 3.9.0 にして無事解決したけど,ちゃんと Berk を導入してバージョン管理しないとダメだなーと課題感を持った.

NoMethodError
-------------
undefined method `sensitive' for Chef::Resource::Template


Cookbook Trace:
---------------
/.../cookbooks-1/yum/providers/repository.rb:54:in `block (2 levels) in class_from_file'
/.../cookbooks-1/yum/providers/repository.rb:46:in `block in class_from_file'

活用ガイド

「Chef 実戦入門」と比べると桁違いに詳細に書かれていて,リファレンスとして読んでるんだけど,とにかく索引が弱くて,ページを探せないという課題がある.引き続き読み進めていこうと思っている.

Chef活用ガイド コードではじめる構成管理 (アスキー書籍)

Chef活用ガイド コードではじめる構成管理 (アスキー書籍)

関連記事