狠狠撸

狠狠撸Share a Scribd company logo
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の運用① どの設定を管理するか
管理したいファイルはいつも決まっていて沢山ある。
ので、下記をコピペ入力して一気に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

More Related Content

Yggdrasil(ゆぐどらしる) ~ サーバ運用のNo Ticket, No Work ~