uzullaがブログ

uzullaがブログです。

chefでyum upgrade -yするやつwww

昨日からあるサービスのためのレシピをずっと書いてたのだけれど、yum update -yをレシピに入れたら結構ハマったので、メモです。

yum upgrade -y

入っているパッケージを全部アップデートするこれですが、まあレシピに書くのは賛否両論ありそうではあります。

しかも俺はremi レポジトリもつかっている、これまた賛否両論だ。


だってレミチャンいれないと、tigもgitもhgもphp5.4もmysql5.5もない、かなりつらい。
(gitはepelだったかな?)

で?

ざっくりいうとyum::remiをおこなってmysql::server,mysql::clientのレシピを走らせると、概ね以下の様なエラーをいわれる


概念的にいえば、

yum::remi
「yum upgrade -y」
mysql::server
mysql::client

こういう順番でやると*1

Recipe: mysql::client
  * package[mysql] action install
================================================================================
Error executing action `install` on resource 'package[mysql]'
================================================================================


Chef::Exceptions::Package
-------------------------
Installed package mysql-5.5.33-1.el6.remi is newer than candidate package mysql-5.1.69-1.el6_4

こんな文句を言われる。


いや、そのままアップデートしてくれてかまわないから!っておもうのだけれど、ダメ〜って言われるので生きるのがつらい。

どうした?

まあ、順番変えれば動くだろ、ってのは容易に想像ができたので、

yum::remi
mysql::server
mysql::client
「yum upgrade -y」

という順番にしたら、うごく。
正直キモいのだが(5.1の時に諸々走って、最後に5.5に上がるので)、まあ今のところ目立った弊害はないし、ちゃんと上がってるっぽいのでこれで良しとする。


うーん、あとでまたハマりそうだなー…。

yum_packageにupgrade相当のRecipeがあればいいんだけど。


あと、想像なんで、嘘かもしれませんが、flush_cache attributeあたりが怪しいなー…とかおもうけどどうなんだろうね。
でももう試す気力はゼロだ。


世間の風はどっちむきだ

そもそもyum upgrade自体がどうなの?って話もやっぱりあって、でもそうなるとパッケージ更新みんなどうするの?って感じがある。

せっかくのパッチ&オートアップデートなのに、殺すのも…。


そりゃmysqlPHPhttpdくらいならがんばって追っかけるってのも有りかもっておもうけど、sshdとか、ntpdとか、そういうやつはアップデートかけておきたいんですけどね…。ダメ?

*1:他にもレシピ(httpdいれたり、PHPいれたりしてるから、他のが問題かもだが