ラベル CentOS の投稿を表示しています。 すべての投稿を表示
ラベル CentOS の投稿を表示しています。 すべての投稿を表示

2012年1月3日火曜日

Amazon Linuxで使われてるcloud-initをCentOS6で使ってみる

新年あけましておめでとうございます。
年明け最初の更新をこんなに早くするとは自分でも驚きですが、今年もブログをゆるく継続していきたいと思います。

さて、AWSを使用している方はAmazon Linuxに興味を持った事があると思います。
Redhat系のディストリビューションを使用していた方は操作感も近くてスイッチしやすいのではないでしょうか?
私も何度かAmazon Linuxを使用しましたが、その中でcloud-initってとても便利だなと思いました。
cloud-initはもともとUbuntuに搭載されたクラウド環境でのセットアップツールみたいですが、Amazon Linuxではこの機能が標準で移植されております。
個人的にはChefとかよりもチャラく使えるようなイメージでしょうか。。。
AWSで提供されているUbuntuやAmazon Linuxはcloud-initを使って、指定したSSH公開鍵の設置や、セキュリティアップデートなどが行われているようです。
自前でCentOSなどのAMIを作成した経験がある方はSSHの公開鍵を設置するスクリプトを使った事があると思いますが、Amazon Linuxではcloud-init経由でec2-userに公開鍵を設置しているのですね。

『なるほどー、これはCentOSでも使ってみたいですよねー』というネタです。

■AmazonLinuxで使用されているcloud-initのsrpmを取得する

Amazon Linuxで以下のようにコマンドを実行すると/usr/src/srpm/debug/以下にsrpmが保存されるので、これをCentOSでビルドします。
■CentOSでcloud-initのrpmを作成する

ビルドに必要なライブラリをインストールします。
epelをyumのリポジトリに追加している方はPyYAMLとlibyamlもyumでインストールが出来ると思います。
次に事前に転送しておいたcloud-initのsrpmをビルドします。
一部specファイルを以下のように編集しています。
■インストール

作成されたcloud-initのrpmをインストールします。
specファイルを見ると分かりますが、インストールするとec2-userやsudoの設定が追加されます。
■動作確認

