Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

21,645 views

Published on

Linuxサーバの設定ファイルをSubversionで管理するツールの紹介です。(shinagawa.redmine第5回勉強会LT) PDF: https://docs.google.com/file/d/0Bx6dl5vPWQszaHdpbHF2OU1ub2s

Published in: Technology
  • Be the first to comment

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

  1. 1. Yggdrasil(ゆぐどらしる) ~ サーバ運用の No Ticket, No Work ~ shinagawa.redmine 第5回勉強会LT 2013.06.29 @tkusukawa
  2. 2. 自己紹介: @tkusukawa くすかわ と言います サラリーマンです WorkTimeという 工数入力のRedmineプラグインを 公開しています WikiListsという チケットの検索結果一覧を Wikiやチケットに表示するマクロの プラグインを公開しています
  3. 3. サーバ運用に使えるツール をご紹介します。 Redmineによる運用ということで、
  4. 4. Linuxサーバの 設定変更 どうしてます? とつぜんですが、
  5. 5. ちゃんと 後で変更点が解るように してますか?
  6. 6. 日付つきのファイル名に コピーします?
  7. 7. 日付つきのファイルで いっぱいになりませんか?
  8. 8. ファイルコピーしないで やっちまう奴いませんか?
  9. 9. そんなあなたに朗報です!
  10. 10. Yggdrasil(ゆぐどらしる)で 設定ファイルを Subversion管理できます。
  11. 11. インストール方法 ① Subversionを入れます ② Ruby(gem)を入れます ② # gem install yggdrasil → https://rubygems.org/gems/yggdrasil gem ygg で検索して下さい。 たぶん上位3つぐらいには出てきます。
  12. 12. 初期化:リポジトリ接続 (スタンドアローン編) $ ygg init --repo private ↑ リポジトリの準備が要らない。お手軽。 SVNリポジトリをローカルに自動作成します ~/.yggdrasil/private_repo
  13. 13. 初期化:リポジトリ接続 (集中管理編) 【SVNリポジトリの準備】 → サーバーを起動 【各OSノードでの初期化】 $ ygg init --repo svn://~/svn/hostA/ svn://~/svn/hostA/etc/~ /var/~ /~ /hostB/~ /hostC/~ /hostD/~ SVNリポジトリ 全サーバの 設定履歴
  14. 14. このリポジトリは 全サーバを体現する 巨大な木になる。 → これはまさに世界樹! 英語にすると Yggdrasil(ゆぐどらしる)
  15. 15. 使い方① 管理対象へのファイル追加 $ ygg add [設定ファイル...] svn addと同じイメージ 最後に後述のコミットが必要
  16. 16. 使い方② 変更されたファイルの確認 $ ygg check → 変更項目の一覧を表示 → 番号[enter]でdiffを表示 → Y[enter] で全部のdiffを表示 → n[enter]で終了
  17. 17. 使い方③ 変更のコミット $ ygg commit –m 'メッセージ' → コミット項目の一覧が表示される → 番号[enter]でdiffを表示 → Y[enter] でコミット実施 特定のファイルやフォルダを指定して コミットすることも出来ます
  18. 18. 使い方 の 使い方 $ ygg help → サブコマンド一覧を表示 add check cleanup commit diff help init list log update version $ ygg help [サブコマンド] → サブコマンドの説明を表示
  19. 19. yggdrasilの運用
  20. 20. 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
  21. 21. Yggdrasilの運用② コミット忘れ防止 ついコミットするのを忘れちゃう → 深夜に cron で ygg check して メール周知することをお勧めします → コミット漏れが無い状態を キープすることが重要
  22. 22. Yggdrasilの運用③ Redmineと接続 リポジトリをRedmineに設定して コミットMsgに必ずチケット番号を書くルール No Ticket, No Commit! の運用がお勧め ダマで設定を変えると翌朝メールが飛ぶので、 その日の内に必ずコミットしなければならない。 つまりチケット起票が無いと設定変更できない! → No Ticket, No Work の習慣が醸成される
  23. 23. Yggdrasilの効能 自分が何をやったのかを確実に把握できる → 修正もれ/一時的な修正の戻し忘れに気付ける 過去に遡ってその日どのサーバに変更があったか が Subversionのログで手に取るように解る セッティングルールの違反を 全体ツリーのgrepで探せる
  24. 24. 開発者募集中 https://rubygems.org/gems/yggdrasil

×