LoginSignup
0
0

More than 5 years have passed since last update.

ChefTips: yum グループインストール を使いたい

Last updated at Posted at 2017-07-05

Redhat系のパッケージ管理ツールであるところの yum には グループインストール という関連するパッケージを一気にインストールしてくれる機能があります。

[参考] Yum のグループ機能を使ってパッケージ インストールを楽にする
https://jp.linux.com/Linux%20Jp/tutorial/420167-tutorial2014081101

また、Chef には yum_packageリソースという機能があり、recipeに

yum_package ksh

と書くだけでいい感じに パッケージを導入してくれます。が、yum_packageリソースのマニュアルを読むと分かるように、Chef の yum_package リソースには グループインストール のオプションがありません。

[参考] yum_package
https://docs.chef.io/resource_yum.html

yum のグループインストール機能が使える Chef の recipe というのをご紹介したいと思います。

解決策(1) supermarket のcookbookを利用する

Chef supermarket で そのものズバリ yumgroup という cookbook が提供されています。

yumgroup
https://supermarket.chef.io/cookbooks/yumgroup

このCookbookはrecipeを持たない LWRP(Light Weight Resources & Provider) Cookbook なので、拡張Resourcesを提供してくれます。本Cookbookの場合は、yumgroup という yum グループインストール の機能を持つ 拡張Resourcesを提供してくれるようです。

include_recipe 'yumgroup'

yumgroup 'Web Server' do
  action :install
end

解決策(2) executeリソースを利用する

supermarket の cookbook に頼らずとも、以下のように execute リソースをうまく活用すれば、若干 recipeの可読性は落ちるかもしれませんが、実装可能です。

execute 'X Window System' do
  user 'root'
  command "LANG=C yum groups install -y hidden 'X Window System'"
  action :run
  not_if "LANG=C yum groups list -q installed hidden | grep 'X Window System'"
end

execute 'Fonts' do
  user 'root'
  command "LANG=C yum groups install -y hidden 'Fonts'"
  action :run
  not_if "LANG=C yum groups list -q installed hidden | grep 'Fonts'"
end

supermarket の cookbook とくらべても シンプルな実装が実現できますので、execute リソースでの実装がおすすめです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0