まぁ、別にJenkinsでも似たようなツールであれば何でも良いんですが、
RundeckのUIがイケてる感じがしたので選んでみました。

Rundeck の機能

Rundeckは主に以下のような機能を備えています。色々出来る万能ツールです。
ですので、色々な用途で使えるかと思います。

  • コマンドの分散実行
  • 拡張可能な実行システム(デフォルトでは SSH)
  • マルチステップワークフロー
  • ジョブの定義と実行(即時 or スケジュール)
  • コマンドとジョブを実行するための GUI
  • ロールベースの ACL(LDAP/ActiveDirectory 連携可能)
  • 履歴とログ監査
  • 外部のホスト管理ツールとの統合(open integration)
  • CUI インタフェース
  • Web API

考えてみた用途

障害時の調査・復旧手順をRundeckに入れる。

何が良いか。

1. 今までの複雑な手順書ベースの作業がボタンを押すだけの単純作業となり、その結果、

  • 素早い調査・復旧となり品質向上します。
  • 誰でも同じ品質で実行できます。(オペミス減ります)
  • 複雑な手順書を見ながら実行する。と言ったネガティブ感が無くなります。
  • 工数も削減出来る(か、どうかはRundeck化工数次第です。*後述)

2. 実行結果(標準出力)も残せるので、証跡が残せます。SOC2的にも良い?

  • 誰がいつどんな作業をして、どんな結果だったか。とか残ります。
  • お客様にも作業記録と結果を時系列で説明が出来ます。
  • AD連携可能なので個人識別可能です。

3. API連携可能っぽい?(確認中)

  • 監視ツールとかAPI経由で実行可?
  • SlackとかBacklogに自動投稿可?
  • それができたら検知 => 対応 => 報告も自動化可能?(やりすぎ?)

特に良いこと

多種多様の環境下で力を発揮します。
特に数百のお客様やプロジェクト、数千のインスタンスを抱えている環境だと、個毎に環境や前提が異なります。
統一しようとしても、難しい。そんな場合に、Rundeckはそれらの環境を抽象化してくれます。

Rundeck無いときー

20150905152846

Rundeck有るときー

20150905152949

これは作り込みさえしておけば、どんなに環境が増えてもやることは同じ(ボタンを押すだけ)で「何が良いか」の恩恵が受けられます。

注意点

Rundeckに色々な手順を突っ込むのは良いのですが、あまり数を突っ込んだり、複雑な手順を入れるとカオス状態になります。
それでは手順がクローズされただけで、誰もメンテ出来ない(いや、断固としてしたくない)状態になります。
複雑な手順=そもそものシステム設計が複雑。ですので、設計段階の問題になりそれがカオスを生み出します。
複雑に作るよりシンプルに作る方が難しいですが、ステークホルダのWin-Winを考え、シンプルな設計を心がけましょう。

まとめ

うまく作ればコスト削減にも繋がり、ステークホルダとWin-WInになるかもしれないですね!
と、言う事で、Rundeckオススメです!

Enjoy! Rundeck Life!!

元記事はこちら

作業を抽象化するRundeck 〜もはや幸せしか生まない〜【cloudpack 大阪 BLOG】