YGGDRASIL WORLD GENERATION A modular approach to procedural world generation.
Yggdrasil(ゆぐどらしる) ~ サーバ運用のNo Ticket, No Work ~
-
Upload
tomohisa-kusukawa -
Category
Technology
-
view
12.013 -
download
1
description
Transcript of Yggdrasil(ゆぐどらしる) ~ サーバ運用のNo Ticket, No Work ~
Yggdrasil(ゆぐどらしる) ~ サーバ運用の No Ticket, No Work ~ shinagawa.redmine 第5回勉強会LT
2013.06.29 @tkusukawa
自己紹介: @tkusukawa
くすかわ と言います
サラリーマンです
WorkTimeという 工数入力のRedmineプラグインを 公開しています
WikiListsという チケットの検索結果一覧を Wikiやチケットに表示するマクロの プラグインを公開しています
サーバ運用に使えるツール をご紹介します。
Redmineによる運用ということで、
Linuxサーバの 設定変更 どうしてます?
とつぜんですが、
ちゃんと 後で変更点が解るように してますか?
日付つきのファイル名に コピーします?
日付つきのファイルで いっぱいになりませんか?
ファイルコピーしないで やっちまう奴いませんか?
そんなあなたに朗報です!
Yggdrasil(ゆぐどらしる)で
設定ファイルを Subversion管理できます。
インストール方法
① Subversionを入れます
② Ruby(gem)を入れます
② # gem install yggdrasil
→ https://rubygems.org/gems/yggdrasil
gem ygg
で検索して下さい。
たぶん上位3つぐらいには出てきます。
初期化:リポジトリ接続 (スタンドアローン編) $ ygg init --repo private
↑ リポジトリの準備が要らない。お手軽。
SVNリポジトリをローカルに自動作成します
~/.yggdrasil/private_repo
初期化:リポジトリ接続 (集中管理編)
【SVNリポジトリの準備】
→ サーバーを起動
【各OSノードでの初期化】
$ ygg init --repo svn://~/svn/hostA/
svn://~/svn/hostA/etc/~ /var/~ /~ /hostB/~ /hostC/~ /hostD/~
SVNリポジトリ
全サーバの 設定履歴
このリポジトリは 全サーバを体現する 巨大な木になる。 → これはまさに世界樹! 英語にすると
Yggdrasil(ゆぐどらしる)
使い方① 管理対象へのファイル追加
$ ygg add [設定ファイル...]
svn addと同じイメージ 最後に後述のコミットが必要
使い方② 変更されたファイルの確認
$ ygg check
→ 変更項目の一覧を表示
→ 番号[enter]でdiffを表示
→ Y[enter] で全部のdiffを表示
→ n[enter]で終了
使い方③ 変更のコミット
$ ygg commit –m 'メッセージ'
→ コミット項目の一覧が表示される
→ 番号[enter]でdiffを表示
→ Y[enter] でコミット実施
特定のファイルやフォルダを指定して コミットすることも出来ます
使い方 の 使い方
$ ygg help
→ サブコマンド一覧を表示
add check cleanup commit diff help
init list log update version
$ ygg help [サブコマンド]
→ サブコマンドの説明を表示
yggdrasilの運用
Yggdrasilの運用① どの設定を管理するか
管理したいファイルはいつも決まっていて沢山ある。
ので、下記をコピペ入力して一気にAddがお勧め
# cat <<EOF | while read f; do ls $f >/dev/null 2>&1 && ygg add $f ; done
/etc/aliases
/etc/cron.deny
/etc/crontab
/etc/fstab
/var/spool/cron/*
...
EOF
cat <<EOF | while read f; do ls $f >/dev/null 2>&1 && ygg add $f ; done /etc/aliases /etc/auto.automnt /etc/auto.master /etc/auto.misc /etc/auto.net /etc/cron.deny /etc/crontab /etc/fstab /etc/group /etc/gshadow /etc/hosts /etc/hosts.allow /etc/hosts.deny /etc/inittab /etc/login.defs /etc/logrotate.conf /etc/modprobe.conf /etc/ntp.conf /etc/nscd.conf /etc/nsswitch.conf /etc/passwd /etc/resolv.conf /etc/shadow /etc/sudoers /etc/syslog.conf /etc/wgetrc /etc/xinetd.conf /etc/yum.conf /etc/chroot_list /etc/rc.local
/etc/pam.d/* /etc/sysconfig/i18n /etc/sysconfig/network /etc/sysconfig/static-routes /etc/sysconfig/iptables* /etc/sysconfig/network-scripts/ifcfg-eth? /etc/sysconfig/network-scripts/ifcfg-bond? /etc/sysconfig/network-scripts/route-eth? /etc/sysconfig/network-scripts/route-bond? /etc/sysconfig/rhn/systemid /etc/postfix/main.cf /etc/postfix/master.cf /etc/rc.d/rc /etc/rc.d/rc.local /etc/rc.d/rc.sysinit /etc/rc.d/init.d/* /etc/ssh/sshd_config /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf /etc/vsftpd/chroot_list /var/spool/cron/* /etc/logrotate.d/* /etc/php.ini /etc/php.d/*.ini /etc/snmp/snmpd.conf EOF
Yggdrasilの運用② コミット忘れ防止
ついコミットするのを忘れちゃう
→ 深夜に cron で ygg check して メール周知することをお勧めします
→ コミット漏れが無い状態を キープすることが重要
Yggdrasilの運用③ Redmineと接続
リポジトリをRedmineに設定して コミットMsgに必ずチケット番号を書くルール No Ticket, No Commit! の運用がお勧め
ダマで設定を変えると翌朝メールが飛ぶので、 その日の内に必ずコミットしなければならない。
つまりチケット起票が無いと設定変更できない! → No Ticket, No Work の習慣が醸成される
Yggdrasilの効能
自分が何をやったのかを確実に把握できる → 修正もれ/一時的な修正の戻し忘れに気付ける
過去に遡ってその日どのサーバに変更があったか が Subversionのログで手に取るように解る
セッティングルールの違反を 全体ツリーのgrepで探せる
開発者募集中 https://rubygems.org/gems/yggdrasil