オープンソースなシステム自動管理ツール Puppet

第3回 マニフェストはじめの一歩

この記事を読むのに必要な時間:およそ 2 分

複数リソースの宣言

マニフェストでは当然のことながら,以下の様に複数のリソースを宣言することができます。

file { '/etc/hosts':
    owner => 'root',
    group => 'root',
    mode  => 644,
}

file { '/etc/sudoers':
    owner => 'root',
    group => 'root',
    mode  => 440,
}

リソースタイプが同じ場合には,以下の様にひとつのブロックでまとめて宣言することもできます。

file {
    '/etc/hosts':
        owner => 'root',
        group => 'root',
        mode  => 644;
    '/etc/sudoers':
        owner => 'root',
        group => 'root',
        mode  => 440;
}

リソースタイプが異なる場合には,ひとつのブロックでまとめて宣言することはできません。

file { '/etc/sudoers':
    owner => 'root',
    group => 'root',
    mode  => 440,
}

exec { 'blah':
    path => '/usr/bin',
    cwd  => '/tmp',
}

リソースパラメータのデフォルト値

同じタイプのリソースに共通となるパラメータのデフォルト値を宣言することができます。宣言の方法は通常のリソースの宣言と似ていますが,リソースタイプの先頭を大文字にし,リソース名は指定せずに,以下の様に宣言します。

File {
    owner => 'root',
    group => 'root',
    mode  => 644,
}

file {
    '/etc/hosts':  ;
    '/etc/passwd': ;
    '/etc/group' : ;
    '/etc/sudoers':
        mode => 440;
}

デフォルト値と異なるものは上書きすることができ,上の様に記述することで,⁠/etc/hosts,/etc/passwd,/etc/group,/etc/sudoersのオーナ/グループはroot/root,パーミッションは/etc/sudoersが440,それ以外のファイルは644であるべき』というシステムの状態が宣言されます。

マニフェスト作成に便利なツール

配布されているPuppetのtarballには,Emacs用とVim用のヘルパーモードファイルが同梱されています。それぞれext/emacs,ext/vimディレクトリに置かれています。

ヘルパーモードはタブキーでのインデント調整やシンタックスカラーリングをサポートしており,とても便利です。筆者はEmacs用のヘルパーモードを利用していますが,これなしでマニフェストを書く気にはなれません。

ヘルパーモードファイルだけ欲しい場合には,tarballをダウンロードしなくても,SVNリポジトリから必要なファイルだけを取得することができます。

今回はマニフェストはじめの一歩と題して,マニフェストでのリソースの宣言方法について解説しました。次回はマニフェストについて更に詳細に解説する予定です。

参考URL

著者プロフィール

宮下剛輔(みやしたごうすけ)

(株)paperboy&co.技術責任者。 社内ではサーバ周りからアプリケーション開発まで幅広く関わる一方,個人的にはPerlプログラミングを趣味として,サーバ管理用ユニットテストスイート Assurer(アシュラ)をオープンソースで公開したり,CPAN AuthorPlaggerコミッタとして活動している。また,YAPC::Asia 2007 Tokyo等の技術系カンファレンスでスピーカを務めるのも最近の楽しみのひとつ。共著書に『MASHUP++』がある。

URLhttp://mizzy.org/