unless文の使い方
unlessというのを知ったのでメモ。たとえばmysqlのインストールをサクッとしたいという場合にrootパスワードを設定したくなる。そこでunless
を使うことによって、既にrootユーザにパスワードが設定されているかどうかを調べることができる。
class mysql-server::config { $password = "pass" exec { "Set MySQL server root password": subscribe => Package["mysql-server"], refreshonly => true, unless => "mysqladmin -uroot -p$password status", path => "/bin:/usr/bin", command => "mysqladmin -uroot password $password", } }
exec
だとどうしても実行しっぱなしで冪等性担保しづらくなりがちだけど、unless
うまく使えばいい感じにできるかもしれない。
http://docs.puppetlabs.com/puppet/3/reference/lang_conditional.html#unless-statements