読者です 読者をやめる 読者になる 読者になる

すずけんメモ

技術メモです

unless文の使い方

puppet

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