インストールしたインスタンスからAMIを作成し、以下のようなUserDataを指定して起動してみました。
無事にec2-userへの公開鍵登録と 指定したパッケージがインストールされていましたよ:)
こんな事するならAmazon Linux使った方が(ryという突っ込みはご勘弁下さい:D

2011年3月31日木曜日

Rails3環境用にSQLite3のRPMを作成する

いやー、最近のこのブログの技術ネタといったら、
  • このRPM作った
  • あのRPM作った
  • こんなRPM作った
と、ただのRPM作成ログの置き場となってますが、今回もRPMを作成したログです(汗)
すんません…orz
作成したきっかけは達人出版会さんから出版されている、”はじめる!Rails3”です。
こちらはRails3を始めるには良さそうな電子書籍で、Rails3の使い方を分かりやすく説明しています。
Linuxへの導入はUbuntu中心で書かれていますが、CentOSでも問題ないだろうと思ってました。

…しかし、SQLite3のインストール手順においてこんな記載がありました。
『Linux(CentOS 5)の場合は以下のコマンドを 実行します。』
残念な事に、この手順では”gem install sqlite3”が実行出来なかった訳です。
理由はCentOS5が使用するsqlite3のバージョンに古い事であり、『じゃあRPM作るか』ってなりますよね〜。

※今回はビルド専用ユーザーを作成していますが、SQLiteはrootでrpmbuildをするとエラーが出てしまいます

  • RPMBuildに必要なパッケージをインストール
  • ビルド用ユーザoko_changを追加
  • SRPMをダウンロードしてインストール
  • RPMビルドの準備
  • ビルド実行

以上で無事に”gem install sqlite3”が実行出来ました。
ちなみに素直にUbuntuを使えば、当然この手順は必要ありません。

2011年2月6日日曜日

Puppet2.6.4のインストール、起動、動作確認

以前の記事でPuppet2.6.4のRPMを作成しました。
せっかくRPMを作ったので、簡単な動作確認のメモを残しておこうと思います。
テスト環境はマスター(サーバー)、エージェント(クライアント)共にCentOS5.5となります。
また、マスターにはp-master.okochang.comという名前で接続が出来るようになっています。

英語が苦手が私は2.6.4の日本語情報があまりなくて設定にちょっと苦労してしまいました(汗)
なお、設定されているPuppetの設定は最小限のものですので注意して下さい。

まずはマスター側の設定と起動です。

  • インストール
  • Puppetマスターの設定
  • 簡単なマニフェストの作成
  • Puppetマスターを起動

マニフェストには/etc/hostsの所有者:root、グループ:root、権限は644であるべきとしています。
続いてはエージェントの設定、起動、動作確認です。

  • インストール
  • Puppetエージェントの設定
  • Puppetエージェントの起動と動作確認

/etc/hostsファイルの権限を666に変更後、エージェントを起動したら権限が644に戻りました。
エージェント側では動作確認が出来ましたので、最後にマスター側の動作確認をします。

  • クライアントの署名リクエストの確認

エージェント側(ip-10-160-118-49)が正常に表示されています。
以上でインストール、起動、動作確認が終わりました。
ちなみに2.6.4では[puppetmasterd]セクションは[master]へ、[puppetd]セクションは[agent]に変更されています。
私はそこで一人深夜に悩んでおりましたorz

参考リンク

2011年1月19日水曜日

CentOS5.5でpuppet2.6.4のrpmを作成する

Puppetを使用する場合、使用するバージョンやインストール方法はどんな方法が良いかなと悩んだりしています。
RubyGemsを使ったインストール方法を覚えておけば、どんなディストリビューションでも使えて便利そうです。
ただ、個人的に一番使い慣れたディストリビューションはCentOSなので、rpmで管理したいという気持ちもあります。
そんな悩みを持ちつつ、とりあえずrpmを作成したので手順を残しておこうと思います。

参考にしたページはこちらで、手順はほんとにそのままで申し訳ないくらいです。

  • rpmbuildに必要なパッケージをインストールします
  • その他puppetのインストールに必要なパッケージをインストールします
  • /usr/src/redhat/SOURCESディレクトリに移動してfacterとpuppetのソースファイルをダウンロード
  • ダウンロードしたファイルを展開します
  • 必要なパッチがあるか確認します
  • パッチファイルを探してSOURCESディレクトリに移動させます
  • バージョン情報を確認します
  • バージョン情報をダウンロードしたものと合わせて%changelogを編集します
  • 編集したspecファイルをSPECSディレクトリにコピーします
  • 不要なディレクトリを削除します
  • SPECSディレクトリに移動してfacterをbuildします
  • puppetのbuildに必要なのでbuildしたfacterをインストールします
  • SPECSディレクトリに移動してpuppetをインストールします
  • puppetをインストールします

以上でrpm作成は終わりです。
FacterもPuppetもすぐにbuildが終わる事にびっくり!
んー、でもやっぱり色々なディストリビューションで使える事を考えるとRubyGemsが便利そうだなー。

2010年12月15日水曜日

CentOS5.5でgit1.7.3のrpmを作成する

そうだ!ブログやってたんだ!
相変わらずの気まぐれ更新になってしまった。
勉強会とかに参加した感想をもっとキチンと書きたいなー。
ブログがある事を思い出す為にもCentOS5.5でgit1.7.3のrpmを作る手順をまとめとく。

こちらのブログが非常に手順としては参考になった。
というか手順はまんまです。

必要になりそうなパッケージをとりあえず一気にインストール

# yum -y groupinstall "Development Tools"
# yum -y groupinstall "Development Libraries"

その他以下のパッケージは必須なのでインストール

# yum -y install zlib-devel openssl-devel curl-devel expat-devel gettext xmlto gettext-devel

EPELからダウンロードしてインストールするパッケージもあります

# cd /usr/local/src/
# wget http://ftp.iij.ad.jp/pub/linux/fedora/epel/5Server/i386/asciidoc-8.1.0-1.el5.noarch.rpm
# wget ftp://ftp.iij.ad.jp/pub/linux/fedora/epel/5Server/i386/perl-Error-0.17010-1.el5.noarch.rpm
# rpm -ivh ./asciidoc-8.1.0-1.el5.noarch.rpm
# rpm -ivh ./perl-Error-0.17010-1.el5.noarch.rpm

パッケージの作成ディレクトリにソースをダウンロード

# cd /usr/src/redhat/SOURCES/
# wget http://www.kernel.org/pub/software/scm/git/git-1.7.3.tar.gz

specファイルを取り出してSPECSディレクトリに移動

# tar zxvf ./git-1.7.3.tar.gz git-1.7.3/git.spec
git-1.7.3/git.spec
# mv ./git-1.7.3/git.spec /usr/src/redhat/SPECS/

不要なディレクトリは削除します

# rm -rf ./git-1.7.3

SPECSディレクトリに移動してビルド開始

# cd /usr/src/redhat/SPECS/
# rpmbuild -bb --clean git.spec

こんな感じで作成されます

# tree /usr/src/redhat/RPMS/
/usr/src/redhat/RPMS/
|-- athlon
|-- geode
|-- i386
|   |-- git-1.7.3-1.i386.rpm
|   |-- git-all-1.7.3-1.i386.rpm
|   |-- git-arch-1.7.3-1.i386.rpm
|   |-- git-cvs-1.7.3-1.i386.rpm
|   |-- git-debuginfo-1.7.3-1.i386.rpm
|   |-- git-email-1.7.3-1.i386.rpm
|   |-- git-gui-1.7.3-1.i386.rpm
|   |-- git-svn-1.7.3-1.i386.rpm
|   |-- gitk-1.7.3-1.i386.rpm
|   |-- gitweb-1.7.3-1.i386.rpm
|   `-- perl-Git-1.7.3-1.i386.rpm
|-- i486
|-- i586
|-- i686
`-- noarch
7 directories, 11 files

あとはrpmコマンドでインストールすればOKです


すぐに消すテスト環境なのでrootユーザーで作業をしています。
各自の環境でビルドする時は一般ユーザーでビルドして下さい。