トップ «前日 最新 翌日» 編集
RSS feed

ただのにっき


2013-05-18(土) [長年日記]

Puppet ModuleをPuppetで管理する

あいかわらずVagrant & Puppetで遊ぶ日々(※遊びじゃない)。

基本的なことはだいたいできるようになったので、さて実用に供するためにはなんといってもRubyの開発環境を作らねば……と思って調べてみると、puppet-rbenvというのを見つけた。rbenv自身のインストールから、指定バージョンのrubyのビルド、Gemやrbenvプラグインのインストールまで面倒みてくれるすぐれもの。で、これをインストールするにはというと、puppetにmoduleサブコマンドがあってこれを使う:

% sudo puppet module install alup-rbenv

便利だなーって……これってつまり、puppetの外でインストールしろってこと? せっかくpuppetがあるのに、なんでpuppetで管理できないの? とつぶやいたら、(Vagrantではない)本番環境にはpuppetがあるとは限らないというしごくまっとうな指摘を受ける。そりゃそうだ。ただし、いまおれが構築してる環境はVagrant前提でいっこうにかまわないので、puppet moduleを管理するtypeを書いてしまおう。puppet/module.pp:

これで、こんな感じで書けるようになった:

include puppet
puppet::module { 'alup-rbenv': ensure => installed }

$me = 'tdtds'
$ruby = '2.0.0-p195'
rbenv::install { $me: }
rbenv::compile { "${me}/${ruby}": user => $me, ruby => $ruby, global => true }
rbenv::gem { ['tdiary', 'tdiary-contrib']: user => $me, ruby => $ruby }

ちょう便利。

Tags: puppet

トップ «前日 最新 翌日» 編集
RSS feed