Tomohisa Kusukawa edited this page Jan 26, 2014 · 8 revisions

YggdrasilはLinuxサーバの設定ファイルをSubversionで管理する試みです。

svnコマンドをラップするrubyスクリプトを提供しており、ruby(gem)がインストールされていれば
# gem install yggdrasil
でインストールすることが出来ます。→ https://rubygems.org/gems/yggdrasil

yggdrasilはホームディレクトリに.yggdrasilディレクトリを作成し、 yggdrasil設定ファイルとSubversion用のミラーツリーを構成します。
通常の操作はyggコマンドで行います。 使い始める前にSVNリポジトリ等の初期設定を行う必要があります。
yggdrasilには大きく分けて下記の3つのレベルの管理方法が用意されています。

  1. プライベートリポジトリ管理
    最も簡易な管理方法であり、サーバ内部にリポジトリを構成し、外部から参照することは想定しません。
    # ygg init --repo private
    で初期設定すると ~/.yggdrasil/以下にリポジトリを作成します。

  2. 外部リポジトリ管理
    複数のサーバでSVNリポジトリを共用する構成です。
    # ygg init --repo http://svn-host/client-url
    の形で初期設定します。

  3. yggdrasilサーバ管理
    yggdrasilのチェック結果を集約するサーバを設ける構成です。
    サーバ:
    $ yggserve init --port 4000 --repo http://svn-host/directory/{host}
    $ yggserve daemon
    のようにサーバを起動します。ここでリポジトリURLに指定した{host}の部分はクライアントのホスト名に読み替えられます。
    クライアント:
    # ygg init --server ygg-host:4000
    のようにクライアントを設定します。
    この構成ではcronやJenkinsの定期実行によって設定ファイルのコミット漏れをチェックすることが出来ます。

References:

Yggdrasilサーバ構築手順: http://kusu.way-nifty.com/blog/2013/09/alminium-yggdra.html
LTのスライド (shinagawa.redmine 2013-06-29): http://www.slideshare.net/tkusukawa/yggdrasil
Akikoさんのブログ: http://daily-postit.blogspot.jp/2013/08/yggdrasil.html
Akikoさんによるシステム構成図: https://cacoo.com/diagrams/kCM0DOM01zb6quau
System Diagram(by Mr.Matsutani): https://cacoo.com/diagrams/85rQ6KXsr5cZKrsH
JenkinsによるLinuxサーバの設定変更管理(yggdrasil)の徹底: http://qiita.com/tkusukawa/items/ff6caedc068941235105

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.