割と楽してCentOS 6.5のgitをバージョンアップするChefのrecipe

環境

item version
OS CentOS 6.5
Chef 11.8.2
VPS さくらのVPS1GB

はじめに

最近休眠状態にしていたさくらのVPSの環境を久々に構築し直して遊ぼうと思ったんですが、gitのバージョンが古くて困りました。
そこで、chefのrecipeで手抜きしてgitのバージョンをアップデートする方法を紹介します。

問題

私の.gitconfigは環境ごとに設定を変えやすいように次のようになっており、[include]が重要な位置を占めています。

[include]
    path = ~/.gitconfig.local
[alias]
    co   = checkout
    st   = status
    br   = branch
    lol  = log --graph --decorate --pretty=oneline --abbrev-commit
    lola = log --graph --decorate --pretty=oneline --abbrev-commit --all
    l = log --pretty=format:\"%ci %C(yellow)%H%Creset [%cn] %Cgreen%s %C(cyan)%d%Creset\" -10
    lop = log -p -1
    cp = cherry-pick
[color]
    ui = auto
[user]
    name  = foo
    email = foo@example.com
[core]
    excludesfile = /Users/foo/.gitignore_global

しかし、この[include]はgitの1.7.10からサポートされたということで、デフォルトでは1.7.1がインストールされているCentOS 6.5では使えないという問題に当たりました。

解決

さくらのVPSを再開するに当たって、環境を作ったり壊したりをやりやすいVPSだからこそ尚更セットアップを自動化したいという思いに駆られ、今回から環境構築をChef + knife soloで行っています。
今回は次のようなレシピを用意しました。

site :opscode

cookbook 'yum-repoforge'
include_recipe 'yum-repoforge'

yum_package "git" do
  action :upgrade
  flush_cache [ :before ]
  options '--enablerepo=rpmforge-extras'
end
{
  "run_list": [
    "recipe[site_git]"
  ],
  "yum": {
      "rpmforge": {"enabled": false},
      "rpmforge-extras": {"enabled": false},
      "rpmforge-testing": {"enabled": false}
  }
}

方針

  • repoforgeは普段はenabledにはしないで、gitのインストールの時だけ使う
  • gitのバージョンはrepoforgeに上がっている最新の物を使う

おわりに

rpmforgeはいつの間にかrepoforgeという名前に変わっていたんですね。
とにかく、これで心置きなくgitの[include]を使えるようになり、幸せになりました。

尚、rpmforgeは非公式リポジトリなので、使用に注意して、できれば本番環境では使わない方がいいんじゃないかなあと思いました。

参考文献

https://tickets.opscode.com/browse/CHEF-2427

hubotの導入からスクリプトの書き方までスライドにまとめました

本ブログの以前のエントリでhubotについて調べたことを一枚のスライドにまとめました。

関連記事

Read more »

hubotスクリプトの書き方とサンプル集

hubotスクリプトの書き方と、サンプルを掲載します

本ブログ内の関連記事

Read more »

Node.jsで文字コードを推測しつつスクレイピングしてみる

サーバ さくらのVPS 1G
OS CentOS release 6.3 (Final) x86_64
Node.js v0.9.0
node-iconv(文字コード変換) 1.2.3
node-icu-charset-detector(文字コード推測) v0.0.3
cheerio(jQueryライクなDOM解析) 0.9.0
サンプルコード 0.0.1

Webページのタイトル取得例

Node.jsでスクレイピングする方法は色々と公開されていますが、文字コードを推測しつつページを取得するような処理の方法がわからなかったため、調べながら書いてみました。具体的には、URLが発言されるとタイトルを返すIRC-BOTの機能をイメージしています。

Read more »

hubotでIRCのBOTを簡単に動かす(hubot2.3 + hubot-irc0.1.0)

サーバ さくらのVPS 1G
OS CentOS release 6.3 (Final) x86_64
Node.js v0.9.0
hubot 2.3
hubot-irc v0.1.0

BOT動作のイメージ図

でhubotの導入を試みましたが、現時点での最新版(hubot2.3+hubot-irc0.1.0)でより簡単に動かす方法がわかったので記します。

Read more »

hubot2.2でIRCのBOTを動かしてみる(Node.jsのインストールから)

hubot-ircの動作例
サーバ さくらのVPS 1G
OS CentOS release 6.3 (Final) x86_64
Redis v2.4.15
Node.js v0.9.0
CoffeeScript 1.3.3
hubot 2.2
hubot-irc v0.0.8

github製のBOTフレームワーク、hubotを参考サイトを読みながら導入した記録です。ちょうど真っさらな環境があったので、Node.jsの導入から試してみました。

hubot-ircの動作例

まとめスライドも作ったので良ければどうぞ→http://blog.fumiz.me/2012/08/05/hubot-matome/

Read more »

XREAからCoreServerに移転するついでにadiaryからWordPressに移行しました

移転元blogシステム adiary 2.21
移転先blogシステム WordPress 3.4.1
移転元サーバ XREA Plus
移転先サーバ CORESERVER CORE-MINI

参考にしたサイト: adiaryからWordPressへ移行方法

はじめに

今年のXREA Plus契約期限切れにあわせて、以前から目論んでいたCoreServerへの移転を行いました。見比べるとわかるのですが、年額100円の差でスペックがだいぶ違うんですよね。更に、移転にあわせて今後サーバを移転しても面倒が無いようにドメインも独自ドメインに変更しました。

更に、以前から愛用していたブログシステムのadiaryからWordPressへも移行しました。adiaryは、コンセプトも機能も本当に好きだったのですが、ソーシャル連携やソースコードのハイライト、デザインの変更など楽をしたくなってしまいまして……。XREA Plusは契約が切れても無料版に移行するだけなのでしばらくは並行運用しつつ、XREA側からはこちらにリダイレクトしてくる仕組みを入れておく予定です。

以下、今回移転するにあたって色々と試したことを書き残しておきます。

Read more »

node.js + express + mongodbでpastebinのクローンを作ってみた

node.js v0.6.8
npm 1.1.0-2
express 2.5.5
ejs 0.6.1
mongoose 2.5.1
mongodb 2.0.2

pastebin.comのような多機能ではなく、ソースコードをペーストするとURLを発行するだけの小さなアプリケーションです。
非常に簡素な作りなので、node.js + express + mongodbのサンプルになるかなと。

githubで公開しました
https://github.com/fumiz/nodecan

bin_before.pngbin_after.png

Mac OS Xにnode.js + expressの環境を作る

Mac OS X Lion 10.7.2
Homebrew 0.8.1
nvm November 18, 2011
node.js v0.6.8
npm 1.1.0-2
express 2.5.5

 node.jsのチュートリアル記事は既に大量にありますが、node.js自体の開発スピードが早いこともあって情報がすぐに古くなっているようなので、今のところ一番簡単(と思われる)セットアップ方法を記しておきます。これを書いている間にv0.6.8からv0.6.9にバージョンアップしていたぐらいに開発速度が早い……。

 今回のエントリではMac OS Xで試していますが、最近のLinux環境ならだいたい動くのではないかなと思います。色んな環境で試したわけではないですが。

Read more »

VimScriptの練習に編集中ファイルのSVNブランチ名を取得してみた

Vim 7.3
SVN 1.6.16

 最近、EmacsとVimの両方が使えるようになりたいと思って積極的にVimを使っているんですが、たまたまSVNの管理下にあるコードをいじることがあって、編集中にブランチ名を表示したくなりました。そこで、VimScriptの勉強がてら編集中ファイルのブランチ名を取得するプラグインを作ってみました。

目次

Read more »