SyntaxHighlighter

2013/01/03

apt(LWRP)

Cookbook情報

cookbook[apt]LWRP編、レシピ編はこちら

概要

debian/ubuntuのパッケージリポジトリ管理システムのaptの設定を行う。

解説

cookbook[apt]の持つLWRPについて説明。任意のリポジトリ追加やパッケージのpinningが設定できる。

LWRP

LWRPはCookbook名+Resource名で指定でき、任意のレシピ内で使います。利用したいResourceをもつCookbookをrun_listに入れておき、他のCookbookを作る時に呼び出します。

apt_repository

aptのリポジトリを追加する。これによりpackageリソースで追加したリポジトリからのインストールが可能になる。

公式のREADMEではnginxの例が出ているので、自作のCookbookから例を。

Mongodbの10gen提供リポジトリを追加して、インストールするレシピ。https://github.com/higanworks-cookbooks/mongodb-10gen/blob/master/recipes/default.rb

apt_repository "mongodb-10gen" do
  uri "http://downloads-distro.mongodb.org/repo/ubuntu-upstart"
  distribution "dist"
  components ["10gen"]
  keyserver "keyserver.ubuntu.com"
  key "7F0CEB10"
end

これでリポジトリが追加され、ついでにapt-get updateされる。Ver10.14以前のChefではバグでupdateが走らないため、executeで明示的に呼ぶ必要がある。

apt_preference

こちらはpreferenceのパラメータを指定して、そのとおり設定ファイルを作成するResource

公式READMEから使い方。

apt_preference "libmysqlclient16" do
  pin "version 5.1.49-3"
  pin_priority "700"
end

こちらは有効なケースが結構限られるのであまり使っていない、ちなみに不要になったらaction:removeで除去出来る。

適用例

apt_repositoryを実際に適用したら、設定ファイルがこのように作成される。

$ cat /etc/apt/sources.list.d/mongodb-10gen.list deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

過不足無し、リポジトリ追加完了。

あとがき

LWRPのお手軽さと、他のレシピからも使える汎用性を紹介したいのでLWRPだけに絞ったaptのcookbook紹介を作成しました。

Cookbookはなるべく各環境で専用の物を書くものではなく、できるだけ汎用的に作ってAttributeやLWRPを活用して環境を構築するという事の参考になるはず。

0 件のコメント:

コメントを投稿