<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    >
  <channel>
    <title>tnmt.info - imported from blog.tnmt.info</title>
    <atom:link href="http://feeds.tnmt.info/tnmtinfo" rel="self" type="application/rss+xml" />
    <link>http://tnmt.info</link>
    <description>tnmt.info</description>
    <language>ja</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <generator>Sweetcron</generator>
        <item>
      <title>ターミナル好きに送るCUIなIRCクライアント環境のススメ for Windows (WeeChat + Growl for Windows)</title>
      <link>http://tnmt.info/items/view/25482</link>
      <pubDate>Wed, 08 Feb 2012 02:08:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>ターミナル好きの皆さんこんにちわ。ところでIRCのクライアントって何使ってますか？</p>

<p>WindowsのIRCクライアントとしてはGUIのLimeChatがメジャーですが、今日はちょっと嗜好を変えたIRCクライアント環境を紹介します。</p>

<p>概要</p>

<p>for Windowsと言いつつ、いきなり外部のLinux Boxに依存した形になってますが、概要としてはこんな感じです。</p>

<p>Windows                   Linux Box
+-----------+             +--------------+
|           |     ssh     |              |<br />
|           | ----------&gt; |  +---------+ |           +------------+
|           |             |  | WeeChat | ----------&gt; | IRC server |
|           |             |  +---------+ |           +------------+
| +-------+ |             |      |       |
| | Growl | &lt;--------------------+       | 
| +-------+ |    notify   |              |
+-----------+             +--------------+</p>

<p>WindowsクライアントからLinux BoxにsshログインしてWeeChatを実行
WeeChatの機能拡張を利用した通知が送られる
WindowsクライアントGrowlが通知を受け取りデスクトップ通知</p>

<p>WeeChat</p>

<p>WeeChatはCUIのIRCクライアントです。ターミナルで過ごす時間の長いアタナにうってつけ、あと何か見た目で少しだけ”出来るヤツ感”も味わるかもしれません。</p>

<p>同じCUIなIRCクライアントとしてはIrrsiがありますが、WeeChatの方がデフォルトの設定でもそこそこ使い勝手がよいのとPerl, Python, Ruby, Luaなどによる機能拡張が可能なのが魅力です。</p>

<p>インストール</p>

