36 西 Debian
西 Debian
2010 06 27
36 西 Debian 2010 06
1 Introduction
Debian JP
西 Debian 勉強 Debian GNU/Linux のさ (新し Debian 特有
Debian です
的との三えてす。
ML 掲示なく顔をる事報交
期的れる
料の
れでしいお楽下さ
1
西Debian
1 Introduction 1
2 近の Debian 関係ベン 3
3 前課 4
4 dh source format 3.0, the magic debhelper rules 7
5 puppet $HOME 理さよう 15
6 後の 22
2
36 西 Debian 強会 2010 06
2 Debian
Debian JP
2.1 西 Debian
回の西 Debian 強会, 5 23 センで行れま Ubuntu Japanese Team
いくさんよる Debian Ubuntu よる 期リース Squeeze を見
ようでした。リースさたばかり Lucid Lynx 入門が目でした。くやんのトーも好調でオフレコ
り、 Debian とのタあい感盛りを見たとます
て、お約通りにフリーの遅れて squeeze ついて、がたさんに現をまとめてもいました特に日本
まわ題が squeezeで目ませ
2.2 65 Debian
6 19 に第 65 回東リア Debian 勉強開催した
OSC 道直前とうことで岩松さんよる Debian GNU/kFreeBSD の話、荒木さによ なた
? Debian, Debian クラ」と Debian ラウをさうで
Debian クラの中今回さんする puppet たそ味深ね。
*
1
*
1
たは? クラウド Debian // Debian クラ / 荒木 - http://www.slideshare.net/ar_maniacs/debian-debian
3
36 西 Debian 強会 2010 06
3
回はわる事前設定した
*
2
deb () を作いる
お手元のケージのどれ 1 つを source format 3.0 cdbs or debhelp er 7 に移行して下さい
出事前課題としては、の感想をお願いします た、発表者宛 *debian.tar.gz 添付して下さ
ば幸 (の際強会ステの参を明下さ)
deb して
( GNU Hello)
どをてきい。 感想願い
加者んに答はの通
3.1
unstable howm rail ケージの作成には debhelper 7.0 rttools rabbit ケージの作成には CDBS +
ruby-pkg-tools 使 rules まし ruby つい setup.rb install.rb extconf.rb install 使
する script が分れて debhelper CDBS + ruby-pkg-tools gem Rakefile にな
ので debhelper 7.0 dh rubygems() Rake 探すうに良いと妄まし
3.2
deb ケー作成ていいほです Squeeze hello hello-debhelper 参考
したか作ましです少し理解業しす。
3.3 西
cdbs 使ケーがあ source format 3.0 (quilt) chkbuild deb
てみました。 http://chkbuild.deb.n-z.jp/ で公開しています cdbs と違 debian/rules include がない
で、 DEB UPDATE RCD PARAMS などを指定したくた場合どうすのかが気になりましたが、回は必要
では調せん
*
3
*
2
までと比て思ハードル上げてしたためか、参加登録者少ない気がしすが...
*
3
DEB UPDATE RCD PARAMS 合は dh installinit override しま ()
4
3.4
GNU Hello debhelper debuild です
とでだな:
lintian (package-contains-info-dir-file)
pbuilder basetgz が何失敗
*
4
piuparts Broken symlinks 失敗
*
5
3.5
deb ケージを作成していないので、課題どお GNU Hello をパケージ化してみまた。参考書は maint-
guide-ja 。記 dh-make Standards-Version 3.7.3 に対 Lintian
3.8.0 (?)
思い。作めんさか る」にあれは
とで。そめんくささをツーででるだ軽減するよう夫されていま。特問題感じませんでた。
化」るのみで!!
3.6
(答な)
3.7 lurdan
source format 3.0
debian/ の変 patches
*
6
debhelper7
upstream まと Makefile を用しててる幸せそう
3.8
(答な)
3.9 IPv6waterstar
ラメエラまさ。以 Debian 、時に今を記
GNU Hello ダウ
tar xvfz hello-2.6.tar.gz 解凍
dh make –single –copyright=gpl debina クトも作ことを参し、
dh make –createorig –single –copyright=gpl に修し、 debian
Debian ケー」を各フ
debuild -uc -us るも deb ージ作成されず、エラーを参照し、 debuild -d -uc -us でパケージを
。エし。
*
4
dennou-q ラー障害期に当たりまたか?()
*
5
piuparts Broken symlinks 鬼門すね。多の場 レの所為ーよと叫びたなります
*
6
ケージ作の時 upstream のソース更がて、 clean で変更が元にいの?()
5
3.10
みません最近の流れについてきない deb ケージを成していい方」コースを選んでまいした
GNU Hello debian/rules 見るりご書いで、いうアリと思した
3.11
ス。てまハイ
6
36 西 Debian 強会 2010 06
4 dh source format 3.0, the magic debhelper rules
6.0(squeeze) RELEASE GOALS new source package format support
*
7
こで new source package format source format 3.0 です
debhelper deb ケーの構築を補助するなツール群で
*
8
多くのパケージで debhelper び出
され共通 debhelper 呼び蔽しケーール (debian/rules)
単に dh(コマ) CDBS(Makefile のルルセ)
こで source format 3.0, dh, CDBS ついてお話します。ちみに、告知タトル 深追い」とか CDBS
2.0とか字列が気いで
4.1 source format 1.0 3.0
4.1.1 1.0 題点
source format 3.0 前に source format 1.0 単に debian
は主の構らな:
.orig.tar.gz
リジソー
.dsc
(、メ、フ)
.diff.gz
イナする変更 Debian のパい。
, このーマ, があ:
1. ーカ圧縮して .gz 使
2. upstream ソー数のイブ成さ合が
3. ナのたパり、して
4. diff 表現ので () イナきに
source format 1.0 場合らの, だいの様決しした:
*
7
http://release.debian.org/squeeze/goals.txt
*
8
deb ケーそのもの debhelper しで作成できすが、普 debhelper を使ます
7
1. ブの式と .gz 使えな
例え upstream bzip2 で配布されている場合で gzip で圧縮しなおす、 もしくは tarball in tarball
*
9
などの形式にする、などです。後述の CDBS を使用する場合には tarball in tarball 用のルールとして
tarball.mk 用意いま
2. upstream が複ーカら構れる面倒
述の tarball in tarball
3. 成し patch
diff.gz debian ファ なっ debian/control
debian/rules upstream
そこで、 upstream のソスへのパ チは debian/patches に意味のる単位で割して配置し
ジ作の際 apply/unapply を行うこにしていす。のたのツルとては
dpatch quilt
*
10
があります。また、 CDBS にはパチの apply/unapply をするためのルールとし
patchsys-quilt.mk, dpatch.mk, simple-patchsys.mk 用意されていますし dh --with
quilt というオが用意されています。ちなに、各パチの先頭にその意図を記述するグを追加
おく推奨いま
*
11
4. diff るの (など) ナリにく
uuencode/uudecode diff れるしてどししま
うわで、れま source format も問点にいて応はきま。ししなら、うい殊な
行なを解たなして 3.0 (quilt) 3.0 (native) が制
まし
*
12
4.1.2 3.0(quilt) 3.0(native)
3.0 (quilt) :
.orig.tar.ext
upstream のソス。複数ソースからなる場には基本となソースにこの前をつける。 ext
の拡あり gz, bz2, lzma, xz 使可能
.orig-component1.tar.ext
upstream が複のソから成さる場に作する-componet ソースの前に応しメン
ナが付け
.debian.tar.ext
debian レクトリの中身。 ext は圧縮の拡張子であり、 gz, bz2, lzma, xz が使用可能。 1.0
diff.gz .tar.ext にな全てしたチでくな
.dsc
る情
3.0 (native) 1.0 での Debian 有パケーに対応しており、.orig.tar.ext .dch イルからなり
す。
れらによ 1.0 点は様にされ
*
9
.orig.tar.gz 開すとデクト内に upstream bzip2 配置され。ビルドる際 tar 展開してらビルド
*
10
う書くと語弊があるかしれませんが quilt Debian 固有のツールはありません。一方で dpatch patch maintenance system
for Debian source packages」とあるよう Debian 有のツーです
*
11
http://dep.debian.net/deps/dep3/ 面倒のでサボリがです。すいまん。
*
12
http://wiki.debian.org/Projects/DebSrc3.0 ちな 2.0 はどいう状況りません. だれかご存知です?
8
1. ーカ圧縮して .gz 使
.gzip, bzip2, lzma, xz 使用でうにまし
2. upstream ソー数のイブ成さ合が
.orig-component.tar.ext 使 .orig-
component.tar.ext 時に compnent
3. ナのたパ
4. diff 表現ので () イナきに
.diff.gz .debian.tar.ext となおりイナ含め
とが debian/patches スパ展開され
にな (これいて)
では、日大化しつつあ Debian ーカブのサイズを抑制するめに新規ージついては gzip より
xz よる推奨いま
4.1.3 3.0 移行
source format 3.0 に以はどればうか? らば
% mkdir debian/source
% echo ’3.0 (quilt)’ > debian/source/format
% dch ’Switch to dpkg-source 3.0 (quilt) format’
けで.
diff.gz upstream パッ パッ ()
quilt しょ
debian/patches/debian-changes-<version> patch
*
13
debian-changes-<version> というパチが生成されしまいます。 quilt -p1 のパチし扱えませんの
rules 内で明示的に patch -p0 patch -p2 している場合 CDBS simple-patchsys.mk を使用してい
合に -p1 できにパ
最後に debian/rules でのパ チに関する rules を消しておくことが推奨されています。 dpkg (>=1.15.5.4) では
dpkg-source によてソースを展開する際に debian/patches 以下のパチが自動的に適用されることは既に述べまし
buildd lenny buildd buildd chroot , dpkg-source
階でソースに適用されいない場合には不合が生じます。パを更した場合には debuild を実行す
にパ。こ debuild と、 3.0 ケー生成す。
lenny dpkg 3.0 してますこれ lenny squeeze スパを使する
(backports ) に問題にならないようにするためです また、現在 debian/source/format source format
ージ来的全て source format 行さ予定
はおソー 3.0 へ移して
4.2 debian/rules
CDBS, dh debhelper 使用し debian/rules な場、例下の
*
14
*
13
うわけで > lurdan
*
14
lenny GNU Hello ケージを作成した場合す。ペーに収めるめに先頭のコントを削ます
9
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# - snip -
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
else
CROSS= --build $(DEB_BUILD_GNU_TYPE)
endif
config.status: configure
dh_testdir
# Add here commands to configure the package.
ifneq "$(wildcard /usr/share/misc/config.sub)’’ "
cp -f /usr/share/misc/config.sub config.sub
endif
ifneq ‘‘$(wildcard /usr/share/misc/config.guess)" ""
cp -f /usr/share/misc/config.guess config.guess
endif
./configure $(CROSS) --prefix=/usr --mandir=\$${prefix}/share/man --info
dir=\$${prefix}/share/info CFLAGS=’’$(CFLAGS)" LDFLAGS="-Wl,-z,defs"
build: build-stamp
build-stamp: config.status
dh_testdir
# Add here commands to compile the package.
$(MAKE)
#docbook-to-man debian/hello.sgml > hello.1
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp
# Add here commands to clean up after the build process.
[ ! -f Makefile ] || $(MAKE) distclean
rm -f config.sub config.guess
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Add here commands to install the package into debian/hello.
$(MAKE) DESTDIR=$(CURDIR)/debian/hello install
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs ChangeLog
dh_installdocs
dh_installexamples
# dh_install
# dh_installmenu
# dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_python
# dh_installinit
# dh_installcron
# dh_installinfo
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_perl
# dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
10
configure make make install dh からコマ呼びれて。こ dh から
ンド debhelper ド群す。かの外をいて dh * タイングび出だけすの
しをるだ debian/rules 随分ます CDBS, dh 法で dh * の呼出し
ルー
4.2.1 CDBS
CDBS について以前話しまし (2008 6 , 18 西 Debian
*
15
) debian/ruls Makefile
ので
Makefile target
フト、呼 target class まと
して
CDBS 用した場のビルドーゲトの流れついてはえば杉浦んの Web に良絵が公開れていま (
buildcore.mk + debhelper.mk )
1 CDBS Target flow: http://sugi.nemui.org/doc/cdbs/cdbs-targets.png
CDBS 使た場先程 GNU Hello
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/autotools.mk
なり以前した, なりと今何をるのらなます ()
初の include dh * 呼び出し設定する class, 二つ目の include autotools を使用するソスからパケー
作成る場 class CDBS 細にいて本家ドキ
*
16
考にるで。パ
属のソーは実れて使えにドてい便利が多す。いう
合は 良いりま class イズ使数は
冒頭され...
*
15
http://tokyodebian.alioth.debian.org/pdf/debianmeetingresume200810-kansai.pdf
*
16
CDBS Documentation: http://cdbs-doc.duckcorp.org/en/cdbs-doc.xhtml
11
4.2.2 dh - debhelper command sequencer
CDBS make target class 方向 dh * の呼出し蔽し Gnome KDE
境や perl python とい言語 class rules 成を易にしてるの対し dh プロ
以下です:
debhelper び出蔽し
使用ール (autotools, make, MaikeMaker )
えば GNU Hello 合になり
#!/usr/bin/make -f
%:
dh $@
...CDBS りさ潔にした ()
、これで CDBS 上にナニをしいるのかわかりません。実 dh マンドに --no-act いうオプ
が用てい試し rules 換え binary トを –no-act
uwabami@vmguest-lenny:~/Packages/hello-2.6$ dh binary --no-act
dh_testdir
dh_auto_configure
dh_auto_build
dh_auto_test
dh_testroot
dh_prep
dh_installdirs
dh_auto_install
dh_install
dh_installdocs
dh_installchangelogs
dh_installexamples
dh_installman
dh_installcatalogs
dh_installcron
dh_installdebconf
dh_installcatalogs
dh_installemacsen
dh_installifupdown
dh_installinfo
dh_installinit
dh_installmenu
dh_installmime
dh_installmodules
dh_installlogcheck
dh_installlogrotate
dh_installpam
dh_installppp
dh_installudev
dh_installwm
dh_installxfonts
dh_lintian
dh_desktop
dh_gconf
dh_icons
dh_perl
dh_pysupport
dh_scrollkeeper
dh_usrlocal
dh_link
dh_compress
dh_fixperms
dh_strip
dh_makeshlibs
dh_shlibdeps
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
出力す。 CDBS を見でき dh ンド
dh auto
始ま 5 マン
12
設定ない場合 dh auto configure がパケーのビド時に使するツーを判定しす。この定結
auto build, auto test, auto install 行さす。判定果は的にある GNU 定に
、例えば configure 時の –prefix=/usr install DESTDIR など GNU ケージ用に設定されていま
(ので GNU Hello )
意して欲しいのは configure configure.ac パースしていわけではないので dh auto * は変数を自動設定をし
るわけではない、という事す。 configure に対して Debian ージ用のフラグを適用たり、環境変数を追加
る場合に、適宜変を設定したりする要がありす。また、ソフトアにてはルド時に configure,
make, make install 外の操作をす必要があたります。このたの機能が dh override before, after
す。
4.2.3 ! the magic debhelper rules
例え GNU Hello configure オプンに--with-gnu-ld --disable-nls といたオプシンがあり
configure 時に? の場 dh auto configure
し時ンをえるしまえば lenny --before, --after を使す。
#!/usr/bin/make -f
%:
dh $@
build: build-stamp
build-stamp:
dh build --before configure
dh_auto_configure -- --with-gnu-ld --disable-nls
dh build --after configure
touch build-stamp
squeeze/sid dh override う機追加おりがさ単にます
*
17
#!/usr/bin/make -f
%:
dh $@
overide_dh_auto_configure:
dh_auto_configure -- --with-gnu-ld --disable-nls
squeeze/sid 版の override が直感的にわかりすいですね。また squeeze/sid dh マン –no-act の際
override
uwabami@vmguest-sid:~/Packages/hello-2.6$ dh binary --no-act
dh_testdir
debian/rules override_dh_auto_configure
dh_auto_build
dh_auto_test
...
override ませ override び出番がきま
*
18
以下では squeeze/sid dh コマンドについて解説します。残念ながら lenny debhelper は若干古いですので
sqeeze/sid debhelper を導入しましう。 dh コマンドの使い方については Debconf9 での Joey Hess 御大による
debhelper 資料
*
19
の所掲載 dh
を利 rules 例を示し
1. 動判とはルドを使
#!/usr/bin/make -f
%:
dh $@ --buildsystem perl_build
*
17
override debhelper (>= 7.0.50) の機能で
*
18
西さん DEB UPDATE RCD PARAMS 場合 dh installinit override れば良い思います.
*
19
http://joey.kitenet.net/talks/debhelper/debhelper-slides.pdf
13
2. upstream サブトリ src make -C レク ( build)
実行
#!/usr/bin/make -f
%:
dh $@ --sourcedirectory=src \
--builddirectory=build
3. quilt 使て、 configure changelog とし changelog.html
#!/usr/bin/make -f
%:
dh $@ --with quilt \
--builddirectory obj \
--sourcedirectory source
override_dh_auto_configure:
autoconf
dh_auto_configure -- --with-sdl CC=/usr/bin/gcc-4.1
override_dh_installchangelogs:
dh_installchangelos changelog.html
どな
4.3 debhelper vs CDBS vs dh
Joey Hess のプ資料
debhelper 定可目は 138
CDBS 設定項目 138 + 153
dh 設定項目 138 + 12
ていす。
御大は 私が比較するのは unfair だ」とおゃってますが rules の可読性/可変性は dh の方が圧倒的に優れ
ているといま。特に、 dh 一番しい所は–no-act によ work frow 握しやすことまた
Build-Depends る、うのの利しれん。
方、 CDBS work flow しにいでけれ対応ていビルツーが多事がげらます CDBS
Make, SCons(Make 代替), Perl, Python, Cmake, Ant, Qmake, Gnome, KDE class りますし
体には収録されてませんが pkg-kde-tools, pkg-ruby-tools 供されていま。これら class を使すること
rules 共通非常潔にきま dh , 現時してルドルは
uwabami@vmguest-sid$ dh_auto_build --list
autoconf GNU Autoconf (configure)
perl_makemaker Perl ExtUtils::MakeMaker (Makefile.PL)
makefile simple Makefile
python_distutils Python Distutils (setup.py)
perl_build Perl Module::Build (Build.PL)
cmake CMake (CMakeLists.txt)
ant Ant (build.xml)
qmake qmake (*.pro)
た所
はおソー CDBS or dh .
CDBS 使いるには dh かえ下さ
後にど。元で dh ruby 関連中で setup.rb, extconf.rb でき多分 CDBS
肢になるだろ, と思ています (あと rake 用の build 拡張ができれば dh make gems の完成で)。これについ
... 時間と紙面の都合で今は載せられまん。そのうち勉強でお話しします。いうわけで、 深追い」タイトル
偽りですみま...Orz
14
36 西 Debian 強会 2010 06
5 puppet $HOME
敷悟
回はんのに入便 puppet ご紹す。
5.1
速ですが、まずは動かしてみてもらおう思います lv をネタに使うので lv の設定を ˜/.lv いている人は
旦適退避しさい
の為前に ˜/.lv おき
5.1.1 サン
にはれ、 puppet ルし
puppet-el emacs クス emacs 使わ OK
、な割と
$ sudo aptitude install puppet puppet-el
$ emacs site.pp
エデタが起動したら、 site.pp には次のように入力してください。 site.pp は糸繰りの譜面、つまり設定フイル
。な# コメなのして構い
# sudo が必
package { "lv":
ensure => installed,
}
file { "/home/yourname/.lv":
content => "-c",
}
力が終わたら、保存しコマンドに戻りま。では、いよ puppet てもらうことにしす。トに
でき aptitude purge lv してもいう。
$ puppet site.pp
が起確認てくい。りすが…
15
5.2
5.2.1 の整
に進、用介だてお
site.pp た設ストース puppet
スト package file puppet
リソあら決まくリを作もで
ソー成要基本書式ようますりの注意ださ
イプ : リソの種
イト : スの
: メー
イプ {
"イト":
=> ,
=> ,
...
=> ;
"イト":
...
}
5.3 puppet
こでを休 puppet のもいて少してお
puppet えばとい sudo 使てや
ジ操作」 /etc の設定変 プロセスの起動停止」とい作業容を、事前にレシピを書いおく
で、 puppet がで
5.3.1
puppet だいのよ構成ます
puppet : マン
puppetd : puppetmasterd トしれをるデ
puppetmasterd : puppetd トにて適布すーモ
は、 puppet 使は、 puppetmasterd puppetd で多中管
りし
すが、今はそれは旦おいておいて、 puppet マンドを使たお手軽方法をベスに進めいきますでご
置きい。
後で紹介すが通のにつも既ほどや資るの興味る方ちら参照
ばとす。
16
5.3.2
puppet 使型的
の種んなのだ
実際のところ、 puppet コマンドを使う場合は、/etc/puppet ではなく˜/.puppet が主な作業場所として想定され
す。
/etc/puppet/ : puppet 設定
/etc/puppet/manifests : ます
/etc/puppet/templates : トフ
/etc/puppet/modules : puppet module
/var/lib/puppet : スト SSL
最初スト˜/.puppet/manifests 移動せてくだ puppet た時
˜/.puppet ていです
5.4
では、実践に戻ります lv だけでは寂しいので、他にもレシピを追加してみることにします。ょっと時間をとる
、自必須ルな適当てみさい emacs screen でも OK
5.5
をどして site.pp らと並ん通し
ースーピるこしま
puppet イン
あり
5.5.1
fqdn と関 fqdn スト
反映 」とうイジで
際のこんになす。
node myhost01.localdomain {
file {.....}
service {.....}
}
node に書定義スト定さのとていスト有効ます
emacs マシに入ど、 wicd や、な使けがれま
5.5.2
ラス、ノード程具体的ではいのですが、 とな関係しているソースをまとめて名前けと というイ
ージですに使きはに定 class ニフ include
際のこんになす。
class myconfig {
file {.....}
package {.....}
}
include myconfig
17
5.5.3
イン、クと似るのが、を取とこデフース数回でき
ころ
際のこんになす。
define emacs::config ( $content, ){
file { $name.el:
content => $content,
}
}
emacs::config { "howm":
content => (require ’howm)"
}
人的は、ラス補完目的使うとがいでラスの比でもく使れまが、 apache
(1 回だ) の補デフ apache::vhost () 使うどで
5.5.4
ールは、前述たノードやクラスとはと位置付けが異なていて、マニストの書き方といよりは、
仕方ーピをすです
的に、先に触 puppetdir/modules 、ミ puppet クトを作りま。よ使うので
fles templates 書いすが少な init.pp ればます
modules/
ルの名前/
manifests/
init.pp
files/
templates/
まと大きをモてお、必合だ込むます
た、が書いるスト中で独立高くり離こときる、他マニ
便 github 、お
ちま
5.6
いたスト充実きたモジうにいのが、は時ない、充
ていがらり出試しうとす。
5.6.1 lv ール
では、一度 .puppet/modules 移動して、モジールのためのデレクトリを用意して、モルを作てみま
mkdir -p ~/.puppet/modules/lv/manifests
emacs ~/.puppet/modules/lv/manifests/init.pp
class lv {
こに最初に書いた内容コピ
}
site.pp 消し puppet ではたリとし
ラーます
18
5.6.2 込み
て、設定を切り出たのはいいですがと同じよ puppet マンドを行しても、切り出た部分は動い
くれ init.pp にすない定が使
す。
puppet ール認識にはステ
1. puppet (modulepath) でモ教え
2. site.pp らそたク include
を実現するた site.pp include lv という一文を追加して、こいうコマンドインでもう一実行して
う。
puppet --modulepath ~/.puppet/modules ~/.puppet/manifests/site.pp
て、動い
5.6.3 出し
情こて育 site.pp ール切りそうと思うい名前の範を切取る、迷
とがも知ん。
んな使おてい能をるパすめ
すでに作 lv モジールや emacs モジール、 apache モジール xmonad モジール platex モジ
……考えです
分けの単位とてわかりやすことと、 puppet OS ジシステムとまく連携してれるために、
複数わせた時りやのがトで
た、別のにそール使いにはと考ら作と、面でい具り分きる
はな思い
5.6.4 puppet-module ルの
puppet てい puppetlabs が、ポジ alioth ようサイ
ンし
http://forge.puppetlabs.com/
ラウでジンル毎に公開されいるモジールを探したできるようにています。今はま登録されているモ
少なすがのう実しればールカタとし便利に使るよなるはと
ます
このサイトと連動して、検索や取得 (その気があれば公開も) をするためのコマンドラインツールもあります。それ
puppet-module
のと github から取得りまその ruby 関連メンがパ
際に使こんです
puppet-module search [keyword]
欲し
puppet-module install xx-yyy
ンロドします指定いる xx-yyy が、 forge 前空 xx ()/yyy (モジ)
てい、そ指定す。の名頭にのでールは他とかといとで
ね。
19
注意が必要なのは、 install とはいいながら、コマンドを実行したカレントデレクトリに展開するだけで、 pup-
petdir/modules に自動で配置してくれるわけではないところです。ダウンロードした後で、自分で移動させてくだ
い。
puppet-module generate てく forge
を指必要ので使用例ようます
$ bin/puppet-module generate lurdan-homedir
$ mv lurdan-homedir ~/.puppet/modules
$ cd lurdan-homedir
$ emacs manifests/init.pp
generate で作されリ構はこな感になりま。モとしフル能が装でるように
これかせていじがね。
Modulefile
README
manifests/
files/
templates/
tests/
lib/
spec/
metadata.json
ール作る慣れたられを使いとますに、ないは余ものくて
魔か
5.7 $HOME 使
て。わりやくらがです
puppet の目 (ムの) を考 root で実がほです
も、そんな大げさにシステムあじらないし、自分 home レクトリで設定フイルを適当に
してらい、とのがお題
package ぱり行は root てもう必がどしてあり。で、そまフ
を作られたら、パーミ root:root しまいますし、そもそ puppet はマニフトの中で実行ユー
のホ識すうにれてん。
5.7.1 変数け渡
は、どうしま。半ば無理矢理ではあますが、$HOME $USER puppet に渡してそれをマニフスト
受けいいす。
渡す方は、 FACTER 環境変数」というものを使て実現します。 FACTER 環境変数についての詳細は省きま
のお、渡 FACTER だとおい
体的こうじで使ます
sudo FACTER_HOME=$HOME puppet /path/to/site.pp
うした環は、ストでこに受ことます
...
file { "$home/.lv":
}
...
初にくだ。こ掛け使えばーザ直接ずに使い回
形で直すがです。ことえてこち方が融通くよなり。ユ
名埋とかね。
必要になるのは、$HOME $USER group らいので、このあたりを埋こんでシスクリプトにして
きま
20
#!/bin/sh
FACTERENV="FACTER_HOME=$HOME FACTER_USER=$USER FACTER_GROUP=‘id -gn‘"
sudo $FACTERENV puppet ~/.puppet/manifests/site.pp --modulepath ~/.puppet/modules --debug --verbose
れを ˜/.puppet/puppet.sh りにてお実行
$ ~/.puppet/puppet.sh
すれば、マニストのどこでも、$home $user $group アクセスすることがでます。実行ユーザ環境
を拾 sudo です
れでも整たのどんニフ
5.8
門センとうこ、今は、いろなポトがてい。一ーワだけ
挙します後述料とて、してださ
facter : のデ集めとし供。 puppet
: たフ
ンプ : eruby で配込み
想リ : が被する
puppet : ruby であれいらし
: 番と証とを分でき
人的いな
puppetdoc :
puppet スト
いうりま味が方は会で
5.8.1 は英
puppet 公式資料 puppetlabs ンスてい。使ため要なは比よく
れて思い、基にはす。
は下く参いま
language tutorial : http://docs.reductivelabs.com/guides/language_tutorial.html
type reference : http://docs.puppetlabs.com/references/stable/type.html
meta parameter reference : http://docs.puppetlabs.com/references/0.25.5/metaparameter.html
5.8.2 語の
puppet でに
いう下記などてみださ
回の料でーさる範出てたりますかか
なると思
ープスなム自理ツ Puppet : http://gihyo.jp/admin/serial/01/puppet
Puppet よるラ管 : http://www.sssg.org/
~
naoya/puppet/project.html
puppet スメ : http://www.slideshare.net/mizzy/puppet-3258268
21
36 西 Debian 強会 2010 06
6
Debian JP
6.1 西 Debian
回、 2010 7 の関西 Debian 強会オー 2010 Kansai @ Kyoto 37
西 Debian 勉強@OSC2010 Kyoto.
Debian T ツの LiveDVD の配ンで 野良
ら始 Debian を予いま、是場くです
6.2 西 Debian
2010 8 西 Debian 会は 8 22 () 実施定で
22
西Debian
Debian
2010 06 27 1
西 Debian
23