<p>RedHat系だったらyum install weechat(FC16だと今日現在で0.3.5), Debian系だったらapt-get install weechat(Ubuntu 11.10も今日現在で0.3.5）でインストールされます。</p>

<p>設定</p>

<p>起動はweechat-cursesです。起動直後はまだ何も設定されていないので順次設定をしていきます。quickstart通りにやればそんなにハマらないはずです。</p>

<p>サーバー追加</p>

<p>/server add foovar irc.foovar.net/6668 -ssl -autoconnect</p>

<p>irc.foovar.netというホストの6668ポートへの接続をfoovarという設定名で保存しています。-ssl, -autoconnectはそれぞれssl接続と、weechat起動時に自動的に接続するオプションです。</p>

<p>ユーザー設定</p>

<p>サーバーの接続設定ごとにユーザー情報の設定が行えます。</p>

<p>ニックネーム設定</p>

<p>/set irc.server.foovar.nicks "mynick1,mynick2,mynick3,mynick4,mynick5"</p>

<p>ユーザー名と実名設定</p>

<p>/set irc.server.foovar.username "My user name"
/set irc.server.foovar.realname "My real name"</p>

<p>利用のtips</p>

<p>設定が済んだら/connect foovarでサーバーに接続し、/join #channel1でチャンネルへjoin。困ったときは/helpすれば大体分かります。以下はこれやっておく・憶えておくと便利かもというもの。</p>

<p>チャンネル移動</p>

<p>/buffer #channel2で#channel2に移動
/alias b /bufferなaliasしておくと/b #channel2でも同じ動きに
joinしている各チャンネルの未読を見て回るならAlt-a</p>

<p>キーワード登録</p>

<p>/set weechat.looks.highlight "word1,word2,word3"でキーワード設定</p>

<p>join, quitを表示しない</p>

<p>/set irc.look.smart_filter onしてから/filter add irc_smart * irc_smart_filter *</p>

<p>Growl for Windows</p>

<p>これでWeeChatを利用出来る環境は整いましたが、LimeChatにあるようなポップアップ通知が無いため、キーワードやtalkに気付きにくいという欠点があります。そこでMacの通知ツールで有名なGrowlのWindows版をインストールして、WeeChatからの通知をデスクトップ表示出来るようにします。</p>

<p>インストール</p>

<p>Growl for Windowsからダウンロード。インストーラが付いてるので素直にインストール。</p>

<p>設定</p>

<p>Securityタブ</p>

<p>Allow network notificationsをチェック
WeeChatからの通知を受け入れる為のパスワードを設定</p>

<p>weechat-growl</p>

<p>続いてWeeChat側にGrowl通知を行う拡張を追加します。今回はPythonのweechat-growlを利用しました。</p>

<p>gntp</p>

<p>weechat-growlがGrowl Network Transport Protocol (GNTP)のバインディングを利用してるのでそれをpipでインストール。</p>

<p>1
sudo pip install gntp</p>

<p>weechat-growl</p>

<p>インストール</p>

<p>1
2
3
git clone <a href="https://github.com/sorin-ionescu/weechat-growl.git" rel="external">https://github.com/sorin-ionescu/weechat-growl.git</a>
cp weechat-growl/growl.py ~/.weechat/python/autoload/
cp weechat-growl/icon.png ~/.weechat/</p>

<p>設定</p>

<p>weechatで以下のコマンド</p>

<p>/set plugins.var.python.growl.hostname 192.168.X.XでGrowlが動いている自分のWindowsホストまたはIPを指定
/set plugins.var.python.growl.password foovarbuzzでGrowl側で設定したパスワードを指定
/python load growl.pyで拡張をロード</p>

<p>これで通知が来るようになります。growl.pyを見れば細かな通知の項目が分かりますので必要に応じて適宜設定します。デフォルトでもそこそこいい感じです。</p>

<p>まとめとか補足</p>

<p>WeeChatとGrowl for Windowsを利用した、WindowsでのCUIなIRCクライアント環境を紹介しました。</p>

<p>自分はtmuxを使ってるのですが、ターミナルマルチプレクサとの組み合わせれがこれまたよくて、windowもしくはpaneの一つをWeeChatに割り当てておくと、別作業と並行してIRCが見れたり、それぞれの行き来もマウス要らずなのがかなり重宝しています。</p>

<p>繰り返し、今回はfor Windowsと言いつつ別ホストのLinux Boxに依存した形になっていますが、CygwinがあればWeeChat cygwinもありますし、MacでもhomebrewでWeeChatがインストール出来ますので、weechat-growlの通知先ホストを自身(localhost)にする変更だけで、両方とも同じ方法でいけそうな感じです。試してないけど！</p>

<p>ということで Enjoy IRC !</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>ターミナル好きの皆さんこんにちわ。ところでIRCのクライアントって何使ってますか？</p>

<p>WindowsのIRCクライアントとしてはGUIのLimeChatがメジャーですが、今日はちょっと嗜好を変えたIRCクライアント環境を紹介します。</p>

<p>概要</p>

<p>for Windowsと言いつつ、いきなり外部のLinux Boxに依存した形になってますが、概要としてはこんな感じです。</p>

<p>Windows                   Linux Box
+-----------+             +--------------+
|           |     ssh     |              |<br />
|           | ----------&gt; |  +---------+ |           +------------+
|           |             |  | WeeChat | ----------&gt; | IRC server |
|           |             |  +---------+ |           +------------+
| +-------+ |             |      |       |
| | Growl | &lt;--------------------+       | 
| +-------+ |    notify   |              |
+-----------+             +--------------+</p>

<p>WindowsクライアントからLinux BoxにsshログインしてWeeChatを実行
WeeChatの機能拡張を利用した通知が送られる
WindowsクライアントGrowlが通知を受け取りデスクトップ通知</p>

<p>WeeChat</p>

<p>WeeChatはCUIのIRCクライアントです。ターミナルで過ごす時間の長いアタナにうってつけ、あと何か見た目で少しだけ”出来るヤツ感”も味わるかもしれません。</p>

<p>同じCUIなIRCクライアントとしてはIrrsiがありますが、WeeChatの方がデフォルトの設定でもそこそこ使い勝手がよいのとPerl, Python, Ruby, Luaなどによる機能拡張が可能なのが魅力です。</p>

<p>インストール</p>

<p>RedHat系だったらyum install weechat(FC16だと今日現在で0.3.5), Debian系だったらapt-get install weechat(Ubuntu 11.10も今日現在で0.3.5）でインストールされます。</p>

<p>設定</p>

<p>起動はweechat-cursesです。起動直後はまだ何も設定されていないので順次設定をしていきます。quickstart通りにやればそんなにハマらないはずです。</p>

<p>サーバー追加</p>

<p>/server add foovar irc.foovar.net/6668 -ssl -autoconnect</p>

<p>irc.foovar.netというホストの6668ポートへの接続をfoovarという設定名で保存しています。-ssl, -autoconnectはそれぞれssl接続と、weechat起動時に自動的に接続するオプションです。</p>

<p>ユーザー設定</p>

<p>サーバーの接続設定ごとにユーザー情報の設定が行えます。</p>

<p>ニックネーム設定</p>

<p>/set irc.server.foovar.nicks "mynick1,mynick2,mynick3,mynick4,mynick5"</p>

<p>ユーザー名と実名設定</p>

<p>/set irc.server.foovar.username "My user name"
/set irc.server.foovar.realname "My real name"</p>

<p>利用のtips</p>

<p>設定が済んだら/connect foovarでサーバーに接続し、/join #channel1でチャンネルへjoin。困ったときは/helpすれば大体分かります。以下はこれやっておく・憶えておくと便利かもというもの。</p>

<p>チャンネル移動</p>

<p>/buffer #channel2で#channel2に移動
/alias b /bufferなaliasしておくと/b #channel2でも同じ動きに
joinしている各チャンネルの未読を見て回るならAlt-a</p>

<p>キーワード登録</p>

<p>/set weechat.looks.highlight "word1,word2,word3"でキーワード設定</p>

<p>join, quitを表示しない</p>

<p>/set irc.look.smart_filter onしてから/filter add irc_smart * irc_smart_filter *</p>

<p>Growl for Windows</p>

<p>これでWeeChatを利用出来る環境は整いましたが、LimeChatにあるようなポップアップ通知が無いため、キーワードやtalkに気付きにくいという欠点があります。そこでMacの通知ツールで有名なGrowlのWindows版をインストールして、WeeChatからの通知をデスクトップ表示出来るようにします。</p>

<p>インストール</p>

<p>Growl for Windowsからダウンロード。インストーラが付いてるので素直にインストール。</p>

<p>設定</p>

<p>Securityタブ</p>

<p>Allow network notificationsをチェック
WeeChatからの通知を受け入れる為のパスワードを設定</p>

<p>weechat-growl</p>

<p>続いてWeeChat側にGrowl通知を行う拡張を追加します。今回はPythonのweechat-growlを利用しました。</p>

<p>gntp</p>

<p>weechat-growlがGrowl Network Transport Protocol (GNTP)のバインディングを利用してるのでそれをpipでインストール。</p>

<p>1
sudo pip install gntp</p>

<p>weechat-growl</p>

<p>インストール</p>

<p>1
2
3
git clone <a href="https://github.com/sorin-ionescu/weechat-growl.git" rel="external">https://github.com/sorin-ionescu/weechat-growl.git</a>
cp weechat-growl/growl.py ~/.weechat/python/autoload/
cp weechat-growl/icon.png ~/.weechat/</p>

<p>設定</p>

<p>weechatで以下のコマンド</p>

<p>/set plugins.var.python.growl.hostname 192.168.X.XでGrowlが動いている自分のWindowsホストまたはIPを指定
/set plugins.var.python.growl.password foovarbuzzでGrowl側で設定したパスワードを指定
/python load growl.pyで拡張をロード</p>

<p>これで通知が来るようになります。growl.pyを見れば細かな通知の項目が分かりますので必要に応じて適宜設定します。デフォルトでもそこそこいい感じです。</p>

<p>まとめとか補足</p>

<p>WeeChatとGrowl for Windowsを利用した、WindowsでのCUIなIRCクライアント環境を紹介しました。</p>

<p>自分はtmuxを使ってるのですが、ターミナルマルチプレクサとの組み合わせれがこれまたよくて、windowもしくはpaneの一つをWeeChatに割り当てておくと、別作業と並行してIRCが見れたり、それぞれの行き来もマウス要らずなのがかなり重宝しています。</p>

<p>繰り返し、今回はfor Windowsと言いつつ別ホストのLinux Boxに依存した形になっていますが、CygwinがあればWeeChat cygwinもありますし、MacでもhomebrewでWeeChatがインストール出来ますので、weechat-growlの通知先ホストを自身(localhost)にする変更だけで、両方とも同じ方法でいけそうな感じです。試してないけど！</p>

<p>ということで Enjoy IRC !</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/25482</guid>
    </item>
        <item>
      <title>/etc/hosts.allowで外部ファイルをincludeして使う</title>
      <link>http://tnmt.info/items/view/24278</link>
      <pubDate>Wed, 30 Nov 2011 00:31:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>tcp_wrappers 好きの皆さんこんにちわ。
/etc/hosts.allow でアクセス制限管理してますか？</p>

<p>ふと、「/etc/hosts.allowでincludeって出来ないのかなあ」と思って</p>

<pre><code>man hosts.allow
</code></pre>

<p>してみたところ、”PATTERNS” のところに</p>

<blockquote>
  <p>A string that begins with a ‘/´ character is treated as a file name. A host name or address is matched if it matches any host name or address pattern listed in the named file. The  file  format is zero or more lines with zero or more host name or address patterns separated by whitespace.  A file name pattern can be used anywhere a host name or address pattern can be used.</p>
</blockquote>

<p>アドレスを書く部分が ‘/’ で始まる場合はファイルで指定出来ると書いてあったので試してみました。</p>

<ul>
<li>/etc/hosts.deny で “ALL:   ALL” で全拒否</li>
<li>/etc/hosts.allow でホワイトリストとして管理</li>
</ul>

<p>してるときに、 /etc/hosts.allow に以下のように記載し</p>

<pre><code>sshd:    /etc/hosts.sshd_allow
</code></pre>

<p>includeするファイルを以下のように作成すると</p>

<pre><code>192.168.1.10
192.168.1.11
</code></pre>

<p>通常記載するような以下の動きと同じになります。</p>

<pre><code>sshd:    192.168.1.10
sshd:    192.168.1.11
</code></pre>

<p>役割が違うサーバーのそれぞれの /etc/hosts.allow をバージョン管理していて、両方で共通のルールだけ別ファイルで一元管理などに便利に使えそうです。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>tcp_wrappers 好きの皆さんこんにちわ。
/etc/hosts.allow でアクセス制限管理してますか？</p>

<p>ふと、「/etc/hosts.allowでincludeって出来ないのかなあ」と思って</p>

<pre><code>man hosts.allow
</code></pre>

<p>してみたところ、”PATTERNS” のところに</p>

<blockquote>
  <p>A string that begins with a ‘/´ character is treated as a file name. A host name or address is matched if it matches any host name or address pattern listed in the named file. The  file  format is zero or more lines with zero or more host name or address patterns separated by whitespace.  A file name pattern can be used anywhere a host name or address pattern can be used.</p>
</blockquote>

<p>アドレスを書く部分が ‘/’ で始まる場合はファイルで指定出来ると書いてあったので試してみました。</p>

<ul>
<li>/etc/hosts.deny で “ALL:   ALL” で全拒否</li>
<li>/etc/hosts.allow でホワイトリストとして管理</li>
</ul>

<p>してるときに、 /etc/hosts.allow に以下のように記載し</p>

<pre><code>sshd:    /etc/hosts.sshd_allow
</code></pre>

<p>includeするファイルを以下のように作成すると</p>

<pre><code>192.168.1.10
192.168.1.11
</code></pre>

<p>通常記載するような以下の動きと同じになります。</p>

<pre><code>sshd:    192.168.1.10
sshd:    192.168.1.11
</code></pre>

<p>役割が違うサーバーのそれぞれの /etc/hosts.allow をバージョン管理していて、両方で共通のルールだけ別ファイルで一元管理などに便利に使えそうです。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/24278</guid>
    </item>
        <item>
      <title>Wordpress to Octopress</title>
      <link>http://tnmt.info/items/view/24110</link>
      <pubDate>Sun, 20 Nov 2011 22:11:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>BlogをWordpressからOctopressに変更しました。</p>

<p>こちらの記事 を参考にpermalinkは変わらず。RSSも新しいURLにリダイレクト。</p>

<p>mizzyさんが scpでのデプロイ方法 を書いてくれてるので、Github Pages ではなくレンタルサーバーに乗せてます。</p>

<p>見た目も少ーしだけ変更。デザインとか分からなすぎて泣ける。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>BlogをWordpressからOctopressに変更しました。</p>

<p>こちらの記事 を参考にpermalinkは変わらず。RSSも新しいURLにリダイレクト。</p>

<p>mizzyさんが scpでのデプロイ方法 を書いてくれてるので、Github Pages ではなくレンタルサーバーに乗せてます。</p>

<p>見た目も少ーしだけ変更。デザインとか分からなすぎて泣ける。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/24110</guid>
    </item>
        <item>
      <title>Fedora 16へのアップグレード (preupgrade-cli)</title>
      <link>http://tnmt.info/items/view/23857</link>
      <pubDate>Thu, 10 Nov 2011 01:29:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>もはや、preupgrade-cli成功したよ報告にしかなってないですが。</p>

<p>tnmt@fedora% sudo LANG=C preupgrade-cli "Fedora 16 (Verne)"
Loaded plugins: blacklist, langpacks, whiteout
No plugin match for: rpm-warm-cache
No plugin match for: remove-with-leaves
No plugin match for: auto-update-debuginfo
No plugin match for: refresh-packagekit
Loaded plugins: langpacks, presto
preupgrade-main (mirrorlist)
  url: <a href="http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-16" rel="external">http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-16</a>&#038;arch=$basearch
  now: <a href="http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-16" rel="external">http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-16</a>&#038;arch=x86_64
preupgrade (mirrorlist)
  url: <a href="http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/16/Fedora" rel="external">http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/16/Fedora</a>/$basearch/os/
  now: <a href="http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/16/Fedora/x86_64/os" rel="external">http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/16/Fedora/x86_64/os</a>/
preupgrade-fedora (mirrorlist)
  url: <a href="https://mirrors.fedoraproject.org/metalink?repo=fedora-16" rel="external">https://mirrors.fedoraproject.org/metalink?repo=fedora-16</a>&#038;arch=x86_64
  now: <a href="https://mirrors.fedoraproject.org/metalink?repo=fedora-16" rel="external">https://mirrors.fedoraproject.org/metalink?repo=fedora-16</a>&#038;arch=x86_64
preupgrade-updates (mirrorlist)
  url: <a href="https://mirrors.fedoraproject.org/metalink?repo=updates-released-f16" rel="external">https://mirrors.fedoraproject.org/metalink?repo=updates-released-f16</a>&#038;arch=x86_64
  now: <a href="https://mirrors.fedoraproject.org/metalink?repo=updates-released-f16" rel="external">https://mirrors.fedoraproject.org/metalink?repo=updates-released-f16</a>&#038;arch=x86_64
<a href="http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/16/Fedora/x86_64/os//.treeinfo" rel="external">http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/16/Fedora/x86_64/os//.treeinfo</a>: [Errno 14] HTTP Error 404 - Not Found : <a href="http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/16/Fedora/x86_64/os//.treeinfo" rel="external">http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/16/Fedora/x86_64/os//.treeinfo</a>
Trying other mirror.
Fetched treeinfo from <a href="http://mirrors.isu.net.sa/pub/fedora/linux/releases/16/Fedora/x86_64/os//.treeinfo" rel="external">http://mirrors.isu.net.sa/pub/fedora/linux/releases/16/Fedora/x86_64/os//.treeinfo</a>
treeinfo timestamp: Thu Nov  3 12:10:12 2011
MEMORY                                                                                                                                                                                     |  883 B     00:00
vmlinuz                                                                                                                                                                                    | 3.9 MB     00:24
initrd.img                                                                                                                                                                                 | 129 MB     13:11
preupgrade-updates/group                                                                                                                                                                   | 1.9 MB     00:00
preupgrade-fedora/group_gz                                                                                                                                                                 | 431 kB     00:00
preupgrade-updates/group_gz                                                                                                                                                                | 431 kB     00:00
--&gt; Running transaction check
---&gt; Package abattis-cantarell-fonts.noarch 0:0.0.6-1.fc15 will be updated
---&gt; Package abattis-cantarell-fonts.noarch 0:0.0.7-1.fc16 will be an update
---&gt; Package acl.x86_64 0:2.2.49-11.fc15 will be updated
---&gt; Package acl.x86_64 0:2.2.51-2.fc16 will be an update
---&gt; Package adwaita-cursor-theme.noarch 0:3.0.2-1.fc15 will be updated
---&gt; Package adwaita-cursor-theme.noarch 0:3.2.1-2.fc16 will be an update
---&gt; Package alsa-tools-firmware.x86_64 0:1.0.24.1-2.fc15 will be updated
---&gt; Package alsa-tools-firmware.x86_64 0:1.0.24.1-3.fc16 will be an update
---&gt; Package alsa-utils.x86_64 0:1.0.24.1-3.fc15 will be updated
---&gt; Package alsa-utils.x86_64 0:1.0.24.1-5.fc16 will be an update
---&gt; Package apg.x86_64 0:2.3.0b-10.fc15 will be updated
---&gt; Package apg.x86_64 0:2.3.0b-11.fc16 will be an update
---&gt; Package apr.x86_64 0:1.4.5-1.fc15 will be updated
---&gt; Package apr.x86_64 0:1.4.5-1.fc16 will be an update
---&gt; Package apr-util.x86_64 0:1.3.12-1.fc15 will be updated
---&gt; Package apr-util.x86_64 0:1.3.12-1.fc16 will be an update
---&gt; Package at.x86_64 0:3.1.12-9.fc15 will be updated
---&gt; Package at.x86_64 0:3.1.13-3.fc16 will be an update
---&gt; Package atk.x86_64 0:2.0.0-1.fc15 will be updated
---&gt; Package atk.x86_64 0:2.2.0-2.fc16 will be an update</p>

<p>(..snip)</p>

<p>--&gt; Finished Dependency Resolution
Packages we need to download
ConsoleKit.x86_64                        0.4.5-1.fc15           preupgrade-fedora
ConsoleKit-libs.x86_64                   0.4.5-1.fc15           preupgrade-fedora
GConf2.x86_64                            3.2.0-1.fc16           preupgrade-fedora
NetworkManager-glib.x86_64               1:0.9.1.90-5.git20110927.fc16
                                                                preupgrade-fedora
abattis-cantarell-fonts.noarch           0.0.7-1.fc16           preupgrade-fedora
acl.x86_64                               2.2.51-2.fc16          preupgrade-fedora
adwaita-cursor-theme.noarch              3.2.1-2.fc16           preupgrade-fedora
alsa-tools-firmware.x86_64               1.0.24.1-3.fc16        preupgrade-fedora
alsa-utils.x86_64                        1.0.24.1-5.fc16        preupgrade-updates
apg.x86_64                               2.3.0b-11.fc16         preupgrade-fedora
apr.x86_64                               1.4.5-1.fc16           preupgrade-fedora
apr-util.x86_64                          1.3.12-1.fc16          preupgrade-fedora
at.x86_64                                3.1.13-3.fc16          preupgrade-fedora
atk.x86_64                               2.2.0-2.fc16           preupgrade-fedora
atkmm.x86_64                             2.22.5-1.fc16          preupgrade-fedora
attr.x86_64                              2.4.46-2.fc16          preupgrade-fedora
audit.x86_64                             2.1.3-4.fc16           preupgrade-fedora
audit-libs.x86_64                        2.1.3-4.fc16           preupgrade-fedora</p>

<p>(..snip)</p>

<p>yum-metadata-parser.x86_64               1.1.4-5.fc16           preupgrade-fedora
yum-presto.noarch                        0.7.1-1.fc16           preupgrade-fedora
yum-utils.noarch                         1.1.31-2.fc16          preupgrade-fedora
zlib.x86_64                              1.2.5-4.fc16           preupgrade-fedora
Total download size: 270.2MB
Download packages?
Is this ok [y/N]: y
Setting up and reading Presto delta metadata
preupgrade-updates/prestodelta                                                                                                                                                             |  64 kB     00:00
preupgrade-fedora/prestodelta                                                                                                                                                              | 791 kB     00:00
Processing delta metadata
Download delta size: 1.5 M</p>

<p>(..snip)</p>

<p>(526/532): yajl-1.0.12-1.fc16.x86_64.rpm                                                                                                                                                   |  28 kB     00:00
(527/532): yelp-xsl-3.2.1-1.fc16.noarch.rpm                                                                                                                                                | 278 kB     00:00
(528/532): yum-3.4.3-5.fc16.noarch.rpm                                                                                                                                                     | 1.0 MB     00:00
(529/532): yum-langpacks-0.2.4-1.fc16.noarch.rpm                                                                                                                                           |  18 kB     00:00
(530/532): yum-metadata-parser-1.1.4-5.fc16.x86_64.rpm                                                                                                                                     |  26 kB     00:00
(531/532): yum-presto-0.7.1-1.fc16.noarch.rpm                                                                                                                                              |  33 kB     00:00
(532/532): zlib-1.2.5-4.fc16.x86_64.rpm                                                                                                                                                    |  82 kB     00:00
Generating metadata for preupgrade repo
preupgrade                                                                                                                                                                                 | 3.7 kB     00:00
preupgrade/primary_db                                                                                                                                                                      | 2.3 MB     00:13
preupgrade/group                                                                                                                                                                           | 1.9 MB     00:10
Spawning worker 0 with 547 pkgs
Workers Finished
Gathering worker results</p>

<p>Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
Preparing system to boot into installer
DEBUG /sbin/grubby --title="Upgrade to Fedora 16 (Verne)" --remove-kernel="/boot/upgrade/vmlinuz" --add-kernel="/boot/upgrade/vmlinuz" --initrd="/boot/upgrade/initrd.img" --args="preupgrade repo=hd::/var/cache/yum/preupgrade  ks=hd:UUID=3e6914b1-5eed-4f85-8465-4eb52bcc36d6:/upgrade/ks.cfg"
Probing devices to guess BIOS drives. This may take a long time.
All finished. The upgrade will begin when you reboot.</p>

<pre><code>あとはメッセージの通りrebootするだけ。
以前にFeodra 10から12、Fedora 13から14とかやってますが、ハマりどころはもうなくて、サクっとコマンド一発。
/boot 以下の容量の兼ね合いで、10から12の時には容量足らない時には問答無用で失敗、13から14の時にはその旨警告が出て、reboot後にアップグレード用のパッケージがダウンロードされるような動きでしたが、今回は容量に余裕がある / 配下にダウンロードされているよう（な動きだった）で、詰まりどころは皆無でした。
関係ないけど、Fedora 15のコードネーム "Lovelock" って何かかっこ良くて好きでした。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>もはや、preupgrade-cli成功したよ報告にしかなってないですが。</p>

<p>tnmt@fedora% sudo LANG=C preupgrade-cli "Fedora 16 (Verne)"
Loaded plugins: blacklist, langpacks, whiteout
No plugin match for: rpm-warm-cache
No plugin match for: remove-with-leaves
No plugin match for: auto-update-debuginfo
No plugin match for: refresh-packagekit
Loaded plugins: langpacks, presto
preupgrade-main (mirrorlist)
  url: <a href="http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-16" rel="external">http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-16</a>&#038;arch=$basearch
  now: <a href="http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-16" rel="external">http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-16</a>&#038;arch=x86_64
preupgrade (mirrorlist)
  url: <a href="http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/16/Fedora" rel="external">http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/16/Fedora</a>/$basearch/os/
  now: <a href="http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/16/Fedora/x86_64/os" rel="external">http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/16/Fedora/x86_64/os</a>/
preupgrade-fedora (mirrorlist)
  url: <a href="https://mirrors.fedoraproject.org/metalink?repo=fedora-16" rel="external">https://mirrors.fedoraproject.org/metalink?repo=fedora-16</a>&#038;arch=x86_64
  now: <a href="https://mirrors.fedoraproject.org/metalink?repo=fedora-16" rel="external">https://mirrors.fedoraproject.org/metalink?repo=fedora-16</a>&#038;arch=x86_64
preupgrade-updates (mirrorlist)
  url: <a href="https://mirrors.fedoraproject.org/metalink?repo=updates-released-f16" rel="external">https://mirrors.fedoraproject.org/metalink?repo=updates-released-f16</a>&#038;arch=x86_64
  now: <a href="https://mirrors.fedoraproject.org/metalink?repo=updates-released-f16" rel="external">https://mirrors.fedoraproject.org/metalink?repo=updates-released-f16</a>&#038;arch=x86_64
<a href="http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/16/Fedora/x86_64/os//.treeinfo" rel="external">http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/16/Fedora/x86_64/os//.treeinfo</a>: [Errno 14] HTTP Error 404 - Not Found : <a href="http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/16/Fedora/x86_64/os//.treeinfo" rel="external">http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/16/Fedora/x86_64/os//.treeinfo</a>
Trying other mirror.
Fetched treeinfo from <a href="http://mirrors.isu.net.sa/pub/fedora/linux/releases/16/Fedora/x86_64/os//.treeinfo" rel="external">http://mirrors.isu.net.sa/pub/fedora/linux/releases/16/Fedora/x86_64/os//.treeinfo</a>
treeinfo timestamp: Thu Nov  3 12:10:12 2011
MEMORY                                                                                                                                                                                     |  883 B     00:00
vmlinuz                                                                                                                                                                                    | 3.9 MB     00:24
initrd.img                                                                                                                                                                                 | 129 MB     13:11
preupgrade-updates/group                                                                                                                                                                   | 1.9 MB     00:00
preupgrade-fedora/group_gz                                                                                                                                                                 | 431 kB     00:00
preupgrade-updates/group_gz                                                                                                                                                                | 431 kB     00:00
--&gt; Running transaction check
---&gt; Package abattis-cantarell-fonts.noarch 0:0.0.6-1.fc15 will be updated
---&gt; Package abattis-cantarell-fonts.noarch 0:0.0.7-1.fc16 will be an update
---&gt; Package acl.x86_64 0:2.2.49-11.fc15 will be updated
---&gt; Package acl.x86_64 0:2.2.51-2.fc16 will be an update
---&gt; Package adwaita-cursor-theme.noarch 0:3.0.2-1.fc15 will be updated
---&gt; Package adwaita-cursor-theme.noarch 0:3.2.1-2.fc16 will be an update
---&gt; Package alsa-tools-firmware.x86_64 0:1.0.24.1-2.fc15 will be updated
---&gt; Package alsa-tools-firmware.x86_64 0:1.0.24.1-3.fc16 will be an update
---&gt; Package alsa-utils.x86_64 0:1.0.24.1-3.fc15 will be updated
---&gt; Package alsa-utils.x86_64 0:1.0.24.1-5.fc16 will be an update
---&gt; Package apg.x86_64 0:2.3.0b-10.fc15 will be updated
---&gt; Package apg.x86_64 0:2.3.0b-11.fc16 will be an update
---&gt; Package apr.x86_64 0:1.4.5-1.fc15 will be updated
---&gt; Package apr.x86_64 0:1.4.5-1.fc16 will be an update
---&gt; Package apr-util.x86_64 0:1.3.12-1.fc15 will be updated
---&gt; Package apr-util.x86_64 0:1.3.12-1.fc16 will be an update
---&gt; Package at.x86_64 0:3.1.12-9.fc15 will be updated
---&gt; Package at.x86_64 0:3.1.13-3.fc16 will be an update
---&gt; Package atk.x86_64 0:2.0.0-1.fc15 will be updated
---&gt; Package atk.x86_64 0:2.2.0-2.fc16 will be an update</p>

<p>(..snip)</p>

<p>--&gt; Finished Dependency Resolution
Packages we need to download
ConsoleKit.x86_64                        0.4.5-1.fc15           preupgrade-fedora
ConsoleKit-libs.x86_64                   0.4.5-1.fc15           preupgrade-fedora
GConf2.x86_64                            3.2.0-1.fc16           preupgrade-fedora
NetworkManager-glib.x86_64               1:0.9.1.90-5.git20110927.fc16
                                                                preupgrade-fedora
abattis-cantarell-fonts.noarch           0.0.7-1.fc16           preupgrade-fedora
acl.x86_64                               2.2.51-2.fc16          preupgrade-fedora
adwaita-cursor-theme.noarch              3.2.1-2.fc16           preupgrade-fedora
alsa-tools-firmware.x86_64               1.0.24.1-3.fc16        preupgrade-fedora
alsa-utils.x86_64                        1.0.24.1-5.fc16        preupgrade-updates
apg.x86_64                               2.3.0b-11.fc16         preupgrade-fedora
apr.x86_64                               1.4.5-1.fc16           preupgrade-fedora
apr-util.x86_64                          1.3.12-1.fc16          preupgrade-fedora
at.x86_64                                3.1.13-3.fc16          preupgrade-fedora
atk.x86_64                               2.2.0-2.fc16           preupgrade-fedora
atkmm.x86_64                             2.22.5-1.fc16          preupgrade-fedora
attr.x86_64                              2.4.46-2.fc16          preupgrade-fedora
audit.x86_64                             2.1.3-4.fc16           preupgrade-fedora
audit-libs.x86_64                        2.1.3-4.fc16           preupgrade-fedora</p>

<p>(..snip)</p>

<p>yum-metadata-parser.x86_64               1.1.4-5.fc16           preupgrade-fedora
yum-presto.noarch                        0.7.1-1.fc16           preupgrade-fedora
yum-utils.noarch                         1.1.31-2.fc16          preupgrade-fedora
zlib.x86_64                              1.2.5-4.fc16           preupgrade-fedora
Total download size: 270.2MB
Download packages?
Is this ok [y/N]: y
Setting up and reading Presto delta metadata
preupgrade-updates/prestodelta                                                                                                                                                             |  64 kB     00:00
preupgrade-fedora/prestodelta                                                                                                                                                              | 791 kB     00:00
Processing delta metadata
Download delta size: 1.5 M</p>

<p>(..snip)</p>

<p>(526/532): yajl-1.0.12-1.fc16.x86_64.rpm                                                                                                                                                   |  28 kB     00:00
(527/532): yelp-xsl-3.2.1-1.fc16.noarch.rpm                                                                                                                                                | 278 kB     00:00
(528/532): yum-3.4.3-5.fc16.noarch.rpm                                                                                                                                                     | 1.0 MB     00:00
(529/532): yum-langpacks-0.2.4-1.fc16.noarch.rpm                                                                                                                                           |  18 kB     00:00
(530/532): yum-metadata-parser-1.1.4-5.fc16.x86_64.rpm                                                                                                                                     |  26 kB     00:00
(531/532): yum-presto-0.7.1-1.fc16.noarch.rpm                                                                                                                                              |  33 kB     00:00
(532/532): zlib-1.2.5-4.fc16.x86_64.rpm                                                                                                                                                    |  82 kB     00:00
Generating metadata for preupgrade repo
preupgrade                                                                                                                                                                                 | 3.7 kB     00:00
preupgrade/primary_db                                                                                                                                                                      | 2.3 MB     00:13
preupgrade/group                                                                                                                                                                           | 1.9 MB     00:10
Spawning worker 0 with 547 pkgs
Workers Finished
Gathering worker results</p>

<p>Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
Preparing system to boot into installer
DEBUG /sbin/grubby --title="Upgrade to Fedora 16 (Verne)" --remove-kernel="/boot/upgrade/vmlinuz" --add-kernel="/boot/upgrade/vmlinuz" --initrd="/boot/upgrade/initrd.img" --args="preupgrade repo=hd::/var/cache/yum/preupgrade  ks=hd:UUID=3e6914b1-5eed-4f85-8465-4eb52bcc36d6:/upgrade/ks.cfg"
Probing devices to guess BIOS drives. This may take a long time.
All finished. The upgrade will begin when you reboot.</p>

<pre><code>あとはメッセージの通りrebootするだけ。
以前にFeodra 10から12、Fedora 13から14とかやってますが、ハマりどころはもうなくて、サクっとコマンド一発。
/boot 以下の容量の兼ね合いで、10から12の時には容量足らない時には問答無用で失敗、13から14の時にはその旨警告が出て、reboot後にアップグレード用のパッケージがダウンロードされるような動きでしたが、今回は容量に余裕がある / 配下にダウンロードされているよう（な動きだった）で、詰まりどころは皆無でした。
関係ないけど、Fedora 15のコードネーム "Lovelock" って何かかっこ良くて好きでした。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/23857</guid>
    </item>
        <item>
      <title>#isucon に参加してきました</title>
      <link>http://tnmt.info/items/view/22393</link>
      <pubDate>Sun, 28 Aug 2011 11:34:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>なんでもありのWebアプリケーション高速化バトル、#isucon 開催のお知らせ
    参加経緯 後、@hansode さんを含め、@kyanny さんと俺の3人、”チーム情熱会” で参加してきました。
    結果は審査用の3分間ベンチマークがこけたので、参考数値の100,604/minが最終でした。
    チームでやれたこと</p>

<pre><code>mysqlのパラメータ調整(innodb周りとか)
mysql問い合わせ結果をmemcachedでキャッシュ
リバースプロキシをapacheからnginxに変更

刺身さんがアプリで入れてくれたクエリキャッシュが一番効果あったと思います。
俺はリバースプロキシの変更をやったくらいで、nginxにしてパフォーマンス下がったときはちょっと涙目だったけどベンチチールのhttpのkeep-alive罠を回避出来たのは良かったかな。
DBがボトルネックになってて原因になるクエリがあったのは早い段階で気づいていたけど、俺のSQLレベルが低すぎて全然役に立ててなかった。。
終わった後の優勝チーム&amp;#8221;fujiwara組&amp;#8221;の @fujiwara さんと、最終的に3位になるかもしれない？ 準優勝チーム&amp;#8221;いんふらえんじにあー&amp;#8221;の @netmarkjp さんからのつぶやき引用。



重くないところをいじってもスコアなんて誤差しか変わらないから、真摯に一番負荷の掛かってるところを見極めるべし、ですよless than a minute ago via YoruFukurou  Favorite  Retweet  ReplyFUJIWARA Shunichirofujiwara





今日の #isucon も先日の #tuningathon もだけど、チューニングのときにhotspotじゃないところをいじるの好きな人が多い。初見でトップダウンアプローチで安定して確実に短時間に成果出すのはキツい。着実にボトムアップアプローチできるようになれば安定して2位とれるless than a minute ago via TweetDeck  Favorite  Retweet  Replyばば としあきnetmarkjp


ばばさんのはギクッというか、ああ俺だわっていう感じが。自分が分かることしか出来ないのは勿論あるんだけど。実力を知るいい機会になりました。
今回のチューニングのポイント・やり方は自分のお作法にもフィードバックして、あとほぼ今回初めて触ったけどnginx周りについては色々勉強になったので実業務にも活かせればと思います。
主催のlivedoorの皆様、参加者の皆様お疲れ様でした。素敵・素晴らしいイベントだったと思います。
チーム情熱会のお二人も一緒に出させてもらって楽しかったです、ありがとうございました。
あー、復習でひとりisuconやろう。そのあとチームでisucon振り返りもいいなー。
</code></pre>

<p>Related posts:HP ML110 G5 がやってきた : 開封の儀 つい先日 .bbpBox{background:url(http://s.twimg.com/a/1288305442/images/themes/theme1/bg.png) #C0DEED;padding:20px; [...]...</p>

<p>関連記事はYARPP関連記事プラグインによって表示されています。</p>
                          <img src="http://si0.twimg.com/images/dev/cms/intents/icons/favorite.png" alt="" />
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>なんでもありのWebアプリケーション高速化バトル、#isucon 開催のお知らせ
    参加経緯 後、@hansode さんを含め、@kyanny さんと俺の3人、”チーム情熱会” で参加してきました。
    結果は審査用の3分間ベンチマークがこけたので、参考数値の100,604/minが最終でした。
    チームでやれたこと</p>

<pre><code>mysqlのパラメータ調整(innodb周りとか)
mysql問い合わせ結果をmemcachedでキャッシュ
リバースプロキシをapacheからnginxに変更

刺身さんがアプリで入れてくれたクエリキャッシュが一番効果あったと思います。
俺はリバースプロキシの変更をやったくらいで、nginxにしてパフォーマンス下がったときはちょっと涙目だったけどベンチチールのhttpのkeep-alive罠を回避出来たのは良かったかな。
DBがボトルネックになってて原因になるクエリがあったのは早い段階で気づいていたけど、俺のSQLレベルが低すぎて全然役に立ててなかった。。
終わった後の優勝チーム&amp;#8221;fujiwara組&amp;#8221;の @fujiwara さんと、最終的に3位になるかもしれない？ 準優勝チーム&amp;#8221;いんふらえんじにあー&amp;#8221;の @netmarkjp さんからのつぶやき引用。



重くないところをいじってもスコアなんて誤差しか変わらないから、真摯に一番負荷の掛かってるところを見極めるべし、ですよless than a minute ago via YoruFukurou  Favorite  Retweet  ReplyFUJIWARA Shunichirofujiwara





今日の #isucon も先日の #tuningathon もだけど、チューニングのときにhotspotじゃないところをいじるの好きな人が多い。初見でトップダウンアプローチで安定して確実に短時間に成果出すのはキツい。着実にボトムアップアプローチできるようになれば安定して2位とれるless than a minute ago via TweetDeck  Favorite  Retweet  Replyばば としあきnetmarkjp


ばばさんのはギクッというか、ああ俺だわっていう感じが。自分が分かることしか出来ないのは勿論あるんだけど。実力を知るいい機会になりました。
今回のチューニングのポイント・やり方は自分のお作法にもフィードバックして、あとほぼ今回初めて触ったけどnginx周りについては色々勉強になったので実業務にも活かせればと思います。
主催のlivedoorの皆様、参加者の皆様お疲れ様でした。素敵・素晴らしいイベントだったと思います。
チーム情熱会のお二人も一緒に出させてもらって楽しかったです、ありがとうございました。
あー、復習でひとりisuconやろう。そのあとチームでisucon振り返りもいいなー。
</code></pre>

<p>Related posts:HP ML110 G5 がやってきた : 開封の儀 つい先日 .bbpBox{background:url(http://s.twimg.com/a/1288305442/images/themes/theme1/bg.png) #C0DEED;padding:20px; [...]...</p>

<p>関連記事はYARPP関連記事プラグインによって表示されています。</p>
                          <img src="http://si0.twimg.com/images/dev/cms/intents/icons/favorite.png" alt="" />
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/22393</guid>
    </item>
        <item>
      <title>#isucon に参戦します</title>
      <link>http://tnmt.info/items/view/21687</link>
      <pubDate>Sun, 31 Jul 2011 14:55:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><h1>isucon に応募しました（同僚が！）</h1>

<pre><code>livedoor Techブログ : 【締め切りました】Webアプリケーション高速化バトル、#isucon 詳細と参加者募集開始
俺もチューニンガソン面白そうだなと思ってたんだけど締め切り後で参加できなかったので、社内SNSで刺身さんが、「メンバー求む！当方ウェブアプリケーションブログラマ Perl Ruby MySQL Apache 経験あり プロ志向 やる気のない奴お断り モヒカン不可」というメン募風の呼びかけがあったところに、「当方モヒカンじゃないインフラエンジニアです。」という返答をして参加させてもらうことに。
刺身さんも書いてたけど、顔ぶれを見ると結構レベル高そうだなーと思ってます。まあ胸を借りるくらいの感じで楽しめたらいいなあと。
あと1か月弱あるんで少し修行してきます。やってやんよ！
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><h1>isucon に応募しました（同僚が！）</h1>

<pre><code>livedoor Techブログ : 【締め切りました】Webアプリケーション高速化バトル、#isucon 詳細と参加者募集開始
俺もチューニンガソン面白そうだなと思ってたんだけど締め切り後で参加できなかったので、社内SNSで刺身さんが、「メンバー求む！当方ウェブアプリケーションブログラマ Perl Ruby MySQL Apache 経験あり プロ志向 やる気のない奴お断り モヒカン不可」というメン募風の呼びかけがあったところに、「当方モヒカンじゃないインフラエンジニアです。」という返答をして参加させてもらうことに。
刺身さんも書いてたけど、顔ぶれを見ると結構レベル高そうだなーと思ってます。まあ胸を借りるくらいの感じで楽しめたらいいなあと。
あと1か月弱あるんで少し修行してきます。やってやんよ！
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/21687</guid>
    </item>
        <item>
      <title>Cobbler+KoanでScientific Linux 6.0なKVMのVMをコマンド一発で作成する</title>
      <link>http://tnmt.info/items/view/21132</link>
      <pubDate>Wed, 06 Jul 2011 23:06:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>エンジニアは七夕までにCentOS6と巡り逢えるのでしょうか。
    今回はいつも使っているCentOSから趣を変えて、Scientific Linuxを触ってみます。色々検証する為にScientific LinuxなVMを簡単につくれる環境をCobbler+Koanを使って準備しました。
    Cobbler+Koan
    Cobbler, Koanについては以前（っても結構前ですが）こんな発表をしたことがありまして、内容についてはそちらが参考になればと思います。CentOSと同じくScientific LinuxもRHELクローンなので、同じ方法が使えるというわけです。
    環境
    試した環境は1台のCentOS5.6物理サーバー上に、Cobbler+KoanがセットアップされたKVMの仮想母艦機です。
    実際の流れ
    Cobbler+Koanのセットアップ手順やKVM環境については省略しますが、mizzyさんのCobblerやKoan、KVM on CentOS 5.4が参考になります。
    ネットワークインストールに必要なファイルの用意
    コマンド一発です。&#8221;SL6.0-x86_64&#8243;というdistro名で準備します。</p>

<p>%  sudo cobbler import --path=rsync://ftp.jaist.ac.jp/pub/Linux/scientific/6.0/x86_64/os/ --name=SL6.0-x86_64</p>

<pre><code>ずらずらと表示されて、ネットワークインストールに必要な準備が整います。完了したら確認。
</code></pre>

<p>%  sudo cobbler distro report --name SL6.0-x86_64
Name     : SL6.0-x86_64
Architecture    : x86_64
Breed     : redhat
Comment     :
Initrd     : /var/www/cobbler/ks_mirror/SL6.0-x86_64/images/pxeboot/initrd.img
Kernel     : /var/www/cobbler/ks_mirror/SL6.0-x86_64/images/pxeboot/vmlinuz
Kernel Options    : {}
Kernel Options (Post Install)   : {}
Kickstart Metadata   : {'tree': 'http://@@http_server@@/cblr/links/SL6.0-x86_64'}
Management Classes  : []
OS Version    : generic26
Owners     : ['admin']
Red Hat Management Key : 
Red Hat Management Server : 
Template Files    : {}</p>

<p>%  sudo cobbler profile report --name SL6.0-x86_64
Name     : SL6.0-x86_64
Comment     :
DHCP Tag     : default
Distribution    : SL6.0-x86_64
Enable PXE Menu?   : 1
Kernel Options    : {}
Kernel Options (Post Install) : {}
Kickstart     : /var/lib/cobbler/kickstarts/default.ks
Kickstart Metadata   : {}
Management Classes  : []
Name Servers    : []
Name Servers Search Path : []
Owners     : ['admin']
Parent Profile    :
Red Hat Management Key : 
Red Hat Management Server : 
Repos     : []
Server Override    : 
Template Files    : {}
Virt Auto Boot    : 0
Virt Bridge    : xenbr0
Virt CPUs     : 1
Virt File Size(GB)   : 5
Virt Path     :
Virt RAM (MB)    : 512
Virt Type     : qemu</p>

<pre><code>cobblerのバージョンが古いと大元のdistroのKickstart Metadata情報が入らず、VM作成時のkickstartファイルの内容によってはOSインストールが失敗することがあるっぽいです。今回試したcobblerのバージョンでは問題なく情報が追加されました（cobbler-2.0.9-1.el5）
VM作成用のテンプレート情報作成
cobbler importでdistro, profileは自動的に作成され、これらの情報をもとにKoanでVM作成が行えますが、環境によって値を調整したい時にはsystemを登録して、各種のカスタマイズを行います。SL6.0-x86_64-templateというsystemを登録しました。
</code></pre>

<p>% sudo cobbler system add --name=SL6.0-x86_64-template --profile SL6.0-x86_64
% sudo cobbler system report --name SL6.0-x86_64-template
Name     : SL6.0-x86_64-template
Comment     :
Gateway     :
Hostname    :
Image     :
Kernel Options    : {}
Kernel Options (Post Install)   : {}
Kickstart     : 
Kickstart Metadata   : {}
Management Classes  : []
Name Servers    : []
Name Servers Search Path  : []
Netboot Enabled   : True
Owners     : ['admin']
Power Management Address :
Power ID     :
Power Password   :
Power Management Type  : ipmitool
Power Username   :
Profile     : SL6.0-x86_64
Red Hat Management Key  : 
Red Hat Management Server : 
Server Override    : 
Template Files    : {}
Virt Auto Boot    : 
Virt CPUs     : 
Virt File Size(GB)   : 
Virt Path     : 
Virt RAM (MB)    : 
Virt Type     :</p>

<pre><code>今回のケースでは

仮想母艦機にbr0というネットワークブリッジが作成されており母艦機のeth0経由で外と通信を行っているので、それをVMのeth0に割り当てる
virbr0というKVMの内部ネットワークがあるので、それをVMのeth1に割り当てる
仮想CPUは2個
VMのディスクのサイズを16GBに
コンソール上でインストール状況の確認が行えるように、カーネルに渡すパラメータを追加
専用のkickstartファイルを準備して指定（/var/lib/cobbler/kickstarts/SL6.0-x86_64-template.ks）

というカスタマイズの為、cobblerコマンドでsystemの情報を変更・追加します。
</code></pre>

<p>%  sudo cobbler system edit --name=SL6.0-x86_64-template --interface=eth0 --virt-bridge=br0
%  sudo cobbler system edit --name=SL6.0-x86_64-template --interface=eth1 --virt-bridge=virbr0
%  sudo cobbler system edit --name=SL6.0-x86_64-template --virt-cpus=2 --virt-file-size=16
%  sudo cobbler system edit --name=SL6.0-x86_64-template --kopts="serial console=ttyS0,115200" --kopts-post="console=ttyS0,115200"
%  sudo cobbler system edit --name=SL6.0-x86_64-template  --kickstart=/var/lib/cobbler/kickstarts/SL6.0-x86_64-template.ks</p>

<pre><code>用意したkickstartファイルはdefaultのものをちょこっといじっただけです。
</code></pre>

<p>--- /var/lib/cobbler/kickstarts/sample.ks       2010-12-09 12:36:41.000000000 +0900
+++ /var/lib/cobbler/kickstarts/SL6.0-x86_64-template.ks        2011-07-06 18:54:39.000000000 +0900
@@ -2,17 +2,18 @@
 # System authorization information
 auth  --useshadow  --enablemd5
 # System bootloader configuration
-bootloader --location=mbr
+#bootloader --location=mbr
+bootloader --location=mbr --append=&quot;console=tty0 console=ttyS0,115200&quot;
 # Partition clearing information
 clearpart --all --initlabel
 # Use text mode install
 text
 # Firewall configuration
-firewall --enabled
+firewall --disabled
 # Run the Setup Agent on first boot
 firstboot --disable
 # System keyboard
-keyboard us
+keyboard jp106
 # System language
 lang en_US
 # Use network installation
@@ -31,7 +32,7 @@
 # Do not configure the X Window System
 skipx
 # System timezone
-timezone  America/New_York
+timezone  Asia/Tokyo
 # Install OS instead of upgrade
 install
 # Clear the Master Boot Record</p>

<pre><code>コマンド実行後のsystemの情報は以下のようになります。
</code></pre>

<p>% sudo cobbler system report --name SL6.0-x86_64-template
Name     : SL6.0-x86_64-template
Comment     :
Gateway     :
Hostname      :
Image     :
Kernel Options    : {'serial': '~', 'console': 'ttyS0,115200'}
Kernel Options (Post Install) : {'console': 'ttyS0,115200'}
Kickstart     : /var/lib/cobbler/kickstarts/SL6.0-x86_64-template.ks
Kickstart Metadata   : {}
Management Classes   : []
Name Servers    : []
Name Servers Search Path  : []
Netboot Enabled   : True
Owners     : ['admin']
Power Management Address :
Power ID     :
Power Password   :
Power Management Type  : ipmitool
Power Username   :
Profile     : SL6.0-x86_64
Red Hat Management Key  : 
Red Hat Management Server : 
Server Override    : 
Template Files    : {}
Virt Auto Boot    : 
Virt CPUs     : 2
Virt File Size(GB)   : 16
Virt Path     : 
Virt RAM (MB)    : 
Virt Type     : 
Interface =====    : eth0
Bonding Mode    :
Bonding Master    :
Bonding Opts    :
DHCP Tag     :
DNS Name    :
IP Address    :
MAC Address    :
Static     : False
Static Routes    : []
Subnet     :
Virt Bridge     : br0
Interface =====    : eth1
Bonding Mode    :
Bonding Master    :
Bonding Opts    :
DHCP Tag     :
DNS Name    :
IP Address    :
MAC Address    :
Static     : False
Static Routes    : []
Subnet     :
Virt Bridge     : virbr0</p>

<pre><code>KoanでVMを作成
準備が整ったので、KoanでKVMなVMを作成します。Cobblerサーバーであるlocalホストと、登録したsystemを指定して、sl6test01.tnmt.localというVMを作成します。
</code></pre>

<p>% sudo koan --server localhost --virt --system=SL6.0-x86_64-template --virt-name=sl6test01.tnmt.local
- looking for Cobbler at <a href="http://localhost/cobbler_api" rel="external">http://localhost/cobbler_api</a>
- reading URL: <a href="http://192.168.XXX.20/cblr/svc/op/ks/system/SL6.0-x86_64-templateinstall_tree" rel="external">http://192.168.XXX.20/cblr/svc/op/ks/system/SL6.0-x86_64-templateinstall_tree</a>: <a href="http://192.168.XXX.20/cblr/links/SL6.0-x86_64" rel="external">http://192.168.XXX.20/cblr/links/SL6.0-x86_64</a>
libvirtd (pid  2656) is running...
- using qemu hypervisor, type=kvm
Wed, 06 Jul 2011 21:57:42 DEBUG    No conn passed to Guest, opening URI 'qemu:///system'
Wed, 06 Jul 2011 21:57:43 DEBUG    DistroInstaller location is a network source.
libvir: QEMU error : Domain not found: no domain with matching name 'sl6test01.tnmt.local'
- adding disk: /var/lib/libvirt/images//sl6test01.tnmt.local-disk0 of size 16
libvir: QEMU error : Domain not found: no domain with matching uuid '0409ba61-bfb5-8663-95f1-65398562d343'
Wed, 06 Jul 2011 21:57:44 DEBUG    Attempting to detect distro:
Wed, 06 Jul 2011 21:57:44 DEBUG    Fetching URI: <a href="http://192.168.XXX.20/cblr/links/SL6.0-x86_64/.treeinfo" rel="external">http://192.168.XXX.20/cblr/links/SL6.0-x86_64/.treeinfo</a>
Wed, 06 Jul 2011 21:57:44 DEBUG    Saved file to /var/lib/libvirt/boot/virtinst-.treeinfo.EwvpV8
Wed, 06 Jul 2011 21:57:44 DEBUG    Fetching URI: <a href="http://192.168.XXX.20/cblr/links/SL6.0-x86_64/images/pxeboot/vmlinuz" rel="external">http://192.168.XXX.20/cblr/links/SL6.0-x86_64/images/pxeboot/vmlinuz</a>
Wed, 06 Jul 2011 21:57:45 DEBUG    Saved file to /var/lib/libvirt/boot/virtinst-vmlinuz.JYd23x
Wed, 06 Jul 2011 21:57:45 DEBUG    Fetching URI: <a href="http://192.168.XXX.20/cblr/links/SL6.0-x86_64/images/pxeboot/initrd.img" rel="external">http://192.168.XXX.20/cblr/links/SL6.0-x86_64/images/pxeboot/initrd.img</a>
Wed, 06 Jul 2011 21:58:03 DEBUG    Saved file to /var/lib/libvirt/boot/virtinst-initrd.img.mYTNuO
libvir: QEMU error : Domain not found: no domain with matching name 'sl6test01.tnmt.local'
Wed, 06 Jul 2011 21:58:04 DEBUG    Creating guest from:
...
(VMの設定XMLダンプ)
...</p>

<pre><code>メッセージ後VM作成とOSインストールが開始されます。キックスタートファイルがあるのでCUIによるメニュー選択の必要はありません。
インストール状況はvirsh consoleで確認します。
</code></pre>

<p>% sudo virsh console sl6test01.tnmt.local</p>

<pre><code>自動的にインストールが完了すると、作成されたVMはシャットダウン状態になります。
あとは virsh start でVMを起動して、rootユーザでキックスタートデフォルトのパスワード"cobbler"でログインが行えます。
その他
今回の例だと、作成されたVMのホスト名はlocalhost.localdomain, IPもDHCPから割り振られたものになりますが、適宜 cobbler の system 情報と、対応する kickstart ファイルのカスタマイズを行うことで、設定値の異なるVMを柔軟に作成出来るようになります。
Cobblerでの準備などは色々ありましたが、一度設定が済めばあとはKoanでVMをサクサク増やせるので、色々な検証にももってこいです。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>エンジニアは七夕までにCentOS6と巡り逢えるのでしょうか。
    今回はいつも使っているCentOSから趣を変えて、Scientific Linuxを触ってみます。色々検証する為にScientific LinuxなVMを簡単につくれる環境をCobbler+Koanを使って準備しました。
    Cobbler+Koan
    Cobbler, Koanについては以前（っても結構前ですが）こんな発表をしたことがありまして、内容についてはそちらが参考になればと思います。CentOSと同じくScientific LinuxもRHELクローンなので、同じ方法が使えるというわけです。
    環境
    試した環境は1台のCentOS5.6物理サーバー上に、Cobbler+KoanがセットアップされたKVMの仮想母艦機です。
    実際の流れ
    Cobbler+Koanのセットアップ手順やKVM環境については省略しますが、mizzyさんのCobblerやKoan、KVM on CentOS 5.4が参考になります。
    ネットワークインストールに必要なファイルの用意
    コマンド一発です。&#8221;SL6.0-x86_64&#8243;というdistro名で準備します。</p>

<p>%  sudo cobbler import --path=rsync://ftp.jaist.ac.jp/pub/Linux/scientific/6.0/x86_64/os/ --name=SL6.0-x86_64</p>

<pre><code>ずらずらと表示されて、ネットワークインストールに必要な準備が整います。完了したら確認。
</code></pre>

<p>%  sudo cobbler distro report --name SL6.0-x86_64
Name     : SL6.0-x86_64
Architecture    : x86_64
Breed     : redhat
Comment     :
Initrd     : /var/www/cobbler/ks_mirror/SL6.0-x86_64/images/pxeboot/initrd.img
Kernel     : /var/www/cobbler/ks_mirror/SL6.0-x86_64/images/pxeboot/vmlinuz
Kernel Options    : {}
Kernel Options (Post Install)   : {}
Kickstart Metadata   : {'tree': 'http://@@http_server@@/cblr/links/SL6.0-x86_64'}
Management Classes  : []
OS Version    : generic26
Owners     : ['admin']
Red Hat Management Key : 
Red Hat Management Server : 
Template Files    : {}</p>

<p>%  sudo cobbler profile report --name SL6.0-x86_64
Name     : SL6.0-x86_64
Comment     :
DHCP Tag     : default
Distribution    : SL6.0-x86_64
Enable PXE Menu?   : 1
Kernel Options    : {}
Kernel Options (Post Install) : {}
Kickstart     : /var/lib/cobbler/kickstarts/default.ks
Kickstart Metadata   : {}
Management Classes  : []
Name Servers    : []
Name Servers Search Path : []
Owners     : ['admin']
Parent Profile    :
Red Hat Management Key : 
Red Hat Management Server : 
Repos     : []
Server Override    : 
Template Files    : {}
Virt Auto Boot    : 0
Virt Bridge    : xenbr0
Virt CPUs     : 1
Virt File Size(GB)   : 5
Virt Path     :
Virt RAM (MB)    : 512
Virt Type     : qemu</p>

<pre><code>cobblerのバージョンが古いと大元のdistroのKickstart Metadata情報が入らず、VM作成時のkickstartファイルの内容によってはOSインストールが失敗することがあるっぽいです。今回試したcobblerのバージョンでは問題なく情報が追加されました（cobbler-2.0.9-1.el5）
VM作成用のテンプレート情報作成
cobbler importでdistro, profileは自動的に作成され、これらの情報をもとにKoanでVM作成が行えますが、環境によって値を調整したい時にはsystemを登録して、各種のカスタマイズを行います。SL6.0-x86_64-templateというsystemを登録しました。
</code></pre>

<p>% sudo cobbler system add --name=SL6.0-x86_64-template --profile SL6.0-x86_64
% sudo cobbler system report --name SL6.0-x86_64-template
Name     : SL6.0-x86_64-template
Comment     :
Gateway     :
Hostname    :
Image     :
Kernel Options    : {}
Kernel Options (Post Install)   : {}
Kickstart     : 
Kickstart Metadata   : {}
Management Classes  : []
Name Servers    : []
Name Servers Search Path  : []
Netboot Enabled   : True
Owners     : ['admin']
Power Management Address :
Power ID     :
Power Password   :
Power Management Type  : ipmitool
Power Username   :
Profile     : SL6.0-x86_64
Red Hat Management Key  : 
Red Hat Management Server : 
Server Override    : 
Template Files    : {}
Virt Auto Boot    : 
Virt CPUs     : 
Virt File Size(GB)   : 
Virt Path     : 
Virt RAM (MB)    : 
Virt Type     :</p>

<pre><code>今回のケースでは

仮想母艦機にbr0というネットワークブリッジが作成されており母艦機のeth0経由で外と通信を行っているので、それをVMのeth0に割り当てる
virbr0というKVMの内部ネットワークがあるので、それをVMのeth1に割り当てる
仮想CPUは2個
VMのディスクのサイズを16GBに
コンソール上でインストール状況の確認が行えるように、カーネルに渡すパラメータを追加
専用のkickstartファイルを準備して指定（/var/lib/cobbler/kickstarts/SL6.0-x86_64-template.ks）

というカスタマイズの為、cobblerコマンドでsystemの情報を変更・追加します。
</code></pre>

<p>%  sudo cobbler system edit --name=SL6.0-x86_64-template --interface=eth0 --virt-bridge=br0
%  sudo cobbler system edit --name=SL6.0-x86_64-template --interface=eth1 --virt-bridge=virbr0
%  sudo cobbler system edit --name=SL6.0-x86_64-template --virt-cpus=2 --virt-file-size=16
%  sudo cobbler system edit --name=SL6.0-x86_64-template --kopts="serial console=ttyS0,115200" --kopts-post="console=ttyS0,115200"
%  sudo cobbler system edit --name=SL6.0-x86_64-template  --kickstart=/var/lib/cobbler/kickstarts/SL6.0-x86_64-template.ks</p>

<pre><code>用意したkickstartファイルはdefaultのものをちょこっといじっただけです。
</code></pre>

<p>--- /var/lib/cobbler/kickstarts/sample.ks       2010-12-09 12:36:41.000000000 +0900
+++ /var/lib/cobbler/kickstarts/SL6.0-x86_64-template.ks        2011-07-06 18:54:39.000000000 +0900
@@ -2,17 +2,18 @@
 # System authorization information
 auth  --useshadow  --enablemd5
 # System bootloader configuration
-bootloader --location=mbr
+#bootloader --location=mbr
+bootloader --location=mbr --append=&quot;console=tty0 console=ttyS0,115200&quot;
 # Partition clearing information
 clearpart --all --initlabel
 # Use text mode install
 text
 # Firewall configuration
-firewall --enabled
+firewall --disabled
 # Run the Setup Agent on first boot
 firstboot --disable
 # System keyboard
-keyboard us
+keyboard jp106
 # System language
 lang en_US
 # Use network installation
@@ -31,7 +32,7 @@
 # Do not configure the X Window System
 skipx
 # System timezone
-timezone  America/New_York
+timezone  Asia/Tokyo
 # Install OS instead of upgrade
 install
 # Clear the Master Boot Record</p>

<pre><code>コマンド実行後のsystemの情報は以下のようになります。
</code></pre>

<p>% sudo cobbler system report --name SL6.0-x86_64-template
Name     : SL6.0-x86_64-template
Comment     :
Gateway     :
Hostname      :
Image     :
Kernel Options    : {'serial': '~', 'console': 'ttyS0,115200'}
Kernel Options (Post Install) : {'console': 'ttyS0,115200'}
Kickstart     : /var/lib/cobbler/kickstarts/SL6.0-x86_64-template.ks
Kickstart Metadata   : {}
Management Classes   : []
Name Servers    : []
Name Servers Search Path  : []
Netboot Enabled   : True
Owners     : ['admin']
Power Management Address :
Power ID     :
Power Password   :
Power Management Type  : ipmitool
Power Username   :
Profile     : SL6.0-x86_64
Red Hat Management Key  : 
Red Hat Management Server : 
Server Override    : 
Template Files    : {}
Virt Auto Boot    : 
Virt CPUs     : 2
Virt File Size(GB)   : 16
Virt Path     : 
Virt RAM (MB)    : 
Virt Type     : 
Interface =====    : eth0
Bonding Mode    :
Bonding Master    :
Bonding Opts    :
DHCP Tag     :
DNS Name    :
IP Address    :
MAC Address    :
Static     : False
Static Routes    : []
Subnet     :
Virt Bridge     : br0
Interface =====    : eth1
Bonding Mode    :
Bonding Master    :
Bonding Opts    :
DHCP Tag     :
DNS Name    :
IP Address    :
MAC Address    :
Static     : False
Static Routes    : []
Subnet     :
Virt Bridge     : virbr0</p>

<pre><code>KoanでVMを作成
準備が整ったので、KoanでKVMなVMを作成します。Cobblerサーバーであるlocalホストと、登録したsystemを指定して、sl6test01.tnmt.localというVMを作成します。
</code></pre>

<p>% sudo koan --server localhost --virt --system=SL6.0-x86_64-template --virt-name=sl6test01.tnmt.local
- looking for Cobbler at <a href="http://localhost/cobbler_api" rel="external">http://localhost/cobbler_api</a>
- reading URL: <a href="http://192.168.XXX.20/cblr/svc/op/ks/system/SL6.0-x86_64-templateinstall_tree" rel="external">http://192.168.XXX.20/cblr/svc/op/ks/system/SL6.0-x86_64-templateinstall_tree</a>: <a href="http://192.168.XXX.20/cblr/links/SL6.0-x86_64" rel="external">http://192.168.XXX.20/cblr/links/SL6.0-x86_64</a>
libvirtd (pid  2656) is running...
- using qemu hypervisor, type=kvm
Wed, 06 Jul 2011 21:57:42 DEBUG    No conn passed to Guest, opening URI 'qemu:///system'
Wed, 06 Jul 2011 21:57:43 DEBUG    DistroInstaller location is a network source.
libvir: QEMU error : Domain not found: no domain with matching name 'sl6test01.tnmt.local'
- adding disk: /var/lib/libvirt/images//sl6test01.tnmt.local-disk0 of size 16
libvir: QEMU error : Domain not found: no domain with matching uuid '0409ba61-bfb5-8663-95f1-65398562d343'
Wed, 06 Jul 2011 21:57:44 DEBUG    Attempting to detect distro:
Wed, 06 Jul 2011 21:57:44 DEBUG    Fetching URI: <a href="http://192.168.XXX.20/cblr/links/SL6.0-x86_64/.treeinfo" rel="external">http://192.168.XXX.20/cblr/links/SL6.0-x86_64/.treeinfo</a>
Wed, 06 Jul 2011 21:57:44 DEBUG    Saved file to /var/lib/libvirt/boot/virtinst-.treeinfo.EwvpV8
Wed, 06 Jul 2011 21:57:44 DEBUG    Fetching URI: <a href="http://192.168.XXX.20/cblr/links/SL6.0-x86_64/images/pxeboot/vmlinuz" rel="external">http://192.168.XXX.20/cblr/links/SL6.0-x86_64/images/pxeboot/vmlinuz</a>
Wed, 06 Jul 2011 21:57:45 DEBUG    Saved file to /var/lib/libvirt/boot/virtinst-vmlinuz.JYd23x
Wed, 06 Jul 2011 21:57:45 DEBUG    Fetching URI: <a href="http://192.168.XXX.20/cblr/links/SL6.0-x86_64/images/pxeboot/initrd.img" rel="external">http://192.168.XXX.20/cblr/links/SL6.0-x86_64/images/pxeboot/initrd.img</a>
Wed, 06 Jul 2011 21:58:03 DEBUG    Saved file to /var/lib/libvirt/boot/virtinst-initrd.img.mYTNuO
libvir: QEMU error : Domain not found: no domain with matching name 'sl6test01.tnmt.local'
Wed, 06 Jul 2011 21:58:04 DEBUG    Creating guest from:
...
(VMの設定XMLダンプ)
...</p>

<pre><code>メッセージ後VM作成とOSインストールが開始されます。キックスタートファイルがあるのでCUIによるメニュー選択の必要はありません。
インストール状況はvirsh consoleで確認します。
</code></pre>

<p>% sudo virsh console sl6test01.tnmt.local</p>

<pre><code>自動的にインストールが完了すると、作成されたVMはシャットダウン状態になります。
あとは virsh start でVMを起動して、rootユーザでキックスタートデフォルトのパスワード"cobbler"でログインが行えます。
その他
今回の例だと、作成されたVMのホスト名はlocalhost.localdomain, IPもDHCPから割り振られたものになりますが、適宜 cobbler の system 情報と、対応する kickstart ファイルのカスタマイズを行うことで、設定値の異なるVMを柔軟に作成出来るようになります。
Cobblerでの準備などは色々ありましたが、一度設定が済めばあとはKoanでVMをサクサク増やせるので、色々な検証にももってこいです。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/21132</guid>
    </item>
        <item>
      <title>DevOpsカンファレンスに行ってきた</title>
      <link>http://tnmt.info/items/view/20846</link>
      <pubDate>Sat, 25 Jun 2011 01:23:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>DevOpsカンファレンスに行ってきました。
    サイバーエージェントさんの会議室、スクリーン３面ってすごいなー。
    広義の意味でのDevOpsの考え方がおよぶ範囲は開発者・運用者だけでなく、ヘルプデスク/顧客サポートやマネージャにまであるみたいですが、今回自分は狭義の意味での”開発者・運用者の壁を取り払っていくには”という視点で各社の取り組みを聞いてきました。
    ひとまず今の自分は役割的にOpsで運用者の立ち位置なので、まずは他社の取り組みから興味があったところについて書くと例えば運用者には切っても切り離せないサービスの運用監視について</p>

<pre><code>アウトソースしてたけど、自分達で見るために内製化した
最初からずっと自分たちで見てるし、今もそう

だとか、対応を取ってみても

アラート一次受けはDev側が行って必要な場合にOpsまでエスカレーション
アラートは完全Ops側で処理

だとか色々ケースがあるんだなーと。会社やサービスのスタートによっても結構違うもんなんですね。しかもケースによってはその体制を途中で変えてるところもある。変わるにしても続けて改善していくにも背景まで参考になりました。
アラートと言えばOpsな人達だと夜起こされたり、夜通し対応したりとかだれしも経験があると思うんですけどやっぱりキツいわけで、何かトラブルがあったら責められたり、成果も派手に大きく形で出てこない場合もあるしまあ大変なことも多々ありますね。
監視だけじゃなくて新規の案件や機能追加するにしたって、どうしても辛い状況だと誰かのせいだとか「◯◯がやってくれない」になりがちもあるけど、カンファレンス通してもっかい自分でも考えながら仕事していきたいなと感じたのは、パッと２つ。

状況を変えるのに、周りに必要な根拠や情報を出せているか
きちんと説明や相談をして周りを巻き込めているか

心構えもそうだし、実際の内容についても特に監視の最適化とか必要なリソースや負荷のモニタリングが出来ているかは他と比べてもまだまだだなと結構凹んだのも正直あったな。。検証やパフォーマンスチューニング、効率化・自動化など攻め的なところもガシガシやれてるとこはやってますもんね。
幸い自分の会社は人間関係的にギクシャクした関係も無く、話を出来る土壌・風土はすごくあると思うんですが、もう一歩先に進めるにやれることあるなーと思いました。
改めて思うのは、サービスやビジネスを一緒にやっている以上、誰が悪い・誰が良い、偉い・偉くないというのに終始しちゃったらやっぱりハッピーじゃないですね（自分たちも、サービスを使ってくれてる人達にも）。気合いや根性だけでも上手くいかないだろうし、プロな以上きっちり技術で解決していくということも忘れず、でも結局最後にはやっぱり精神論も多分にあったりしつつ、どう前向きに進めていくかを考えていきたいなと。
DevOpsの文化というところでも大事にしたいところ改めて載せとく。

尊敬
信頼
失敗とうまくつきあう
責めない

TwitterのTL見てて、皆の食いつきどころとか共感するところが一緒での連帯感とか、こうしていけるといいよねっていう空気が共有出来たのは大きな収穫だったし、やらないといけない課題も見つかってとても有意義なカンファレンスでした。
主催・登壇された皆様ありがとうございました。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>DevOpsカンファレンスに行ってきました。
    サイバーエージェントさんの会議室、スクリーン３面ってすごいなー。
    広義の意味でのDevOpsの考え方がおよぶ範囲は開発者・運用者だけでなく、ヘルプデスク/顧客サポートやマネージャにまであるみたいですが、今回自分は狭義の意味での”開発者・運用者の壁を取り払っていくには”という視点で各社の取り組みを聞いてきました。
    ひとまず今の自分は役割的にOpsで運用者の立ち位置なので、まずは他社の取り組みから興味があったところについて書くと例えば運用者には切っても切り離せないサービスの運用監視について</p>

<pre><code>アウトソースしてたけど、自分達で見るために内製化した
最初からずっと自分たちで見てるし、今もそう

だとか、対応を取ってみても

アラート一次受けはDev側が行って必要な場合にOpsまでエスカレーション
アラートは完全Ops側で処理

だとか色々ケースがあるんだなーと。会社やサービスのスタートによっても結構違うもんなんですね。しかもケースによってはその体制を途中で変えてるところもある。変わるにしても続けて改善していくにも背景まで参考になりました。
アラートと言えばOpsな人達だと夜起こされたり、夜通し対応したりとかだれしも経験があると思うんですけどやっぱりキツいわけで、何かトラブルがあったら責められたり、成果も派手に大きく形で出てこない場合もあるしまあ大変なことも多々ありますね。
監視だけじゃなくて新規の案件や機能追加するにしたって、どうしても辛い状況だと誰かのせいだとか「◯◯がやってくれない」になりがちもあるけど、カンファレンス通してもっかい自分でも考えながら仕事していきたいなと感じたのは、パッと２つ。

状況を変えるのに、周りに必要な根拠や情報を出せているか
きちんと説明や相談をして周りを巻き込めているか

心構えもそうだし、実際の内容についても特に監視の最適化とか必要なリソースや負荷のモニタリングが出来ているかは他と比べてもまだまだだなと結構凹んだのも正直あったな。。検証やパフォーマンスチューニング、効率化・自動化など攻め的なところもガシガシやれてるとこはやってますもんね。
幸い自分の会社は人間関係的にギクシャクした関係も無く、話を出来る土壌・風土はすごくあると思うんですが、もう一歩先に進めるにやれることあるなーと思いました。
改めて思うのは、サービスやビジネスを一緒にやっている以上、誰が悪い・誰が良い、偉い・偉くないというのに終始しちゃったらやっぱりハッピーじゃないですね（自分たちも、サービスを使ってくれてる人達にも）。気合いや根性だけでも上手くいかないだろうし、プロな以上きっちり技術で解決していくということも忘れず、でも結局最後にはやっぱり精神論も多分にあったりしつつ、どう前向きに進めていくかを考えていきたいなと。
DevOpsの文化というところでも大事にしたいところ改めて載せとく。

尊敬
信頼
失敗とうまくつきあう
責めない

TwitterのTL見てて、皆の食いつきどころとか共感するところが一緒での連帯感とか、こうしていけるといいよねっていう空気が共有出来たのは大きな収穫だったし、やらないといけない課題も見つかってとても有意義なカンファレンスでした。
主催・登壇された皆様ありがとうございました。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/20846</guid>
    </item>
        <item>
      <title>mysql5.1から5.5にアップグレード</title>
      <link>http://tnmt.info/items/view/20479</link>
      <pubDate>Tue, 07 Jun 2011 21:55:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>mysql5.1から5.5にアップグレード。
    ものぐさなので、remiレポ使ってます。</p>

<p>$ sudo yum --enablerepo=remi install mysql-server</p>

<pre><code>さくっとアップグレード後起動しようとしても上がらないと思ったら、"default-character-set"がダメだとエラーに出てました。
my.cnfの[mysqld]セクションに"default-character-set=utf8"書かれてたら"character-set-server=utf8"に直して起動しなおし。
クライアント側の[mysql]セクションは"default-character-set=utf8"でOK。ややこし。
心なしか早くなった気がするし、なんとなく満足。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>mysql5.1から5.5にアップグレード。
    ものぐさなので、remiレポ使ってます。</p>

<p>$ sudo yum --enablerepo=remi install mysql-server</p>

<pre><code>さくっとアップグレード後起動しようとしても上がらないと思ったら、"default-character-set"がダメだとエラーに出てました。
my.cnfの[mysqld]セクションに"default-character-set=utf8"書かれてたら"character-set-server=utf8"に直して起動しなおし。
クライアント側の[mysql]セクションは"default-character-set=utf8"でOK。ややこし。
心なしか早くなった気がするし、なんとなく満足。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/20479</guid>
    </item>
        <item>
      <title>いまさら聞けないrpmbuildことはじめ</title>
      <link>http://tnmt.info/items/view/19983</link>
      <pubDate>Fri, 29 Apr 2011 18:53:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>CentOSなどrpmを使っているシステムで、欲しいツールのrpmが見つからない、使いたいツールのバージョンが古いときに、rpmbuildを使って望みのrpmを作成することが出来ます。
    ウェブを探せば色々と情報はあるんですが、ざっとスタートするときに必要な流れをまとめて書いてみることにしました。
    専用のビルド環境
    専用の環境を準備た方が吉です。centXbuildXXみたいな名前でVMを作ってます。</p>

<pre><code>cent4build32.tnmt.local
cent5build64.tnmt.local

とか。
パッケージの依存性もあるので、あまりサードパーティのyumリポジトリなどを追加しないか、実環境と同じリポジトリのみ有効にするとよいです。複数サービスがあったらそれごとにVMを作るのもありかと思います。
必要なパッケージ類のインストール
rpmbulidに必要なパッケージ類をインストールします。パッケージ名はハイフンつきに注意。
</code></pre>

<p>%  yum install rpm-build</p>

<pre><code>あとビルド専用の環境なんで、その他もろもろのライブラリやツールも一緒に入れておくと、ビルド時に足りないというシーンも少なくなるのでgroup installしておくと吉です。
</code></pre>

<p>% yum groupinstall "Development Tools"</p>

<pre><code>専用のビルドユーザ
OfficialのHOW TOにもこう載ってます。

Building RPMs should NEVER be done with the root user. It should ALWAYS be done with an unprivileged user. Building RPMs as root might damage your system. You have been warned.

「rpmビルドはrootでやっちゃだめだぞ、システムにダメージ与える可能性あるからやるなよ、絶対やるなよ！」と書いてありますので、フリじゃなくてきちんとそれにしたがいましょう。
ユーザ作成
自分のアカウントでもいいですが、俺はrpmbuilderなユーザを作ってます。
</code></pre>

<p>%  useradd rpmbuilder</p>

<pre><code>ユーザの環境設定
作成したrpmbuilderにsu -して環境を設定します。必要なのはビルドに使用するディレクトリと、rpmbuildをコントロールする.rpmmacrosです。

ディレクトリ
</code></pre>

<p>$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}</p>

<pre><code>内訳は

BUILD: ビルド時に使われる一時ディレクトリ
RPMS: ビルドされたrpmが格納されるディレクトリ、各アーキテクチャごとのサブフォルダに分かれる
SOURCES: ビルドのもとになるソースやパッチを配置するディレクトリ
SPECS: specファイルを配置するディレクトリ
SRPMS: ビルドした際にsrc.rpmが出来るようにしていればそれが格納されるディレクトリ

です。
.rpmmacros
rpmbuild時に参照される設定一覧です。さきほど作成したrpmbuild以下を使用するために、以下で新規作成を行います。
</code></pre>

<p>$  echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros</p>

<pre><code>俺はあとdebugパッケージを作らないような設定とsmpの設定を入れてます。smpのj3はmakeの引数になる感じなので適宜自分の環境に合わせてですね。
</code></pre>

<p>$ cat ~/.rpmmacros
%_topdir      %(echo $HOME)/rpmbuild</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>CentOSなどrpmを使っているシステムで、欲しいツールのrpmが見つからない、使いたいツールのバージョンが古いときに、rpmbuildを使って望みのrpmを作成することが出来ます。
    ウェブを探せば色々と情報はあるんですが、ざっとスタートするときに必要な流れをまとめて書いてみることにしました。
    専用のビルド環境
    専用の環境を準備た方が吉です。centXbuildXXみたいな名前でVMを作ってます。</p>

<pre><code>cent4build32.tnmt.local
cent5build64.tnmt.local

とか。
パッケージの依存性もあるので、あまりサードパーティのyumリポジトリなどを追加しないか、実環境と同じリポジトリのみ有効にするとよいです。複数サービスがあったらそれごとにVMを作るのもありかと思います。
必要なパッケージ類のインストール
rpmbulidに必要なパッケージ類をインストールします。パッケージ名はハイフンつきに注意。
</code></pre>

<p>%  yum install rpm-build</p>

<pre><code>あとビルド専用の環境なんで、その他もろもろのライブラリやツールも一緒に入れておくと、ビルド時に足りないというシーンも少なくなるのでgroup installしておくと吉です。
</code></pre>

<p>% yum groupinstall "Development Tools"</p>

<pre><code>専用のビルドユーザ
OfficialのHOW TOにもこう載ってます。

Building RPMs should NEVER be done with the root user. It should ALWAYS be done with an unprivileged user. Building RPMs as root might damage your system. You have been warned.

「rpmビルドはrootでやっちゃだめだぞ、システムにダメージ与える可能性あるからやるなよ、絶対やるなよ！」と書いてありますので、フリじゃなくてきちんとそれにしたがいましょう。
ユーザ作成
自分のアカウントでもいいですが、俺はrpmbuilderなユーザを作ってます。
</code></pre>

<p>%  useradd rpmbuilder</p>

<pre><code>ユーザの環境設定
作成したrpmbuilderにsu -して環境を設定します。必要なのはビルドに使用するディレクトリと、rpmbuildをコントロールする.rpmmacrosです。

ディレクトリ
</code></pre>

<p>$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}</p>

<pre><code>内訳は

BUILD: ビルド時に使われる一時ディレクトリ
RPMS: ビルドされたrpmが格納されるディレクトリ、各アーキテクチャごとのサブフォルダに分かれる
SOURCES: ビルドのもとになるソースやパッチを配置するディレクトリ
SPECS: specファイルを配置するディレクトリ
SRPMS: ビルドした際にsrc.rpmが出来るようにしていればそれが格納されるディレクトリ

です。
.rpmmacros
rpmbuild時に参照される設定一覧です。さきほど作成したrpmbuild以下を使用するために、以下で新規作成を行います。
</code></pre>

<p>$  echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros</p>

<pre><code>俺はあとdebugパッケージを作らないような設定とsmpの設定を入れてます。smpのj3はmakeの引数になる感じなので適宜自分の環境に合わせてですね。
</code></pre>

<p>$ cat ~/.rpmmacros
%_topdir      %(echo $HOME)/rpmbuild</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/19983</guid>
    </item>
        <item>
      <title>MCollectiveのインストールと動作確認</title>
      <link>http://tnmt.info/items/view/18866</link>
      <pubDate>Sat, 26 Feb 2011 18:19:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>MCollective &#8211; Marionette Collective AKA MCollective &#8211; が気になったので試してみました。
    mcollectiveはPuppet を作っているpuppet labs のプロダクトです。ruby製。
    日本語で紹介されているこちらのエントリでは、以下のように分かりやすく解説がされていました。
    一言で言うと、&#8221;定例作業を効率的に行うのがpuppet/chefの役割&#8221;で、&#8221;MCollectiveは非定例作業を効率的に行う&#8221;ことのできるツールです。
    本家のサイトの紹介を見ると、&#8221;複数のサーバー群に対して任意のオペレーションを並列実行するためのフレームワーク&#8221;とされています。同じような作業を行う為のフレームワーク・ツールとしては他にもFunc, Capistrano, Fabricが同じく紹介されています。（最後の知らない。）Capistranoはデプロイツールとして有名ですね。
    他のツールと比べて、MCollectiveのポイントは以下の2つだと感じました。</p>

<pre><code>サーバー群に対して設置場所（たとえばDCや、国とかも）を意識せず
シンプル且つスピーディーにオペレーションを行う

あるクライアントから複数サーバー群に対して任意の作業を行うときに、過去であれば

クライアント→サーバー群で 1:m

であったのが、MCollectiveは

クライアント→作業を管理する並列キューシステム→サーバー群で 1:n:m

と一枚噛んでます。この真ん中の並列キューシステムが上記の2つのポイントの肝になっているという感じでしょうか。
より詳細なアーキテクチャの解説がされている、本家のスライドはこちら
 Architecture, Flow and Terminology 
 View more webinars from Marionette Collective 

何はともあれ動かしてみたいと思います。
各要素に必要なパッケージは以下のようになっています。

クライアント: mcollective-client
作業を管理するキューシステム: activemq
サーバー群: mcollective

今回は以下のホスト構成にイントールしました。
全台 CentOS 5.5 x86_64, ほか依存するとこだとrubyだけど、ruby-1.8.5-5.el5_4.8, rubygems-1.3.1-1.el5, あとついでに facter-1.5.8-1.el5

mcollective-client, activemq

manage01.tnmt.local

mcollective

test01.tnmt.local
test02.tnmt.local


共通 @ manage01, test01, test02
事前に必要なツールのインストール。
mcollectiveがrubyのメッセージキュークライアントのstompを使ってるのでそちらを
</code></pre>

<p>%  sudo yum -y --enablerepo=epel install rubygem-stomp rubygems</p>

<pre><code>mcollectiveの共通コンポーネント
</code></pre>

<p>%  wget  <a href="http://puppetlabs.com/downloads/mcollective/mcollective-common-1.0.0-2.el5.noarch.rpm" rel="external">http://puppetlabs.com/downloads/mcollective/mcollective-common-1.0.0-2.el5.noarch.rpm</a>
%  sudo rpm -Uvh mcollective-common-1.0.0-2.el5.noarch.rpm</p>

<pre><code>mcollective @ test001, test002
mcollective インストール
</code></pre>

<p>%  wget  <a href="http://puppetlabs.com/downloads/mcollective/mcollective-1.0.0-2.el5.noarch.rpm" rel="external">http://puppetlabs.com/downloads/mcollective/mcollective-1.0.0-2.el5.noarch.rpm</a>
%  sudo rpm -Uvh mcollective-1.0.0-2.el5.noarch.rpm</p>

<pre><code>設定
/etc/mcollective/server.cfg が設定ファイルになります。 plugin.stomp.host に activemq が動いてるサーバーを指定ですね。パスワードは伏せてありますが変更してあります、あとでactivemqの設定にも関わってきます。
</code></pre>

<p>--- /etc/mcollective/server.cfg.dist    2010-12-12 02:01:11.000000000 +0900
+++ /etc/mcollective/server.cfg 2011-02-26 14:14:10.000000000 +0900
@@ -9,10 +9,10 @@
 plugin.psk = unset</p>

<p>connector = stomp
-plugin.stomp.host = stomp.example.com
+plugin.stomp.host = manage01.tnmt.local
 plugin.stomp.port = 6163
 plugin.stomp.user = mcollective
-plugin.stomp.password = marionette
+plugin.stomp.password = XXXXXXXXXXXXXXXX</p>

<p># Facts
 factsource = yaml</p>

<pre><code>サービススタート
</code></pre>

<p>%  sudo /etc/init.d/mcollective start</p>

<pre><code>mcollective-client @ manage01
インストール
</code></pre>

<p>%  wget  <a href="http://puppetlabs.com/downloads/mcollective/mcollective-client-1.0.0-2.el5.noarch.rpm" rel="external">http://puppetlabs.com/downloads/mcollective/mcollective-client-1.0.0-2.el5.noarch.rpm</a>
%  sudo rpm -Uvh mcollective-client-1.0.0-2.el5.noarch.rpm</p>

<pre><code>設定
/etc/mcollective/client.cfg を編集。箇所は先ほどと同じく activemq が動くホストを指定。
</code></pre>

<p>--- /etc/mcollective/client.cfg.dist    2010-12-12 02:01:11.000000000 +0900
+++ /etc/mcollective/client.cfg 2011-02-26 14:12:06.000000000 +0900
@@ -8,10 +8,10 @@
 plugin.psk = unset</p>

<p>connector = stomp
-plugin.stomp.host = stomp.example.com
+plugin.stomp.host = manage01.tnmt.local
 plugin.stomp.port = 6163
 plugin.stomp.user = mcollective
-plugin.stomp.password = marionette
+plugin.stomp.password = XXXXXXXXXXXXXXXX</p>

<p># Facts
 factsource = yaml</p>

<pre><code> activemq @ manage01
ActiveMQはJMS実装のプロダクトです。こいつがmcollective, mcollective-client双方のメッセージのやりとりを介してくれます。JMSの名の通り中身はJava
インストール
Javaインストール
</code></pre>

<p>%  sudo yum -y install java-1.6.0-openjdk</p>

<pre><code>puppetlabsから提供されてるパッケージをまとめてインストール
</code></pre>

<p>%  for package in tanukiwrapper-3.2.3-1jpp.x86_64.rpm  activemq-5.4.0-2.el5.noarch.rpm activemq-info-provider-5.4.0-2.el5.noarch.rpm;
do
sudo rpm -Uvh <a href="http://puppetlabs.com/downloads/mcollective" rel="external">http://puppetlabs.com/downloads/mcollective</a>/$package
done</p>

<pre><code>設定
mcollective用の設定を読むように /etc/activemq/activemq-wrapper.conf 編集
</code></pre>

<p>--- /etc/activemq/activemq-wrapper.conf.dist    2010-08-18 05:48:16.000000000 +0900
+++ /etc/activemq/activemq-wrapper.conf 2011-01-26 13:23:01.000000000 +0900
@@ -82,7 +82,7 @@
 # Application parameters. activemq.xml will be loaded from the config directory
 wrapper.app.parameter.1=org.apache.activemq.console.Main
 wrapper.app.parameter.2=start
-wrapper.app.parameter.3-xbean:activemq.xml
+wrapper.app.parameter.3=xbean:mcollective.xml</p>

<p>#********************************************************************
 # Wrapper Logging Properties</p>

<pre><code>mcollective用の設定 /etc/activemq/mcollective.xml 作成。simpleAuthenticationPluginのauthenticationUserという項目がありますが、ここには mcollective, mcollective-client の設定で変更したパスワードが入ります。
</code></pre>

<p>&lt;beans
    xmlns=&quot;http://www.springframework.org/schema/beans&quot;
    xmlns:amq=&quot;http://activemq.apache.org/schema/core&quot;
    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans <a href="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" rel="external">http://www.springframework.org/schema/beans/spring-beans-2.0.xsd</a>
    <a href="http://activemq.apache.org/schema/core" rel="external">http://activemq.apache.org/schema/core</a> <a href="http://activemq.apache.org/schema/core/activemq-core.xsd" rel="external">http://activemq.apache.org/schema/core/activemq-core.xsd</a>
    <a href="http://activemq.apache.org/camel/schema/spring" rel="external">http://activemq.apache.org/camel/schema/spring</a> <a href="http://activemq.apache.org/camel/schema/spring/camel-spring.xsd&quot;&gt" rel="external">http://activemq.apache.org/camel/schema/spring/camel-spring.xsd&quot;&amp;gt</a>;</p>

<pre><code>&amp;lt;broker xmlns=&amp;quot;http://activemq.apache.org/schema/core&amp;quot; brokerName=&amp;quot;localhost&amp;quot; useJmx=&amp;quot;true&amp;quot;&amp;gt;
    &amp;lt;plugins&amp;gt;
        &amp;lt;authorizationPlugin&amp;gt;
            &amp;lt;map&amp;gt;
                &amp;lt;authorizationMap&amp;gt;
                    &amp;lt;authorizationEntries&amp;gt;
                        &amp;lt;authorizationEntry topic=&amp;quot;mcollective.&amp;gt;&amp;quot; write=&amp;quot;systemusers&amp;quot; read=&amp;quot;systemusers&amp;quot; admin=&amp;quot;systemusers&amp;quot; /&amp;gt;
                        &amp;lt;authorizationEntry topic=&amp;quot;ActiveMQ.Advisory.&amp;gt;&amp;quot; read=&amp;quot;everyone,all&amp;quot; write=&amp;quot;everyone,all&amp;quot; admin=&amp;quot;everyone,all&amp;quot;/&amp;gt;
                    &amp;lt;/authorizationEntries&amp;gt;
                &amp;lt;/authorizationMap&amp;gt;
            &amp;lt;/map&amp;gt;
        &amp;lt;/authorizationPlugin&amp;gt;

        &amp;lt;simpleAuthenticationPlugin&amp;gt;
            &amp;lt;users&amp;gt;
                &amp;lt;authenticationUser username=&amp;quot;mcollective&amp;quot; password=&amp;quot;XXXXXXXXXXXXXXXX&amp;quot; groups=&amp;quot;systemusers,everyone&amp;quot;/&amp;gt;
            &amp;lt;/users&amp;gt;
        &amp;lt;/simpleAuthenticationPlugin&amp;gt;
    &amp;lt;/plugins&amp;gt;

    &amp;lt;transportConnectors&amp;gt;
        &amp;lt;transportConnector name=&amp;quot;openwire&amp;quot; uri=&amp;quot;tcp://0.0.0.0:6166&amp;quot; /&amp;gt;
        &amp;lt;transportConnector name=&amp;quot;stomp&amp;quot;   uri=&amp;quot;stomp://0.0.0.0:6163&amp;quot; /&amp;gt;
    &amp;lt;/transportConnectors&amp;gt;
&amp;lt;/broker&amp;gt;
</code></pre>

<p>&lt;/beans&gt;</p>

<pre><code>サービススタート
</code></pre>

<p>%  sudo /etc/init.d/activemq start</p>

<pre><code>起動したかどうか、/var/log/activemq/activemq.logあたり見るとよいかと思います。
これで試す準備ができました。
動作確認
ひとまず動作確認ということで、mcollectiveがインストールされてホストをリストしてみます。
</code></pre>

<p>%  mc-find-hosts
test01.tnmt.local
test02.tnmt.local</p>

<pre><code>続いて全台にping打ってみる
</code></pre>

<p>%  mc-ping
test01.tnmt.local                        time=63.35 ms
test02.tnmt.local                        time=101.06 ms</p>

<p>---- ping statistics ----
2 replies max: 101.06 min: 63.35 avg: 82.21</p>

<pre><code>返ってきますね。対象のホストの状況を確認してみる。
</code></pre>

<p>%  mc-inventory test01.tnmt.local
Inventory for test01.tnmt.local:</p>

<p>Server Statistics:
                      Version: 1.0.0
                   Start Time: Sat Feb 26 13:38:54 +0900 2011
                  Config File: /etc/mcollective/server.cfg
                   Process ID: 24564
               Total Messages: 3
      Messages Passed Filters: 3
            Messages Filtered: 0
                 Replies Sent: 2
         Total Processor Time: 0.06 seconds
                  System Time: 0.19 seconds</p>

<p>Agents:
      discovery       rpcutil</p>

<p>Configuration Management Classes:
      base                           test01.tnmt.local</p>

<p>Facts:
      mcollective => 1</p>

<pre><code>インストールは完了したので、もう少し色々と触ってみます。

プラグイン機構で行えるオペレーション追加
puppetのfacterを共有して特定条件ホストでのオペレーション

等々
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>MCollective &#8211; Marionette Collective AKA MCollective &#8211; が気になったので試してみました。
    mcollectiveはPuppet を作っているpuppet labs のプロダクトです。ruby製。
    日本語で紹介されているこちらのエントリでは、以下のように分かりやすく解説がされていました。
    一言で言うと、&#8221;定例作業を効率的に行うのがpuppet/chefの役割&#8221;で、&#8221;MCollectiveは非定例作業を効率的に行う&#8221;ことのできるツールです。
    本家のサイトの紹介を見ると、&#8221;複数のサーバー群に対して任意のオペレーションを並列実行するためのフレームワーク&#8221;とされています。同じような作業を行う為のフレームワーク・ツールとしては他にもFunc, Capistrano, Fabricが同じく紹介されています。（最後の知らない。）Capistranoはデプロイツールとして有名ですね。
    他のツールと比べて、MCollectiveのポイントは以下の2つだと感じました。</p>

<pre><code>サーバー群に対して設置場所（たとえばDCや、国とかも）を意識せず
シンプル且つスピーディーにオペレーションを行う

あるクライアントから複数サーバー群に対して任意の作業を行うときに、過去であれば

クライアント→サーバー群で 1:m

であったのが、MCollectiveは

クライアント→作業を管理する並列キューシステム→サーバー群で 1:n:m

と一枚噛んでます。この真ん中の並列キューシステムが上記の2つのポイントの肝になっているという感じでしょうか。
より詳細なアーキテクチャの解説がされている、本家のスライドはこちら
 Architecture, Flow and Terminology 
 View more webinars from Marionette Collective 

何はともあれ動かしてみたいと思います。
各要素に必要なパッケージは以下のようになっています。

クライアント: mcollective-client
作業を管理するキューシステム: activemq
サーバー群: mcollective

今回は以下のホスト構成にイントールしました。
全台 CentOS 5.5 x86_64, ほか依存するとこだとrubyだけど、ruby-1.8.5-5.el5_4.8, rubygems-1.3.1-1.el5, あとついでに facter-1.5.8-1.el5

mcollective-client, activemq

manage01.tnmt.local

mcollective

test01.tnmt.local
test02.tnmt.local


共通 @ manage01, test01, test02
事前に必要なツールのインストール。
mcollectiveがrubyのメッセージキュークライアントのstompを使ってるのでそちらを
</code></pre>

<p>%  sudo yum -y --enablerepo=epel install rubygem-stomp rubygems</p>

<pre><code>mcollectiveの共通コンポーネント
</code></pre>

<p>%  wget  <a href="http://puppetlabs.com/downloads/mcollective/mcollective-common-1.0.0-2.el5.noarch.rpm" rel="external">http://puppetlabs.com/downloads/mcollective/mcollective-common-1.0.0-2.el5.noarch.rpm</a>
%  sudo rpm -Uvh mcollective-common-1.0.0-2.el5.noarch.rpm</p>

<pre><code>mcollective @ test001, test002
mcollective インストール
</code></pre>

<p>%  wget  <a href="http://puppetlabs.com/downloads/mcollective/mcollective-1.0.0-2.el5.noarch.rpm" rel="external">http://puppetlabs.com/downloads/mcollective/mcollective-1.0.0-2.el5.noarch.rpm</a>
%  sudo rpm -Uvh mcollective-1.0.0-2.el5.noarch.rpm</p>

<pre><code>設定
/etc/mcollective/server.cfg が設定ファイルになります。 plugin.stomp.host に activemq が動いてるサーバーを指定ですね。パスワードは伏せてありますが変更してあります、あとでactivemqの設定にも関わってきます。
</code></pre>

<p>--- /etc/mcollective/server.cfg.dist    2010-12-12 02:01:11.000000000 +0900
+++ /etc/mcollective/server.cfg 2011-02-26 14:14:10.000000000 +0900
@@ -9,10 +9,10 @@
 plugin.psk = unset</p>

<p>connector = stomp
-plugin.stomp.host = stomp.example.com
+plugin.stomp.host = manage01.tnmt.local
 plugin.stomp.port = 6163
 plugin.stomp.user = mcollective
-plugin.stomp.password = marionette
+plugin.stomp.password = XXXXXXXXXXXXXXXX</p>

<p># Facts
 factsource = yaml</p>

<pre><code>サービススタート
</code></pre>

<p>%  sudo /etc/init.d/mcollective start</p>

<pre><code>mcollective-client @ manage01
インストール
</code></pre>

<p>%  wget  <a href="http://puppetlabs.com/downloads/mcollective/mcollective-client-1.0.0-2.el5.noarch.rpm" rel="external">http://puppetlabs.com/downloads/mcollective/mcollective-client-1.0.0-2.el5.noarch.rpm</a>
%  sudo rpm -Uvh mcollective-client-1.0.0-2.el5.noarch.rpm</p>

<pre><code>設定
/etc/mcollective/client.cfg を編集。箇所は先ほどと同じく activemq が動くホストを指定。
</code></pre>

<p>--- /etc/mcollective/client.cfg.dist    2010-12-12 02:01:11.000000000 +0900
+++ /etc/mcollective/client.cfg 2011-02-26 14:12:06.000000000 +0900
@@ -8,10 +8,10 @@
 plugin.psk = unset</p>

<p>connector = stomp
-plugin.stomp.host = stomp.example.com
+plugin.stomp.host = manage01.tnmt.local
 plugin.stomp.port = 6163
 plugin.stomp.user = mcollective
-plugin.stomp.password = marionette
+plugin.stomp.password = XXXXXXXXXXXXXXXX</p>

<p># Facts
 factsource = yaml</p>

<pre><code> activemq @ manage01
ActiveMQはJMS実装のプロダクトです。こいつがmcollective, mcollective-client双方のメッセージのやりとりを介してくれます。JMSの名の通り中身はJava
インストール
Javaインストール
</code></pre>

<p>%  sudo yum -y install java-1.6.0-openjdk</p>

<pre><code>puppetlabsから提供されてるパッケージをまとめてインストール
</code></pre>

<p>%  for package in tanukiwrapper-3.2.3-1jpp.x86_64.rpm  activemq-5.4.0-2.el5.noarch.rpm activemq-info-provider-5.4.0-2.el5.noarch.rpm;
do
sudo rpm -Uvh <a href="http://puppetlabs.com/downloads/mcollective" rel="external">http://puppetlabs.com/downloads/mcollective</a>/$package
done</p>

<pre><code>設定
mcollective用の設定を読むように /etc/activemq/activemq-wrapper.conf 編集
</code></pre>

<p>--- /etc/activemq/activemq-wrapper.conf.dist    2010-08-18 05:48:16.000000000 +0900
+++ /etc/activemq/activemq-wrapper.conf 2011-01-26 13:23:01.000000000 +0900
@@ -82,7 +82,7 @@
 # Application parameters. activemq.xml will be loaded from the config directory
 wrapper.app.parameter.1=org.apache.activemq.console.Main
 wrapper.app.parameter.2=start
-wrapper.app.parameter.3-xbean:activemq.xml
+wrapper.app.parameter.3=xbean:mcollective.xml</p>

<p>#********************************************************************
 # Wrapper Logging Properties</p>

<pre><code>mcollective用の設定 /etc/activemq/mcollective.xml 作成。simpleAuthenticationPluginのauthenticationUserという項目がありますが、ここには mcollective, mcollective-client の設定で変更したパスワードが入ります。
</code></pre>

<p>&lt;beans
    xmlns=&quot;http://www.springframework.org/schema/beans&quot;
    xmlns:amq=&quot;http://activemq.apache.org/schema/core&quot;
    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans <a href="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" rel="external">http://www.springframework.org/schema/beans/spring-beans-2.0.xsd</a>
    <a href="http://activemq.apache.org/schema/core" rel="external">http://activemq.apache.org/schema/core</a> <a href="http://activemq.apache.org/schema/core/activemq-core.xsd" rel="external">http://activemq.apache.org/schema/core/activemq-core.xsd</a>
    <a href="http://activemq.apache.org/camel/schema/spring" rel="external">http://activemq.apache.org/camel/schema/spring</a> <a href="http://activemq.apache.org/camel/schema/spring/camel-spring.xsd&quot;&gt" rel="external">http://activemq.apache.org/camel/schema/spring/camel-spring.xsd&quot;&amp;gt</a>;</p>

<pre><code>&amp;lt;broker xmlns=&amp;quot;http://activemq.apache.org/schema/core&amp;quot; brokerName=&amp;quot;localhost&amp;quot; useJmx=&amp;quot;true&amp;quot;&amp;gt;
    &amp;lt;plugins&amp;gt;
        &amp;lt;authorizationPlugin&amp;gt;
            &amp;lt;map&amp;gt;
                &amp;lt;authorizationMap&amp;gt;
                    &amp;lt;authorizationEntries&amp;gt;
                        &amp;lt;authorizationEntry topic=&amp;quot;mcollective.&amp;gt;&amp;quot; write=&amp;quot;systemusers&amp;quot; read=&amp;quot;systemusers&amp;quot; admin=&amp;quot;systemusers&amp;quot; /&amp;gt;
                        &amp;lt;authorizationEntry topic=&amp;quot;ActiveMQ.Advisory.&amp;gt;&amp;quot; read=&amp;quot;everyone,all&amp;quot; write=&amp;quot;everyone,all&amp;quot; admin=&amp;quot;everyone,all&amp;quot;/&amp;gt;
                    &amp;lt;/authorizationEntries&amp;gt;
                &amp;lt;/authorizationMap&amp;gt;
            &amp;lt;/map&amp;gt;
        &amp;lt;/authorizationPlugin&amp;gt;

        &amp;lt;simpleAuthenticationPlugin&amp;gt;
            &amp;lt;users&amp;gt;
                &amp;lt;authenticationUser username=&amp;quot;mcollective&amp;quot; password=&amp;quot;XXXXXXXXXXXXXXXX&amp;quot; groups=&amp;quot;systemusers,everyone&amp;quot;/&amp;gt;
            &amp;lt;/users&amp;gt;
        &amp;lt;/simpleAuthenticationPlugin&amp;gt;
    &amp;lt;/plugins&amp;gt;

    &amp;lt;transportConnectors&amp;gt;
        &amp;lt;transportConnector name=&amp;quot;openwire&amp;quot; uri=&amp;quot;tcp://0.0.0.0:6166&amp;quot; /&amp;gt;
        &amp;lt;transportConnector name=&amp;quot;stomp&amp;quot;   uri=&amp;quot;stomp://0.0.0.0:6163&amp;quot; /&amp;gt;
    &amp;lt;/transportConnectors&amp;gt;
&amp;lt;/broker&amp;gt;
</code></pre>

<p>&lt;/beans&gt;</p>

<pre><code>サービススタート
</code></pre>

<p>%  sudo /etc/init.d/activemq start</p>

<pre><code>起動したかどうか、/var/log/activemq/activemq.logあたり見るとよいかと思います。
これで試す準備ができました。
動作確認
ひとまず動作確認ということで、mcollectiveがインストールされてホストをリストしてみます。
</code></pre>

<p>%  mc-find-hosts
test01.tnmt.local
test02.tnmt.local</p>

<pre><code>続いて全台にping打ってみる
</code></pre>

<p>%  mc-ping
test01.tnmt.local                        time=63.35 ms
test02.tnmt.local                        time=101.06 ms</p>

<p>---- ping statistics ----
2 replies max: 101.06 min: 63.35 avg: 82.21</p>

<pre><code>返ってきますね。対象のホストの状況を確認してみる。
</code></pre>

<p>%  mc-inventory test01.tnmt.local
Inventory for test01.tnmt.local:</p>

<p>Server Statistics:
                      Version: 1.0.0
                   Start Time: Sat Feb 26 13:38:54 +0900 2011
                  Config File: /etc/mcollective/server.cfg
                   Process ID: 24564
               Total Messages: 3
      Messages Passed Filters: 3
            Messages Filtered: 0
                 Replies Sent: 2
         Total Processor Time: 0.06 seconds
                  System Time: 0.19 seconds</p>

<p>Agents:
      discovery       rpcutil</p>

<p>Configuration Management Classes:
      base                           test01.tnmt.local</p>

<p>Facts:
      mcollective => 1</p>

<pre><code>インストールは完了したので、もう少し色々と触ってみます。

プラグイン機構で行えるオペレーション追加
puppetのfacterを共有して特定条件ホストでのオペレーション

等々
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/18866</guid>
    </item>
        <item>
      <title>logtool使ってみた (iptablesのログを見るのに便利だった)</title>
      <link>http://tnmt.info/items/view/18307</link>
      <pubDate>Mon, 24 Jan 2011 11:05:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>Software Design 2011年2月号 の第一特集内でちょろっと紹介されてた、Logtool を触ってみました。
    man logtool すると &#8220;logtool &#8211; parse and filter syslog files&#8221; と記載されている通り、syslog形式やmultilog形式のログ出力をパース、フィルタしてくれるプログラムです。
    安定版は 1.2.x tree, 1.2.8 (2005年リリースだけど&#8230;) をダウンロードして、RPMパッケージングしてインストールしました。1 
    使い方はフィルタとして、catなどで開いた標準出力にパイプで渡してやります。
    % sudo tail -100 /var/log/messages | logtool | less
そっけない出力に色がついてかっこよくなります、モテますかね。
色がつくだけだと微妙なんですが、Logtoolのサイトにのってる1.2.0の機能の中の</p>

<p>Now can do really cool things with snort and iptables syslog entries (ip->hostname resolution, special colors, and more!)</p>

<p>が便利でした。
iptablesを使っててたとえばRejectしたログをとってるとき、通常のログだと</p>

<p>Jan 24 02:49:33 test01 kernel: Rejected_At_Last!! : IN=eth0 OUT= MAC=00:0e:0c:9c:15:ae:XX:XX:db:d3:34:40:08:00 SRC=201.91.255.194 DST=XXX.XXX.XXX.XXX LEN=78 TOS=0x00 PREC=0x00 TTL=48 ID=57854 DF PROTO=UDP SPT=137 DPT=137 LEN=58</p>

<pre><code>な感じで読みにくいのが、logtoolを通すと
</code></pre>

<p>Jan 24 02:49:33 test01 iptables: -j LOG: kernel: Rejected_At_Last!! :  {UDP} 201-91-255-194.customer.tdatabrasil.net.br(201.91.255.194):137 -&gt; test01.tnmt.local(XXX.XXX.XXX.XXX):137</p>

<pre><code>と、カラーリングの他にログのIPからホスト名を逆引きしてくれたりします。（ホスト名逆引きは -n オプションで実行しなくも出来ます）
出力形式も [ ANSI | ASCII | CSV | HTML | RAW ] が指定可能です。
例であげた↑の色分けしたログも -o HTML で出力したものを利用しました。
使用用途として、manコマンドに乗ってたものをいくつか紹介しておきます。

リアルタイムにログを見る
% tail -f /var/log/messages | logtool -o ANSI -b
</code></pre>

<p>HTMLレポート
% cat /var/log/messages | logtool -o HTML > /home/httpd/html/logs/messages.html
    メールでレポート
    % retail /var/log/messages | logtool -o ASCII | mail -s "Daily report" someuser@somedomain.ext</p>

<p>logtool.conf という設定ファイルがあるのでデフォルトの挙動も変更出来たりするみたいです。
小さいプログラムなので、入れておくとちょっとしたときに便利に使えそうだなと思いました。
同梱されていたspecファイルちょっといじる必要ありました。2005年だけあってspecファイルのフォーマットが若干古い。
余談ですが、logtool作者がRedHatのライセンスやポリシーに怒ってシステム全部Debianにしたよ！RPMなんかメンテしねーよ！
って書いてあった。何があったんだろ。</p>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>Software Design 2011年2月号 の第一特集内でちょろっと紹介されてた、Logtool を触ってみました。
    man logtool すると &#8220;logtool &#8211; parse and filter syslog files&#8221; と記載されている通り、syslog形式やmultilog形式のログ出力をパース、フィルタしてくれるプログラムです。
    安定版は 1.2.x tree, 1.2.8 (2005年リリースだけど&#8230;) をダウンロードして、RPMパッケージングしてインストールしました。1 
    使い方はフィルタとして、catなどで開いた標準出力にパイプで渡してやります。
    % sudo tail -100 /var/log/messages | logtool | less
そっけない出力に色がついてかっこよくなります、モテますかね。
色がつくだけだと微妙なんですが、Logtoolのサイトにのってる1.2.0の機能の中の</p>

<p>Now can do really cool things with snort and iptables syslog entries (ip->hostname resolution, special colors, and more!)</p>

<p>が便利でした。
iptablesを使っててたとえばRejectしたログをとってるとき、通常のログだと</p>

<p>Jan 24 02:49:33 test01 kernel: Rejected_At_Last!! : IN=eth0 OUT= MAC=00:0e:0c:9c:15:ae:XX:XX:db:d3:34:40:08:00 SRC=201.91.255.194 DST=XXX.XXX.XXX.XXX LEN=78 TOS=0x00 PREC=0x00 TTL=48 ID=57854 DF PROTO=UDP SPT=137 DPT=137 LEN=58</p>

<pre><code>な感じで読みにくいのが、logtoolを通すと
</code></pre>

<p>Jan 24 02:49:33 test01 iptables: -j LOG: kernel: Rejected_At_Last!! :  {UDP} 201-91-255-194.customer.tdatabrasil.net.br(201.91.255.194):137 -&gt; test01.tnmt.local(XXX.XXX.XXX.XXX):137</p>

<pre><code>と、カラーリングの他にログのIPからホスト名を逆引きしてくれたりします。（ホスト名逆引きは -n オプションで実行しなくも出来ます）
出力形式も [ ANSI | ASCII | CSV | HTML | RAW ] が指定可能です。
例であげた↑の色分けしたログも -o HTML で出力したものを利用しました。
使用用途として、manコマンドに乗ってたものをいくつか紹介しておきます。

リアルタイムにログを見る
% tail -f /var/log/messages | logtool -o ANSI -b
</code></pre>

<p>HTMLレポート
% cat /var/log/messages | logtool -o HTML > /home/httpd/html/logs/messages.html
    メールでレポート
    % retail /var/log/messages | logtool -o ASCII | mail -s "Daily report" someuser@somedomain.ext</p>

<p>logtool.conf という設定ファイルがあるのでデフォルトの挙動も変更出来たりするみたいです。
小さいプログラムなので、入れておくとちょっとしたときに便利に使えそうだなと思いました。
同梱されていたspecファイルちょっといじる必要ありました。2005年だけあってspecファイルのフォーマットが若干古い。
余談ですが、logtool作者がRedHatのライセンスやポリシーに怒ってシステム全部Debianにしたよ！RPMなんかメンテしねーよ！
って書いてあった。何があったんだろ。</p>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/18307</guid>
    </item>
        <item>
      <title>puppet 2.6 インストール（アップグレード）＆ファーストインプレッション</title>
      <link>http://tnmt.info/items/view/16709</link>
      <pubDate>Tue, 23 Nov 2010 14:55:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>前に @mikeda さんがこう言ってたので、とりあえず自宅環境の0.25を2.6にアップグレードしてみることにしました。
    アップグレード
    あらかじめ CentOS 5.5 x86_64 で puppet 0.25.5 が稼働している環境になります。新規にインストールする場合はもう少し手順が多いかもしれません。0.25 自体は epel リポジトリから入れてるので、epel が入っていれば、必要なパッケージは全部入ると思います。</p>

<pre><code>puppet 2.6系のyumリポジトリ登録
# sudo wget &lt;a href="http://tmz.fedorapeople.org/repo/puppet/epel/puppet.repo" rel="external"&gt;http://tmz.fedorapeople.org/repo/puppet/epel/puppet.repo&lt;/a&gt; -P /etc/yum.repos.d
</code></pre>

<p>インストール</p>

<h1>sudo yum install puppet puppet-server</h1>

<pre><code>簡単。今日時点でバージョンは 2.6.3 でした。
puppet.conf修正
そのままpuppetmasterdを起動しなおして、puppetdで接続も出来たんですが、以下のWarningが出ます。
warning: You have configuration parameter $factsync specified in [puppetd], which is a deprecated section. I'm assuming you meant [agent]
</code></pre>

<p>warning: You have configuration parameter $ssldir specified in [puppetd], which is a deprecated section. I'm assuming you meant [agent]
warning: You have configuration parameter $factsource specified in [puppetd], which is a deprecated section. I'm assuming you meant [agent]
warning: You have configuration parameter $templatedir specified in [puppetmasterd], which is a deprecated section. I'm assuming you meant [master]
warning: You have configuration parameter $ssldir specified in [puppetmasterd], which is a deprecated section. I'm assuming you meant [master]
warning: You have configuration parameter $modulepath specified in [puppetmasterd], which is a deprecated section. I'm assuming you meant [master]
warning: You have configuration parameter $manifestdir specified in [puppetmasterd], which is a deprecated section. I'm assuming you meant [master]
warning: Fact syncing is deprecated as of 0.25 -- use 'pluginsync' instead
    エラーにはなりませんでした。/etc/puppet/puppet.conf で [puppetmasterd] となってる記述を [master] に、 [puppetd] となってる記述を [agent] にしてやると大分 Warning が減ります。長い記載が短くなっていいですね。
    facterの部分は公式のWiki見ても、最下部にpluginアプローチに変わると記載があります。pluginってあまり使ったことないなー。。今回はスルー。
    puppet実行スタイル
    2.6のリリースノート見ると、沢山名前あって分かりにくかった実行バイナリが puppet コマンドを起点にシンプルで分かりやすくなっています。</p>

<pre><code>puppetmasterd –&gt; puppet master
puppetd –&gt; puppet agent puppet –&gt; puppet apply
puppetca –&gt; puppet cert
ralsh –&gt; puppet resource
puppetrun –&gt; puppet kick
puppetqd –&gt; puppet queue
filebucket –&gt; puppet filebucket
puppetdoc –&gt; puppet doc
pi –&gt; puppet

もちろん、0.25 以前と同じ名前のバイナリもそのまま使えるので、以前のスタイルに慣れてる場合はそのままで、2.6から使い始める場合は新しいスタイルで覚えるといいんじゃないかなと思いました。
たとえば、puppet のクライアントで一度きりサーバーに接続して変更を適用するコマンドで下記があったとき
# sudo puppetd --server manage01.tnmt.local -v -l console --onetime --ignorecache
</code></pre>

<p>2.6 以降はこうでもOKになります。</p>

<h1>sudo puppet agent puppet  --no-daemonize --server manage01.tnmt.local -v -l console --onetime --ignorecache</h1>

<pre><code>まとめと所感

バージョンアップの手間はそれほど無い
yum 一発なんでお手軽でした。ただ、puppet サーバー、クライアントともにバージョンは両方一緒にあげた方がいいとは思います。0.24 〜 0.25 にあげたときにハマりました。俺じゃないけど。
既存の環境へのインパクトは少ないです。依存でrubyあげろとか言われたらrails使ってる環境なんかだとキツいなーとは思ってました。
前のバージョンとの互換性はほぼ問題なさそう
設定ファイルは大きな変更なく使い回し出来ました、変更もWarningレベル。自宅の環境はそれほどmanifestが沢山あったりするわけでもないですが、ここもエラーは出てないです。
アップグレード後の期待とか
2.6からの一番の目玉はmanifestなどをPure Ruby DSLで書けるようになるというところだと思います。2.6のリリースノートにもあるとおり、旧来のDSLはターゲットはシステム管理者に学習コスト少なく運用出来るように、制約は多いですが割とシンプルではありました。今回の機能追加はRubyを知っているエンジニア向けに提供される選択肢として、今後サーバーエンジニアとアプリエンジニアが協業してメンテしていくなんてことも出来やすくなるかと思います。これってある意味 DevOps!!
実際は今はノウハウとかmanifest資産もたまってきてるし、現行のDSLで特に不満も無いので、便利な書き方があったら取り入れてくのが一番効果が上がるかなと感じました。
自由度高くなる→黒魔術的な記法が増える→見通し悪くてメンテしづらくなる。なんてのには気をつけたいですね。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>前に @mikeda さんがこう言ってたので、とりあえず自宅環境の0.25を2.6にアップグレードしてみることにしました。
    アップグレード
    あらかじめ CentOS 5.5 x86_64 で puppet 0.25.5 が稼働している環境になります。新規にインストールする場合はもう少し手順が多いかもしれません。0.25 自体は epel リポジトリから入れてるので、epel が入っていれば、必要なパッケージは全部入ると思います。</p>

<pre><code>puppet 2.6系のyumリポジトリ登録
# sudo wget &lt;a href="http://tmz.fedorapeople.org/repo/puppet/epel/puppet.repo" rel="external"&gt;http://tmz.fedorapeople.org/repo/puppet/epel/puppet.repo&lt;/a&gt; -P /etc/yum.repos.d
</code></pre>

<p>インストール</p>

<h1>sudo yum install puppet puppet-server</h1>

<pre><code>簡単。今日時点でバージョンは 2.6.3 でした。
puppet.conf修正
そのままpuppetmasterdを起動しなおして、puppetdで接続も出来たんですが、以下のWarningが出ます。
warning: You have configuration parameter $factsync specified in [puppetd], which is a deprecated section. I'm assuming you meant [agent]
</code></pre>

<p>warning: You have configuration parameter $ssldir specified in [puppetd], which is a deprecated section. I'm assuming you meant [agent]
warning: You have configuration parameter $factsource specified in [puppetd], which is a deprecated section. I'm assuming you meant [agent]
warning: You have configuration parameter $templatedir specified in [puppetmasterd], which is a deprecated section. I'm assuming you meant [master]
warning: You have configuration parameter $ssldir specified in [puppetmasterd], which is a deprecated section. I'm assuming you meant [master]
warning: You have configuration parameter $modulepath specified in [puppetmasterd], which is a deprecated section. I'm assuming you meant [master]
warning: You have configuration parameter $manifestdir specified in [puppetmasterd], which is a deprecated section. I'm assuming you meant [master]
warning: Fact syncing is deprecated as of 0.25 -- use 'pluginsync' instead
    エラーにはなりませんでした。/etc/puppet/puppet.conf で [puppetmasterd] となってる記述を [master] に、 [puppetd] となってる記述を [agent] にしてやると大分 Warning が減ります。長い記載が短くなっていいですね。
    facterの部分は公式のWiki見ても、最下部にpluginアプローチに変わると記載があります。pluginってあまり使ったことないなー。。今回はスルー。
    puppet実行スタイル
    2.6のリリースノート見ると、沢山名前あって分かりにくかった実行バイナリが puppet コマンドを起点にシンプルで分かりやすくなっています。</p>

<pre><code>puppetmasterd –&gt; puppet master
puppetd –&gt; puppet agent puppet –&gt; puppet apply
puppetca –&gt; puppet cert
ralsh –&gt; puppet resource
puppetrun –&gt; puppet kick
puppetqd –&gt; puppet queue
filebucket –&gt; puppet filebucket
puppetdoc –&gt; puppet doc
pi –&gt; puppet

もちろん、0.25 以前と同じ名前のバイナリもそのまま使えるので、以前のスタイルに慣れてる場合はそのままで、2.6から使い始める場合は新しいスタイルで覚えるといいんじゃないかなと思いました。
たとえば、puppet のクライアントで一度きりサーバーに接続して変更を適用するコマンドで下記があったとき
# sudo puppetd --server manage01.tnmt.local -v -l console --onetime --ignorecache
</code></pre>

<p>2.6 以降はこうでもOKになります。</p>

<h1>sudo puppet agent puppet  --no-daemonize --server manage01.tnmt.local -v -l console --onetime --ignorecache</h1>

<pre><code>まとめと所感

バージョンアップの手間はそれほど無い
yum 一発なんでお手軽でした。ただ、puppet サーバー、クライアントともにバージョンは両方一緒にあげた方がいいとは思います。0.24 〜 0.25 にあげたときにハマりました。俺じゃないけど。
既存の環境へのインパクトは少ないです。依存でrubyあげろとか言われたらrails使ってる環境なんかだとキツいなーとは思ってました。
前のバージョンとの互換性はほぼ問題なさそう
設定ファイルは大きな変更なく使い回し出来ました、変更もWarningレベル。自宅の環境はそれほどmanifestが沢山あったりするわけでもないですが、ここもエラーは出てないです。
アップグレード後の期待とか
2.6からの一番の目玉はmanifestなどをPure Ruby DSLで書けるようになるというところだと思います。2.6のリリースノートにもあるとおり、旧来のDSLはターゲットはシステム管理者に学習コスト少なく運用出来るように、制約は多いですが割とシンプルではありました。今回の機能追加はRubyを知っているエンジニア向けに提供される選択肢として、今後サーバーエンジニアとアプリエンジニアが協業してメンテしていくなんてことも出来やすくなるかと思います。これってある意味 DevOps!!
実際は今はノウハウとかmanifest資産もたまってきてるし、現行のDSLで特に不満も無いので、便利な書き方があったら取り入れてくのが一番効果が上がるかなと感じました。
自由度高くなる→黒魔術的な記法が増える→見通し悪くてメンテしづらくなる。なんてのには気をつけたいですね。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/16709</guid>
    </item>
        <item>
      <title>HP ML110 G5 その2 : CPU換装とメモリ増設</title>
      <link>http://tnmt.info/items/view/16521</link>
      <pubDate>Mon, 15 Nov 2010 01:01:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>先日購入したML110 G5 をアップグレードしました。
    久々に秋葉原でパーツを買い足し。色々歩いて安いとこ探してたんですが、最終的にじゃんぱらの中古パーツ。</p>

<pre><code>Celeron Dual-Core E3300 (中古) : 3680円
PC2-6400 (DDR2-800) Non-ECC 4GB (2GB * 2) : 5980円

あとセラミックグリスも。
付け替えは写真で振り返ってみます。

CPU換装

ヒートシンクが見える

ヒートシンク外す
4つ角にネジがあるので、それを外す。

CPU付け替える



CPU付け替えたらグリス塗っときます。
ヒートシンク付けなおす

こちらも前についてたグリスを奇麗に拭き取ったら、新しくグリスを塗り直し。

メモリ追加する

ヒートシンク外して見通しが良くなったついでに付け替えました。

電源入れたらちゃんと認識してました。CPUは&amp;#8221;Intel(R) Celeron(R) CP..&amp;#8221;、メモリは4096MBあります。

CPUもちゃんとIntel-VT対応してますね。

出来上がり。
本体＋追加パーツトータル2万円弱ですが、まずまずのVM母艦機になったかなと思います。
メモリは様子見で4GBにしておいたけど、あと4GBいけるのでどっかタイミング見て追加出来ればいいかな。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                          <img src="http://blog.tnmt.info/wp-content/uploads/2010/11/IMG_2252-300x224.jpg" alt="" />
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>先日購入したML110 G5 をアップグレードしました。
    久々に秋葉原でパーツを買い足し。色々歩いて安いとこ探してたんですが、最終的にじゃんぱらの中古パーツ。</p>

<pre><code>Celeron Dual-Core E3300 (中古) : 3680円
PC2-6400 (DDR2-800) Non-ECC 4GB (2GB * 2) : 5980円

あとセラミックグリスも。
付け替えは写真で振り返ってみます。

CPU換装

ヒートシンクが見える

ヒートシンク外す
4つ角にネジがあるので、それを外す。

CPU付け替える



CPU付け替えたらグリス塗っときます。
ヒートシンク付けなおす

こちらも前についてたグリスを奇麗に拭き取ったら、新しくグリスを塗り直し。

メモリ追加する

ヒートシンク外して見通しが良くなったついでに付け替えました。

電源入れたらちゃんと認識してました。CPUは&amp;#8221;Intel(R) Celeron(R) CP..&amp;#8221;、メモリは4096MBあります。

CPUもちゃんとIntel-VT対応してますね。

出来上がり。
本体＋追加パーツトータル2万円弱ですが、まずまずのVM母艦機になったかなと思います。
メモリは様子見で4GBにしておいたけど、あと4GBいけるのでどっかタイミング見て追加出来ればいいかな。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                          <img src="http://blog.tnmt.info/wp-content/uploads/2010/11/IMG_2252-300x224.jpg" alt="" />
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/16521</guid>
    </item>
        <item>
      <title>Fedora 13 → Fedora 14 へ preupgrade-cli でアップグレード (前より簡単になってた)</title>
      <link>http://tnmt.info/items/view/16390</link>
      <pubDate>Sat, 06 Nov 2010 03:39:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>皆さん、Fedora 14 が出ましたね。
    ということで、自分の作業環境もアップグレードしてみることにしました。
    Fedora 10 -> Fedora 12 にあげた手順についても前に書いたことがあったので、今回もそれに沿ってやってみます。
    preupgradeは導入済み前提、早速試してみます。</p>

<pre><code> preupgrade-cli 実行 
</code></pre>

<p>% sudo LANG=C preupgrade-cli "Fedora 14 (Laughlin)"                                                                                                                                             [700/706]
Loaded plugins: blacklist, whiteout
No plugin match for: rpm-warm-cache
No plugin match for: remove-with-leaves
No plugin match for: auto-update-debuginfo
No plugin match for: refresh-packagekit
No plugin match for: presto
preupgrade-main (mirrorlist)
  url: <a href="http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-14" rel="external">http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-14</a>&#038;arch=$basearch
  now: <a href="http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-14" rel="external">http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-14</a>&#038;arch=i386
preupgrade (mirrorlist)
  url: <a href="http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/14/Fedora" rel="external">http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/14/Fedora</a>/$basearch/os
  now: <a href="http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/14/Fedora/i386/os" rel="external">http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/14/Fedora/i386/os</a>
preupgrade-fedora (mirrorlist)
  url: <a href="https://mirrors.fedoraproject.org/metalink?repo=fedora-14" rel="external">https://mirrors.fedoraproject.org/metalink?repo=fedora-14</a>&#038;arch=i386
  now: <a href="https://mirrors.fedoraproject.org/metalink?repo=fedora-14" rel="external">https://mirrors.fedoraproject.org/metalink?repo=fedora-14</a>&#038;arch=i386
preupgrade-updates (mirrorlist)
  url: <a href="https://mirrors.fedoraproject.org/metalink?repo=updates-released-f14" rel="external">https://mirrors.fedoraproject.org/metalink?repo=updates-released-f14</a>&#038;arch=i386
  now: <a href="https://mirrors.fedoraproject.org/metalink?repo=updates-released-f14" rel="external">https://mirrors.fedoraproject.org/metalink?repo=updates-released-f14</a>&#038;arch=i386
Fetched treeinfo from <a href="http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/14/Fedora/i386/os//.treeinfo" rel="external">http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/14/Fedora/i386/os//.treeinfo</a>
treeinfo timestamp: Fri Oct 22 03:14:10 2010
MEMORY                                                                                                                                                                                     | 1.2 kB     00:00
/boot/upgrade/vmlinuz checksum OK
/boot/upgrade/initrd.img checksum OK
Error: Not enough space in /boot/upgrade to download install.img.</p>

<p>The main installer image could not be saved to your hard drive. The installer can download this file once it starts, but this requires a wired network connection during installation.</p>

<p>If you do not have a wired network connection available, you should quit now.</p>

<pre><code>実際はコンソールどんどん流れていきます。
以前はパーティションを分けてて且つ /boot がアップグレードに必要な容量を満たしてない場合（多分100〜200MBくらい？）メッセージも出ず、リブート時にエラーになって終わってたのですが、今回はその旨メッセージが表示されるようになっているようです。
/boot に容量が無い場合、”preupgradeは再起動時にダウンロードしなおすけど、ネットワークつないで無い時は無理なんでquitしておけ&amp;#8221; と言っています。
処理はそのまま進みます。
</code></pre>

<p>--&gt; Running transaction check
---&gt; Package MAKEDEV.i686 0:3.24-6.fc14 set to be updated
---&gt; Package ORBit2.i686 0:2.14.19-1.fc14 set to be updated
---&gt; Package OpenEXR-libs.i686 0:1.7.0-1.fc14 set to be updated
---&gt; Package acl.i686 0:2.2.49-8.fc14 set to be updated
---&gt; Package alex.i686 0:2.3.3-1.fc14 set to be updated
---&gt; Package atk.i686 0:1.30.0-5.fc14 set to be updated
---&gt; Package attr.i686 0:2.4.44-5.fc14 set to be updated
---&gt; Package audit-libs.i686 0:2.0.4-4.fc14 set to be updated
---&gt; Package audit-libs-python.i686 0:2.0.4-4.fc14 set to be updated
---&gt; Package authconfig.i686 0:6.1.11-1.fc14 set to be updated
--&gt; Processing Dependency: libavahi-client.so.3 for package: 1:cups-libs-1.4.4-10.fc14.i686
--&gt; Processing Dependency: libavahi-common.so.3 for package: 1:cups-libs-1.4.4-10.fc14.i686
--&gt; Processing Dependency: libavahi-common.so.3 for package: avahi-0.6.27-2.fc14.i686
---&gt; Package avahi.i686 0:0.6.27-2.fc14 set to be updated
--&gt; Processing Dependency: systemd-units for package: avahi-0.6.27-2.fc14.i686
---&gt; Package bash.i686 0:4.1.7-3.fc14 set to be updated
---&gt; Package bind-libs.i686 32:9.7.2-2.P2.fc14 set to be updated</p>

<p>... (snip)</p>

<p>---&gt; Package cronie.i686 0:1.4.5-2.fc14 set to be installed
--&gt; Processing Dependency: dailyjobs for package: cronie-1.4.5-2.fc14.i686
--&gt; Running transaction check
---&gt; Package cronie-anacron.i686 0:1.4.5-2.fc14 set to be installed
--&gt; Finished Dependency Resolution
Packages we need to download
MAKEDEV.i686                             3.24-6.fc14            preupgrade-fedora
ORBit2.i686                              2.14.19-1.fc14         preupgrade-fedora
OpenEXR-libs.i686                        1.7.0-1.fc14           preupgrade-fedora
acl.i686                                 2.2.49-8.fc14          preupgrade-fedora
alex.i686                                2.3.3-1.fc14           preupgrade-fedora
atk.i686                                 1.30.0-5.fc14          preupgrade-fedora
attr.i686                                2.4.44-5.fc14          preupgrade-fedora
audit-libs.i686                          2.0.4-4.fc14           preupgrade-fedora
audit-libs-python.i686                   2.0.4-4.fc14           preupgrade-fedora
authconfig.i686                          6.1.11-1.fc14          preupgrade-updates
avahi.i686                               0.6.27-2.fc14          preupgrade-fedora
avahi-libs.i686                          0.6.27-2.fc14          preupgrade-fedora
bash.i686                                4.1.7-3.fc14           preupgrade-fedora</p>

<p>... (snip)</p>

<p>upstart.i686                             0.6.5-10.fc14          preupgrade-updates
upstart-sysvinit.i686                    0.6.5-10.fc14          preupgrade-updates
usermode.i686                            1.106.1-1.fc14         preupgrade-fedora
util-linux-ng.i686                       2.18-4.4.fc14          preupgrade-updates
vim-common.i686                          2:7.2.446-2.fc14       preupgrade-fedora
vim-enhanced.i686                        2:7.2.446-2.fc14       preupgrade-fedora
vim-minimal.i686                         2:7.2.446-2.fc14       preupgrade-fedora
xml-common.noarch                        0.6.3-33.fc14          preupgrade-fedora
xz.i686                                  4.999.9-0.2.beta.20100401git.fc14
                                                                preupgrade-fedora
xz-libs.i686                             4.999.9-0.2.beta.20100401git.fc14
                                                                preupgrade-fedora
xz-lzma-compat.i686                      4.999.9-0.2.beta.20100401git.fc14
                                                                preupgrade-fedora
yum.noarch                               3.2.28-5.fc14          preupgrade-fedora
yum-metadata-parser.i686                 1.1.4-2.fc14           preupgrade-fedora
zip.i686                                 3.0-2.fc14             preupgrade-fedora
zlib.i686                                1.2.5-2.fc14           preupgrade-fedora
zsh.i686                                 4.3.10-5.fc14          preupgrade-fedora
Total download size: 0.0bytes
Download packages?
Is this ok [y/N]: y
Generating metadata for preupgrade repo
325/325 - binutils-2.20.51.0.7-5.fc14.i686.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
Preparing system to boot into installer
DEBUG /sbin/grubby --title="Upgrade to Fedora 14 (Laughlin)" --remove-kernel="/boot/upgrade/vmlinuz" --add-kernel="/boot/upgrade/vmlinuz" --initrd="/boot/upgrade/initrd.img" --args="preupgrade repo=hd::/var/cac
he/yum/preupgrade  ks=hd:UUID=e1de3e8f-91f6-456a-8b14-fae7ee076c0c:/upgrade/ks.cfg stage2=http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/14/Fedora/i386/os/images/install.img";
Probing devices to guess BIOS drives. This may take a long time.
All finished. The upgrade will begin when you reboot.
$</p>

<pre><code>ダウンロードサイズが 0.0bytes なのに注目。再起動したら残りが始まりますよと書いてあります。
 再起動 
普通だったら言われるまま再起動でOK。VMとか10年前のハードで動かしてる場合は若干注意で、メモリが512MB以上じゃないと再起動後のタイミングで失敗します (256MBでNGでした) 。クリーンインストール時もメモリは512MB以上は必要そうです。これって最近のCentOSでも一緒ですね。
再起動後はNICのIPだけ固定を振るかかDHCPか聞かれますが、そのあとは自動的に残りのアップグレード処理を続けてくれます。

まとめ：
以前は /boot/ 以下にダミーのファイルが必要でしたが、Fedora 14 はそこもちゃんと見てくれるように賢くなってくれていました。
RHELにpreupgradeって採用されないのかなーーー。超便利になってきてる。
CentOSでも使えたら、Debianの次くらいにアップグレード楽チンになりそうなもんですけどね。
Debianはメジャーバージョンアップグレード ( apt-get dist-upgrade ) 時もリブートも必要無いって、改めてよくできてるなあ。
</code></pre>

<p>Related posts:[Fedora] Fedora 10 から Fedora 12 へのアップグレード (preupgradeで)  会社の作業用VMはRH互換で、且つパッケージも色々と新しめがいいのでFedoraを使ってるんですが、気づいたらFedora が 12 まで出てるということで、現在のFedora 10からアップグレードすることにし [...]...</p>

<p>関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>皆さん、Fedora 14 が出ましたね。
    ということで、自分の作業環境もアップグレードしてみることにしました。
    Fedora 10 -> Fedora 12 にあげた手順についても前に書いたことがあったので、今回もそれに沿ってやってみます。
    preupgradeは導入済み前提、早速試してみます。</p>

<pre><code> preupgrade-cli 実行 
</code></pre>

<p>% sudo LANG=C preupgrade-cli "Fedora 14 (Laughlin)"                                                                                                                                             [700/706]
Loaded plugins: blacklist, whiteout
No plugin match for: rpm-warm-cache
No plugin match for: remove-with-leaves
No plugin match for: auto-update-debuginfo
No plugin match for: refresh-packagekit
No plugin match for: presto
preupgrade-main (mirrorlist)
  url: <a href="http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-14" rel="external">http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-14</a>&#038;arch=$basearch
  now: <a href="http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-14" rel="external">http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-14</a>&#038;arch=i386
preupgrade (mirrorlist)
  url: <a href="http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/14/Fedora" rel="external">http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/14/Fedora</a>/$basearch/os
  now: <a href="http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/14/Fedora/i386/os" rel="external">http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/14/Fedora/i386/os</a>
preupgrade-fedora (mirrorlist)
  url: <a href="https://mirrors.fedoraproject.org/metalink?repo=fedora-14" rel="external">https://mirrors.fedoraproject.org/metalink?repo=fedora-14</a>&#038;arch=i386
  now: <a href="https://mirrors.fedoraproject.org/metalink?repo=fedora-14" rel="external">https://mirrors.fedoraproject.org/metalink?repo=fedora-14</a>&#038;arch=i386
preupgrade-updates (mirrorlist)
  url: <a href="https://mirrors.fedoraproject.org/metalink?repo=updates-released-f14" rel="external">https://mirrors.fedoraproject.org/metalink?repo=updates-released-f14</a>&#038;arch=i386
  now: <a href="https://mirrors.fedoraproject.org/metalink?repo=updates-released-f14" rel="external">https://mirrors.fedoraproject.org/metalink?repo=updates-released-f14</a>&#038;arch=i386
Fetched treeinfo from <a href="http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/14/Fedora/i386/os//.treeinfo" rel="external">http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/14/Fedora/i386/os//.treeinfo</a>
treeinfo timestamp: Fri Oct 22 03:14:10 2010
MEMORY                                                                                                                                                                                     | 1.2 kB     00:00
/boot/upgrade/vmlinuz checksum OK
/boot/upgrade/initrd.img checksum OK
Error: Not enough space in /boot/upgrade to download install.img.</p>

<p>The main installer image could not be saved to your hard drive. The installer can download this file once it starts, but this requires a wired network connection during installation.</p>

<p>If you do not have a wired network connection available, you should quit now.</p>

<pre><code>実際はコンソールどんどん流れていきます。
以前はパーティションを分けてて且つ /boot がアップグレードに必要な容量を満たしてない場合（多分100〜200MBくらい？）メッセージも出ず、リブート時にエラーになって終わってたのですが、今回はその旨メッセージが表示されるようになっているようです。
/boot に容量が無い場合、”preupgradeは再起動時にダウンロードしなおすけど、ネットワークつないで無い時は無理なんでquitしておけ&amp;#8221; と言っています。
処理はそのまま進みます。
</code></pre>

<p>--&gt; Running transaction check
---&gt; Package MAKEDEV.i686 0:3.24-6.fc14 set to be updated
---&gt; Package ORBit2.i686 0:2.14.19-1.fc14 set to be updated
---&gt; Package OpenEXR-libs.i686 0:1.7.0-1.fc14 set to be updated
---&gt; Package acl.i686 0:2.2.49-8.fc14 set to be updated
---&gt; Package alex.i686 0:2.3.3-1.fc14 set to be updated
---&gt; Package atk.i686 0:1.30.0-5.fc14 set to be updated
---&gt; Package attr.i686 0:2.4.44-5.fc14 set to be updated
---&gt; Package audit-libs.i686 0:2.0.4-4.fc14 set to be updated
---&gt; Package audit-libs-python.i686 0:2.0.4-4.fc14 set to be updated
---&gt; Package authconfig.i686 0:6.1.11-1.fc14 set to be updated
--&gt; Processing Dependency: libavahi-client.so.3 for package: 1:cups-libs-1.4.4-10.fc14.i686
--&gt; Processing Dependency: libavahi-common.so.3 for package: 1:cups-libs-1.4.4-10.fc14.i686
--&gt; Processing Dependency: libavahi-common.so.3 for package: avahi-0.6.27-2.fc14.i686
---&gt; Package avahi.i686 0:0.6.27-2.fc14 set to be updated
--&gt; Processing Dependency: systemd-units for package: avahi-0.6.27-2.fc14.i686
---&gt; Package bash.i686 0:4.1.7-3.fc14 set to be updated
---&gt; Package bind-libs.i686 32:9.7.2-2.P2.fc14 set to be updated</p>

<p>... (snip)</p>

<p>---&gt; Package cronie.i686 0:1.4.5-2.fc14 set to be installed
--&gt; Processing Dependency: dailyjobs for package: cronie-1.4.5-2.fc14.i686
--&gt; Running transaction check
---&gt; Package cronie-anacron.i686 0:1.4.5-2.fc14 set to be installed
--&gt; Finished Dependency Resolution
Packages we need to download
MAKEDEV.i686                             3.24-6.fc14            preupgrade-fedora
ORBit2.i686                              2.14.19-1.fc14         preupgrade-fedora
OpenEXR-libs.i686                        1.7.0-1.fc14           preupgrade-fedora
acl.i686                                 2.2.49-8.fc14          preupgrade-fedora
alex.i686                                2.3.3-1.fc14           preupgrade-fedora
atk.i686                                 1.30.0-5.fc14          preupgrade-fedora
attr.i686                                2.4.44-5.fc14          preupgrade-fedora
audit-libs.i686                          2.0.4-4.fc14           preupgrade-fedora
audit-libs-python.i686                   2.0.4-4.fc14           preupgrade-fedora
authconfig.i686                          6.1.11-1.fc14          preupgrade-updates
avahi.i686                               0.6.27-2.fc14          preupgrade-fedora
avahi-libs.i686                          0.6.27-2.fc14          preupgrade-fedora
bash.i686                                4.1.7-3.fc14           preupgrade-fedora</p>

<p>... (snip)</p>

<p>upstart.i686                             0.6.5-10.fc14          preupgrade-updates
upstart-sysvinit.i686                    0.6.5-10.fc14          preupgrade-updates
usermode.i686                            1.106.1-1.fc14         preupgrade-fedora
util-linux-ng.i686                       2.18-4.4.fc14          preupgrade-updates
vim-common.i686                          2:7.2.446-2.fc14       preupgrade-fedora
vim-enhanced.i686                        2:7.2.446-2.fc14       preupgrade-fedora
vim-minimal.i686                         2:7.2.446-2.fc14       preupgrade-fedora
xml-common.noarch                        0.6.3-33.fc14          preupgrade-fedora
xz.i686                                  4.999.9-0.2.beta.20100401git.fc14
                                                                preupgrade-fedora
xz-libs.i686                             4.999.9-0.2.beta.20100401git.fc14
                                                                preupgrade-fedora
xz-lzma-compat.i686                      4.999.9-0.2.beta.20100401git.fc14
                                                                preupgrade-fedora
yum.noarch                               3.2.28-5.fc14          preupgrade-fedora
yum-metadata-parser.i686                 1.1.4-2.fc14           preupgrade-fedora
zip.i686                                 3.0-2.fc14             preupgrade-fedora
zlib.i686                                1.2.5-2.fc14           preupgrade-fedora
zsh.i686                                 4.3.10-5.fc14          preupgrade-fedora
Total download size: 0.0bytes
Download packages?
Is this ok [y/N]: y
Generating metadata for preupgrade repo
325/325 - binutils-2.20.51.0.7-5.fc14.i686.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
Preparing system to boot into installer
DEBUG /sbin/grubby --title="Upgrade to Fedora 14 (Laughlin)" --remove-kernel="/boot/upgrade/vmlinuz" --add-kernel="/boot/upgrade/vmlinuz" --initrd="/boot/upgrade/initrd.img" --args="preupgrade repo=hd::/var/cac
he/yum/preupgrade  ks=hd:UUID=e1de3e8f-91f6-456a-8b14-fae7ee076c0c:/upgrade/ks.cfg stage2=http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/14/Fedora/i386/os/images/install.img";
Probing devices to guess BIOS drives. This may take a long time.
All finished. The upgrade will begin when you reboot.
$</p>

<pre><code>ダウンロードサイズが 0.0bytes なのに注目。再起動したら残りが始まりますよと書いてあります。
 再起動 
普通だったら言われるまま再起動でOK。VMとか10年前のハードで動かしてる場合は若干注意で、メモリが512MB以上じゃないと再起動後のタイミングで失敗します (256MBでNGでした) 。クリーンインストール時もメモリは512MB以上は必要そうです。これって最近のCentOSでも一緒ですね。
再起動後はNICのIPだけ固定を振るかかDHCPか聞かれますが、そのあとは自動的に残りのアップグレード処理を続けてくれます。

まとめ：
以前は /boot/ 以下にダミーのファイルが必要でしたが、Fedora 14 はそこもちゃんと見てくれるように賢くなってくれていました。
RHELにpreupgradeって採用されないのかなーーー。超便利になってきてる。
CentOSでも使えたら、Debianの次くらいにアップグレード楽チンになりそうなもんですけどね。
Debianはメジャーバージョンアップグレード ( apt-get dist-upgrade ) 時もリブートも必要無いって、改めてよくできてるなあ。
</code></pre>

<p>Related posts:[Fedora] Fedora 10 から Fedora 12 へのアップグレード (preupgradeで)  会社の作業用VMはRH互換で、且つパッケージも色々と新しめがいいのでFedoraを使ってるんですが、気づいたらFedora が 12 まで出てるということで、現在のFedora 10からアップグレードすることにし [...]...</p>

<p>関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/16390</guid>
    </item>
        <item>
      <title>MacBook Pro のメモリ増設した</title>
      <link>http://tnmt.info/items/view/16296</link>
      <pubDate>Tue, 02 Nov 2010 01:39:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>MacBook Proのメモリを増設して8GBにしました。</p>

<pre><code> MBP 13-inch (Mid 2009) のメモリは &amp;#8220;SODIMM DDR3-1066 PC3-8500&amp;#8243; 
 Sumsung製で ¥6,470 * 2 = ¥12,940 1枚7000円切って安くなったなーと思う 

付け替えも手順通りやれば全く問題無し。
 こんな感じで確認も出来ました。
試しに VMware Fusion で WinXP, CentOS 5.5 32bit, CentOS 5.5 64bit の VM をそれぞれ1GBくらいずつで同時に動かしたけど全然普通に動きますね。
検証用だったら自宅サーバー無くてもいいんじゃねみたいな。（とか言っちゃダメ。）
安いけどいい買い物です。メモリの価格はまだ下がってるので昔MacBook Proを買ったっていう人にもおすすめです。
MacBook Airなんて全然要らないんだから！（涙目）
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                          <img src="http://blog.tnmt.info/wp-content/uploads/2010/11/c478b1a6dedb96603a486610161ab963.tiff" alt="" />
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>MacBook Proのメモリを増設して8GBにしました。</p>

<pre><code> MBP 13-inch (Mid 2009) のメモリは &amp;#8220;SODIMM DDR3-1066 PC3-8500&amp;#8243; 
 Sumsung製で ¥6,470 * 2 = ¥12,940 1枚7000円切って安くなったなーと思う 

付け替えも手順通りやれば全く問題無し。
 こんな感じで確認も出来ました。
試しに VMware Fusion で WinXP, CentOS 5.5 32bit, CentOS 5.5 64bit の VM をそれぞれ1GBくらいずつで同時に動かしたけど全然普通に動きますね。
検証用だったら自宅サーバー無くてもいいんじゃねみたいな。（とか言っちゃダメ。）
安いけどいい買い物です。メモリの価格はまだ下がってるので昔MacBook Proを買ったっていう人にもおすすめです。
MacBook Airなんて全然要らないんだから！（涙目）
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                          <img src="http://blog.tnmt.info/wp-content/uploads/2010/11/c478b1a6dedb96603a486610161ab963.tiff" alt="" />
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/16296</guid>
    </item>
        <item>
      <title>ML110 G5 がやってきた / 開封の儀</title>
      <link>http://tnmt.info/items/view/16265</link>
      <pubDate>Mon, 01 Nov 2010 00:07:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>つい先日
<!-- <a href="http://twitter.com/tnmt/status/28575529048" rel="external">http://twitter.com/tnmt/status/28575529048</a> --> <style type='text/css'>.bbpBox{background:url(http://s.twimg.com/a/1288305442/images/themes/theme1/bg.png) #C0DEED;padding:20px;}</style></p>

<div id='tweet_28575529048' class='bbpBox' style='background:url(http://s.twimg.com/a/1288305442/images/themes/theme1/bg.png) #C0DEED;padding:20px;'><p class='bbpTweet' style='background:#fff;padding:10px 12px 10px 12px;margin:0;min-height:48px;color:#000;font-size:16px !important;line-height:22px;-moz-border-radius:5px;-webkit-border-radius:5px;'>HP ProLiant ML110 G5 が ¥7,980 だったので思わずポチッたなう。 <a href='http://www.sofmap.com/product_detail/exec/_/sku=11453552/-/scmp=twit_pt' target='_new'>http://www.sofmap.com/product_detail/exec/_/sku=11453552/-/scmp=twit_pt</a><span class='timestamp' style='font-size:12px;display:block;'><a title='Sun Oct 24 07:38:06 ' href='http://twitter.com/tnmt/status/28575529048'>Sun Oct 24 07:38:06 </a> via <a href="http://logpi.jp" rel="nofollow">ログピ(logpi.jp)</a></span><span class='metadata' style='display:block;width:100%;clear:both;margin-top:8px;padding-top:12px;height:40px;border-top:1px solid #fff;border-top:1px solid #e6e6e6;'><span class='author' style='line-height:19px;'><a href='http://twitter.com/tnmt'><img src='http://a2.twimg.com/profile_images/1111603690/___normal.JPG' style='float:left;margin:0 7px 0 0px;width:38px;height:38px;' /></a><strong><a href='http://twitter.com/tnmt'>TSUNEMATSU Shinya</a></strong><br/>tnmt</span></span></p></div>

<p><!-- end of tweet -->
とつぶやいて購入した HP ML110 G5 が到着したのですが、ちょっと普通に大きかったので開けるのが面倒でした。
とはいえ、いつまでもそのまま放置しておけないので、酔った勢いで開封。記念のエントリです。</p>

<ul>
<li> 包装
はこんな感じ
<img src="http://blog.tnmt.info/wp-content/uploads/2010/10/ml110g5_001-300x224.jpg" alt="ML110 G5 包装" title="ml110g5_001" width="300" height="224" class="alignnone size-medium wp-image-474" />
割とでかいです。

<li> 開封
さっそく開けてみます。
<img src="http://blog.tnmt.info/wp-content/uploads/2010/10/ml110g5_002-300x224.jpg" alt="ML110 G5 箱を開けてみた" title="ml110g5_002" width="300" height="224" class="alignnone size-medium wp-image-475" />

<li> 出してみる
<img src="http://blog.tnmt.info/wp-content/uploads/2010/10/ml110g5_003-300x224.jpg" alt="ML110 G5 登場" title="ml110g5_003" width="300" height="224" class="alignnone size-medium wp-image-476" />
他にはPS/2のキーボードとマウスがついてたり。

<li> 見てみる
<img src="http://blog.tnmt.info/wp-content/uploads/2010/10/ml110g5_004-300x224.jpg" alt="品質の &quot;MADE IN TOKYO&quot; ?" title="ml110g5_004" width="300" height="224" class="alignnone size-medium wp-image-477" />
安心の品質？ "MADE IN TOKYO" の文字
</ul>

<p>で無事に箱からお目見えしました。</p>

<p>一応今後のプランとしては</p>

<ul>
<li>  CPUはIntel-VT対応に換装  (Celeron Dual-Core E3300) くらいでいい 
<li> メモリも増やしたい (PC2-6400 (DDR2-800) Non-ECC でもいけるらしい) 8GBくらい 
</ul>

<p>でもして仮想用の母艦機にでもしようかなと思ってます。HDDも足せればやるくらい。</p>

<p>以下、思いつくまま。</p>

<p>特にサーバー関連を勉強し始めようと思った時、やれVMwareだ、VirtualBOXでVMたてるーでもいいんですけど、実際に実機に触ってCPUがどうだメモリが合うかを勉強する機会になると思うので、一台買って色々試すっていいと思うんですよね。俺もまだハードウェア周りは正直全然不勉強ですけどネットには色々情報あるし。「OSインストール出来ねー」とか「パーツ換えたら動かなくなったー」でドライバやOSのブートの仕組みを学んできた経験もあります。</p>

<p>昔 (っても俺が大学生だった7,8年前) に一番最初に親父と一緒にPCショップ行ってパーツ集めて作ったマシンなんて、いまやVMの1インスタンスでも十分足りるくらいのスペックだった (CPU: Pentium3, Memory: 128M, HDD: 100GB切ってた くらいだった確か)。そんでも30万くらいしたし。
こんなに安く手に入らなかった、自分だけのサーバーがあるってスペシャルだし、久々にそれっぽいマシン買ったので何か久々に楽しいなーって思ってます。</p>
                          <img src="http://a2.twimg.com/profile_images/1111603690/___normal.JPG" alt="" />
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>つい先日
<!-- <a href="http://twitter.com/tnmt/status/28575529048" rel="external">http://twitter.com/tnmt/status/28575529048</a> --> <style type='text/css'>.bbpBox{background:url(http://s.twimg.com/a/1288305442/images/themes/theme1/bg.png) #C0DEED;padding:20px;}</style></p>

<div id='tweet_28575529048' class='bbpBox' style='background:url(http://s.twimg.com/a/1288305442/images/themes/theme1/bg.png) #C0DEED;padding:20px;'><p class='bbpTweet' style='background:#fff;padding:10px 12px 10px 12px;margin:0;min-height:48px;color:#000;font-size:16px !important;line-height:22px;-moz-border-radius:5px;-webkit-border-radius:5px;'>HP ProLiant ML110 G5 が ¥7,980 だったので思わずポチッたなう。 <a href='http://www.sofmap.com/product_detail/exec/_/sku=11453552/-/scmp=twit_pt' target='_new'>http://www.sofmap.com/product_detail/exec/_/sku=11453552/-/scmp=twit_pt</a><span class='timestamp' style='font-size:12px;display:block;'><a title='Sun Oct 24 07:38:06 ' href='http://twitter.com/tnmt/status/28575529048'>Sun Oct 24 07:38:06 </a> via <a href="http://logpi.jp" rel="nofollow">ログピ(logpi.jp)</a></span><span class='metadata' style='display:block;width:100%;clear:both;margin-top:8px;padding-top:12px;height:40px;border-top:1px solid #fff;border-top:1px solid #e6e6e6;'><span class='author' style='line-height:19px;'><a href='http://twitter.com/tnmt'><img src='http://a2.twimg.com/profile_images/1111603690/___normal.JPG' style='float:left;margin:0 7px 0 0px;width:38px;height:38px;' /></a><strong><a href='http://twitter.com/tnmt'>TSUNEMATSU Shinya</a></strong><br/>tnmt</span></span></p></div>

<p><!-- end of tweet -->
とつぶやいて購入した HP ML110 G5 が到着したのですが、ちょっと普通に大きかったので開けるのが面倒でした。
とはいえ、いつまでもそのまま放置しておけないので、酔った勢いで開封。記念のエントリです。</p>

<ul>
<li> 包装
はこんな感じ
<img src="http://blog.tnmt.info/wp-content/uploads/2010/10/ml110g5_001-300x224.jpg" alt="ML110 G5 包装" title="ml110g5_001" width="300" height="224" class="alignnone size-medium wp-image-474" />
割とでかいです。

<li> 開封
さっそく開けてみます。
<img src="http://blog.tnmt.info/wp-content/uploads/2010/10/ml110g5_002-300x224.jpg" alt="ML110 G5 箱を開けてみた" title="ml110g5_002" width="300" height="224" class="alignnone size-medium wp-image-475" />

<li> 出してみる
<img src="http://blog.tnmt.info/wp-content/uploads/2010/10/ml110g5_003-300x224.jpg" alt="ML110 G5 登場" title="ml110g5_003" width="300" height="224" class="alignnone size-medium wp-image-476" />
他にはPS/2のキーボードとマウスがついてたり。

<li> 見てみる
<img src="http://blog.tnmt.info/wp-content/uploads/2010/10/ml110g5_004-300x224.jpg" alt="品質の &quot;MADE IN TOKYO&quot; ?" title="ml110g5_004" width="300" height="224" class="alignnone size-medium wp-image-477" />
安心の品質？ "MADE IN TOKYO" の文字
</ul>

<p>で無事に箱からお目見えしました。</p>

<p>一応今後のプランとしては</p>

<ul>
<li>  CPUはIntel-VT対応に換装  (Celeron Dual-Core E3300) くらいでいい 
<li> メモリも増やしたい (PC2-6400 (DDR2-800) Non-ECC でもいけるらしい) 8GBくらい 
</ul>

<p>でもして仮想用の母艦機にでもしようかなと思ってます。HDDも足せればやるくらい。</p>

<p>以下、思いつくまま。</p>

<p>特にサーバー関連を勉強し始めようと思った時、やれVMwareだ、VirtualBOXでVMたてるーでもいいんですけど、実際に実機に触ってCPUがどうだメモリが合うかを勉強する機会になると思うので、一台買って色々試すっていいと思うんですよね。俺もまだハードウェア周りは正直全然不勉強ですけどネットには色々情報あるし。「OSインストール出来ねー」とか「パーツ換えたら動かなくなったー」でドライバやOSのブートの仕組みを学んできた経験もあります。</p>

<p>昔 (っても俺が大学生だった7,8年前) に一番最初に親父と一緒にPCショップ行ってパーツ集めて作ったマシンなんて、いまやVMの1インスタンスでも十分足りるくらいのスペックだった (CPU: Pentium3, Memory: 128M, HDD: 100GB切ってた くらいだった確か)。そんでも30万くらいしたし。
こんなに安く手に入らなかった、自分だけのサーバーがあるってスペシャルだし、久々にそれっぽいマシン買ったので何か久々に楽しいなーって思ってます。</p>
                          <img src="http://a2.twimg.com/profile_images/1111603690/___normal.JPG" alt="" />
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/16265</guid>
    </item>
        <item>
      <title>qpstudy03 に参加してきました</title>
      <link>http://tnmt.info/items/view/15748</link>
      <pubDate>Sun, 10 Oct 2010 16:32:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>初心者にも優しいインフラ勉強会 qpstudy の第3回に参加してきました。
    会場は大森のニフティ株式会社のセミナールーム。最近コミュニティーへの貸し出しを始められたそうですね。へえー。
    メイン枠
    今回の主題は「より対選手権！～俺よりよれるヤツに会いに行く～」で要するにその場で LAN ケーブルの作成の技を競い合うという企画で、鉄人の皆様と会場から抽選で参加の方で、出来たケーブルの品質 (iperfでリンク速度測定w) を比べるという内容。
    なんとまあ。
    より対選手権！ by @kuwa_tw さん
    俺も作ったのはもう遠い昔の話なんですけど（3, 4年前くらいが最後）、作ったこと無い人とか、そもそも作れることを知らない人もいるんじゃないかなと会場の雰囲気見て思いました。そもそもあまりそういう機会自体あんまりないのかもしれないですね。
    より対選手権の結果はリタイヤしちゃった人もいつつもほぼ全員疎通と速度測定まで終えてめでたしめでたし。
    目的も見たこと無い人に見てもらうということで大成功だったと思います。
    インフラエンジニアのためのPerl読み書き基礎講座(仮) @fujiwara さん
    公開されている資料からまとめを。分かりやすい説明で非常に参考になりました。
    perldoc でドキュメントを読もう
    CPAN モジュールを選んで使おう
    インストールは cpanm で
    モジュールを使いこなしてレガシーコードに立ち向かおう
    printfデバッグの味方 Data::Dumper
    デバッガで小さなコード片を気軽に試そう
    perldocの使い方は知らないことばかりでした。cpanmはサービスでも使ってますが無しでは考えられないです！ miyagawa++
    LT枠
    以降はLT枠
    超初心者向け正規表現講座：ボクはこうやって覚えた @togakushi さん
    「正規表現はあくまで”表現”で&#8221;意味&#8221;を見いだそうとしない」というお話。
    「何か便利に処理したい -> 正規表現使おう」が多分良いのだろうなと。自分も「正規表現勉強しよう -> 何か便利に使えないかな」ではまった記憶があります。どういう風に使えるのかイメージがわかなくて、やたらめたら難しそうというイメージばかり先行してました。今も難しいな、奥が深いなとは思いますけど。
    「&#8221;意味&#8221;を見いだそう」≒ 解読しようとする時は、別の担当者が作ったスクリプトとかコードを修正するときとかそういう感じですよね。その時に「こういう使い方もあるんだな」と勉強になる機会がかなり多いです。
    できる！Varnish ここを知ると便利なVCL(仮) @xcir さん
    varnishの処理の流れとVCLのデバッグ方法について。
    ビアバッシュの時にも@xcir さんに、指定したファイルの画像のパージ方法なども聞いて良さげだなと思いました。俺ってば前にパッケージ作ったきりで全然検証してないや。
    ちょうど画像をキャッシュしたいシーンがあるのでちゃんといじってみよう。
    Puppet と Chef @n0ts さん
    は @n0ts さんが都合つかず残念ながら聞くことが出来ませんでした。お仕事お疲れさまです。
    puppetを使っているので、違いについて聞きたかったなあ。
    ビアバッシュ
    そのまま会場でビール＆ピザのビアバッシュ。雰囲気がすごく良かったのと、入れ替わり立ち替わりでほろ酔いLTが繰り広げられたのが良かったです。
    意外と業務で自作サーバーを作ってるところ多い
    それ以上に自宅サーバー自作はもっと多い。
    @xcir さんが「RAIDカード10万くらいしましたよー」ってニコニコしてたw
    職業柄、痔には注意ですね！
    @togakushi さんの ssh tips よかった。sslh sslh。
    ~/.ssh/config は俺も前に少しだけ書いたけどここら辺もっと色々知りたい。
    FusionIOへの皆の食いつきぶり
    ApacheTrafficServer
    二次会とその後
    20人くらいがそのまま2次会へ。色々話をして、何か個人的に珍しく？愚痴とか文句っぽいこと言った気がしますが（業務内容とかではなくて）、皆不満を持っているところについては同じなんだなーと勝手にシンパシー感じてました。よりよくしていきたいですね。
    結局終電を逃してしまったので、タクシー使うのも癪だし大森から自宅まで歩いて帰りました。有志（勇士）な @hansode さん @nekoruri さん @mikeda さん @togakushi さん @utsuidai さん @toshiak_netmark さんありがとうございましたw 〆の品壱家美味しかったです！
    そんなわけで
    リーダー @iara さんと、スタッフの皆様、会場のニフティの方々、参加された皆様お疲れさまでした、ありがとうございましたー。</p>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>初心者にも優しいインフラ勉強会 qpstudy の第3回に参加してきました。
    会場は大森のニフティ株式会社のセミナールーム。最近コミュニティーへの貸し出しを始められたそうですね。へえー。
    メイン枠
    今回の主題は「より対選手権！～俺よりよれるヤツに会いに行く～」で要するにその場で LAN ケーブルの作成の技を競い合うという企画で、鉄人の皆様と会場から抽選で参加の方で、出来たケーブルの品質 (iperfでリンク速度測定w) を比べるという内容。
    なんとまあ。
    より対選手権！ by @kuwa_tw さん
    俺も作ったのはもう遠い昔の話なんですけど（3, 4年前くらいが最後）、作ったこと無い人とか、そもそも作れることを知らない人もいるんじゃないかなと会場の雰囲気見て思いました。そもそもあまりそういう機会自体あんまりないのかもしれないですね。
    より対選手権の結果はリタイヤしちゃった人もいつつもほぼ全員疎通と速度測定まで終えてめでたしめでたし。
    目的も見たこと無い人に見てもらうということで大成功だったと思います。
    インフラエンジニアのためのPerl読み書き基礎講座(仮) @fujiwara さん
    公開されている資料からまとめを。分かりやすい説明で非常に参考になりました。
    perldoc でドキュメントを読もう
    CPAN モジュールを選んで使おう
    インストールは cpanm で
    モジュールを使いこなしてレガシーコードに立ち向かおう
    printfデバッグの味方 Data::Dumper
    デバッガで小さなコード片を気軽に試そう
    perldocの使い方は知らないことばかりでした。cpanmはサービスでも使ってますが無しでは考えられないです！ miyagawa++
    LT枠
    以降はLT枠
    超初心者向け正規表現講座：ボクはこうやって覚えた @togakushi さん
    「正規表現はあくまで”表現”で&#8221;意味&#8221;を見いだそうとしない」というお話。
    「何か便利に処理したい -> 正規表現使おう」が多分良いのだろうなと。自分も「正規表現勉強しよう -> 何か便利に使えないかな」ではまった記憶があります。どういう風に使えるのかイメージがわかなくて、やたらめたら難しそうというイメージばかり先行してました。今も難しいな、奥が深いなとは思いますけど。
    「&#8221;意味&#8221;を見いだそう」≒ 解読しようとする時は、別の担当者が作ったスクリプトとかコードを修正するときとかそういう感じですよね。その時に「こういう使い方もあるんだな」と勉強になる機会がかなり多いです。
    できる！Varnish ここを知ると便利なVCL(仮) @xcir さん
    varnishの処理の流れとVCLのデバッグ方法について。
    ビアバッシュの時にも@xcir さんに、指定したファイルの画像のパージ方法なども聞いて良さげだなと思いました。俺ってば前にパッケージ作ったきりで全然検証してないや。
    ちょうど画像をキャッシュしたいシーンがあるのでちゃんといじってみよう。
    Puppet と Chef @n0ts さん
    は @n0ts さんが都合つかず残念ながら聞くことが出来ませんでした。お仕事お疲れさまです。
    puppetを使っているので、違いについて聞きたかったなあ。
    ビアバッシュ
    そのまま会場でビール＆ピザのビアバッシュ。雰囲気がすごく良かったのと、入れ替わり立ち替わりでほろ酔いLTが繰り広げられたのが良かったです。
    意外と業務で自作サーバーを作ってるところ多い
    それ以上に自宅サーバー自作はもっと多い。
    @xcir さんが「RAIDカード10万くらいしましたよー」ってニコニコしてたw
    職業柄、痔には注意ですね！
    @togakushi さんの ssh tips よかった。sslh sslh。
    ~/.ssh/config は俺も前に少しだけ書いたけどここら辺もっと色々知りたい。
    FusionIOへの皆の食いつきぶり
    ApacheTrafficServer
    二次会とその後
    20人くらいがそのまま2次会へ。色々話をして、何か個人的に珍しく？愚痴とか文句っぽいこと言った気がしますが（業務内容とかではなくて）、皆不満を持っているところについては同じなんだなーと勝手にシンパシー感じてました。よりよくしていきたいですね。
    結局終電を逃してしまったので、タクシー使うのも癪だし大森から自宅まで歩いて帰りました。有志（勇士）な @hansode さん @nekoruri さん @mikeda さん @togakushi さん @utsuidai さん @toshiak_netmark さんありがとうございましたw 〆の品壱家美味しかったです！
    そんなわけで
    リーダー @iara さんと、スタッフの皆様、会場のニフティの方々、参加された皆様お疲れさまでした、ありがとうございましたー。</p>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/15748</guid>
    </item>
        <item>
      <title>muninのグラフを画面表示時に動的に生成</title>
      <link>http://tnmt.info/items/view/15676</link>
      <pubDate>Wed, 06 Oct 2010 01:23:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>皆大好き？グラフツールmunin。インストールが簡単、豊富なプラグインは自作も割と手軽に出来ます。
    数10台くらいのモニタリングならさほど気にならないんですが、数100台規模になるとmuninサーバーで目立ってくるのがmunin-graphの負荷。muninサーバーはデフォルトで5分に一度モニタリング対象のmunin-nodeからrrdのデータを取得して同時にグラフを生成するのですが、このグラフ生成が数100台分実行されるとひ弱なサーバーだとかなりの高負荷になります。
    グラフが見たいといっても1時間に何度も見るものでもないし、同時に10ホスト分を見たりもあまりしないので結構効率が悪いです。ぶっちゃけ見たい時にグラフが見れればいいので何か方法無いか探してたところ、munin 1.4からグラフ表示時にfastcgiで動的に生成出来るようになってたのでやってみました。
    OSはCentOS4、CentOS5用のsrc.rpmをリビルドして利用しました。
    munin バージョンは1.4.5-4。
    ※epel リポジトリにmuninもありますけど、バージョンが古いので使えません。（1.2.6-4）
    こちらを参考： Munin graphing by CGI
    /etc/munin/munin.conf設定
    cgiを利用するように設定します。今回はfastcgiを使いたいので以下の2設定</p>

<pre><code>graph_strategy cgi
cgiurl_graph /cgi-bin/munin-fastcgi-graph

/usr/bin/munin-cron修正
munin-cronの内部でmunin-graphを呼び出してるんですが、こいつが負荷になるので修正します。本家手順でもmunin.confのgraph_strategy見て分岐した方がいいよね微妙みたいに書いてあります。下記該当部分をコメントアウト。

#nice /usr/share/munin/munin-graph &amp;#8211;cron $@ 2&amp;gt;&amp;amp;1 |
#   fgrep -v &amp;#8220;*** attempt to put segment in horiz list twice&amp;#8221;

munin関連ファイルの所有権設定
cgiの動作でapacheがファイルを読み書き出来るようにするため設定を変更します。本家手順ではwww-dataですが、CentOSのデフォルトはapacheなのでそこは読み替え、以下のコマンド。

chgrp apache /usr/share/munin/munin-graph
chgrp apache /var/log/munin /var/log/munin/munin-graph.log
chmod g+w /var/log/munin /var/log/munin/munin-graph.log
chgrp -R apache /var/www/html/munin/tnmt.info
chmod -R g+w /var/www/html/munin/tnmt.info

tnmt.infoの部分は既に出来てるグラフのドメインです。
logrotateの設定変更
logrotateが走っても、/var/log/munin/munin-graph.log が apache で読み書きできるように設定。 /etc/logrotate.d/munin を編集

# change this:
/var/log/munin/munin-graph.log {
    daily
    missingok
    rotate 7
    compress
    notifempty
    create 640 munin adm      # !!!
}
# to this:
/var/log/munin/munin-graph.log {
    # [...]
    create 660 munin apache # !!!
}

mod_fcgid
epelからインストール

yum &amp;#8211;enablerepo=epel install mod_fcgid

fastcgi用設定
/etc/httpd/conf.d/munin.conf をこんな風に設定しました。

ScriptAlias /cgi-bin/munin-fastcgi-graph /var/www/html/munin/cgi/munin-fastcgi-graph
&amp;lt;Location /cgi-bin/munin-fastcgi-graph&amp;gt;
SetHandler fcgid-script
&amp;lt;/Location&amp;gt;

以上の設定で、見たい時だけグラフが描画されます。エコですね。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>皆大好き？グラフツールmunin。インストールが簡単、豊富なプラグインは自作も割と手軽に出来ます。
    数10台くらいのモニタリングならさほど気にならないんですが、数100台規模になるとmuninサーバーで目立ってくるのがmunin-graphの負荷。muninサーバーはデフォルトで5分に一度モニタリング対象のmunin-nodeからrrdのデータを取得して同時にグラフを生成するのですが、このグラフ生成が数100台分実行されるとひ弱なサーバーだとかなりの高負荷になります。
    グラフが見たいといっても1時間に何度も見るものでもないし、同時に10ホスト分を見たりもあまりしないので結構効率が悪いです。ぶっちゃけ見たい時にグラフが見れればいいので何か方法無いか探してたところ、munin 1.4からグラフ表示時にfastcgiで動的に生成出来るようになってたのでやってみました。
    OSはCentOS4、CentOS5用のsrc.rpmをリビルドして利用しました。
    munin バージョンは1.4.5-4。
    ※epel リポジトリにmuninもありますけど、バージョンが古いので使えません。（1.2.6-4）
    こちらを参考： Munin graphing by CGI
    /etc/munin/munin.conf設定
    cgiを利用するように設定します。今回はfastcgiを使いたいので以下の2設定</p>

<pre><code>graph_strategy cgi
cgiurl_graph /cgi-bin/munin-fastcgi-graph

/usr/bin/munin-cron修正
munin-cronの内部でmunin-graphを呼び出してるんですが、こいつが負荷になるので修正します。本家手順でもmunin.confのgraph_strategy見て分岐した方がいいよね微妙みたいに書いてあります。下記該当部分をコメントアウト。

#nice /usr/share/munin/munin-graph &amp;#8211;cron $@ 2&amp;gt;&amp;amp;1 |
#   fgrep -v &amp;#8220;*** attempt to put segment in horiz list twice&amp;#8221;

munin関連ファイルの所有権設定
cgiの動作でapacheがファイルを読み書き出来るようにするため設定を変更します。本家手順ではwww-dataですが、CentOSのデフォルトはapacheなのでそこは読み替え、以下のコマンド。

chgrp apache /usr/share/munin/munin-graph
chgrp apache /var/log/munin /var/log/munin/munin-graph.log
chmod g+w /var/log/munin /var/log/munin/munin-graph.log
chgrp -R apache /var/www/html/munin/tnmt.info
chmod -R g+w /var/www/html/munin/tnmt.info

tnmt.infoの部分は既に出来てるグラフのドメインです。
logrotateの設定変更
logrotateが走っても、/var/log/munin/munin-graph.log が apache で読み書きできるように設定。 /etc/logrotate.d/munin を編集

# change this:
/var/log/munin/munin-graph.log {
    daily
    missingok
    rotate 7
    compress
    notifempty
    create 640 munin adm      # !!!
}
# to this:
/var/log/munin/munin-graph.log {
    # [...]
    create 660 munin apache # !!!
}

mod_fcgid
epelからインストール

yum &amp;#8211;enablerepo=epel install mod_fcgid

fastcgi用設定
/etc/httpd/conf.d/munin.conf をこんな風に設定しました。

ScriptAlias /cgi-bin/munin-fastcgi-graph /var/www/html/munin/cgi/munin-fastcgi-graph
&amp;lt;Location /cgi-bin/munin-fastcgi-graph&amp;gt;
SetHandler fcgid-script
&amp;lt;/Location&amp;gt;

以上の設定で、見たい時だけグラフが描画されます。エコですね。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/15676</guid>
    </item>
        <item>
      <title>hbstudy #13 でLTしてきました。</title>
      <link>http://tnmt.info/items/view/15677</link>
      <pubDate>Wed, 28 Jul 2010 00:16:00 +0900</pubDate>
      <description><![CDATA[<div class="content"><p>7/23にあった hbstudy #13  でLTしてきました。
    外部の勉強会で話す機会は今回初めてでしたが、案の定プロジェクタの設定にとまどったりなんだりで見事に焦りました。
    物理マシンと仮想マシンのOSインストール自動化について概要の紹介でしたが、実際のインストール手順や情報もWebを探すと結構出てきますので、敷居も低いかと思います。
    OSインストール自動化あれこれ(Cobbler, Koan)
    View more presentations from t_n_m_t.</p>

<pre><code>CobblerもKoanの導入手順も最近の情報にアップデート出来るよう、近々エントリにまとめとこう。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></description>
      <content:encoded><![CDATA[<div class="content"><p>7/23にあった hbstudy #13  でLTしてきました。
    外部の勉強会で話す機会は今回初めてでしたが、案の定プロジェクタの設定にとまどったりなんだりで見事に焦りました。
    物理マシンと仮想マシンのOSインストール自動化について概要の紹介でしたが、実際のインストール手順や情報もWebを探すと結構出てきますので、敷居も低いかと思います。
    OSインストール自動化あれこれ(Cobbler, Koan)
    View more presentations from t_n_m_t.</p>

<pre><code>CobblerもKoanの導入手順も最近の情報にアップデート出来るよう、近々エントリにまとめとこう。
</code></pre>

<p>No related posts.
関連記事はYARPP関連記事プラグインによって表示されています。</p>
                                </div>]]></content:encoded>
      <dc:creator>tnmt</dc:creator>
      <dc:rights>tnmt</dc:rights>
      <guid>http://tnmt.info/items/view/15677</guid>
    </item>
      </channel>
</rss>


