48
46

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

深夜の本番作業を安全に 半自動化エンジン「migrationTTL」

Last updated at Posted at 2015-12-08

10年近く前に作ったやつなのですが、いまだ当時と同じ課題を抱えているシステムエンジニアが多いので、この記事を書きます。

以前に、DevLoveで発表した内容です(後述する手順読み上げ機能を、Windows7に対応させています)。

Slideshare
image

システムエンジニアの本番作業

システムエンジニアの本番作業は、オンライン停止後の深夜帯しかできないという現場も多いかと思います。より作業ミスも発生しやすくなるってもんです。私も若い頃は、そういう現場にいて当時飛び交っていた格言をメモっていたようです。

本番作業のこころえ

謎メモを読み解くと、以下のようなことが、本番作業およびスクリプトには求められます。

  • 本番作業はリハーサルを入念におこなうべし。
  • Enter押す前に、指差し確認をおこなうべし。
  • 本番で流すスクリプトにパスワードを書かないこと。
  • 期待する結果と違ったら、立ち止まって対策うつべし。

migrationTTL

さて、これらの本番作業をサポートするツールです。

もともと移行作業のために作ったので、migrationTTLという名前になっていますが、本番作業全般で使えます。
TeraTermマクロとして動作します。

使い方

本番作業前に、開発環境でリハーサルをおこない、手順のスクリプトを作ります。

# 景気づけにls
ls

# ホームに移動
# 複数行のコメントはまとめて表示されます
cd
cd work/devlove

# SQL*Plusもシームレスにいけます
sqlplus system

# *****と書いておくとパスワード入力ダイアログがでます
*****

# SQLを実行します
select * from tab;

# SQLを終了
exit

基本的には、シェルスクリプトと同じノリです。

あとは、TeraTermからmigrationTTLを実行し、手順をロードすると作業がスタートします。

実行前のコマンドの確認と、Enterを押す前の確認が順次おこなわれ、自動的にターミナルに打ち込まれます。

メリット

  • 検証済みの手順をクリックしていくだけで、本番での作業を安全かつ速やかに実行できる。
  • パスワードがスクリプトに入らずセキュア
  • 変なことが起こったら、途中で止めてリカバリできる。
  • ログも自動的に取得される
  • サーバをまたいで作業する場合も同じスクリプトでいける(TeraTermマクロなので)

コマンドの読み上げ

目だけで手順を追うと、ミスに気づかないこともあります。そこでmigrationTTLでは、コメントを音声で読み上げる機能があります。

SAPIのセットアップ

昔のWindowsでは、イルカや魔法使いを簡単に喋らせることができたのですが、最近は音声合成機能は別途インストールすれば使えるようになっています。Windows7では「Speech Platform Server Runtime」をSAPI経由で使うのが簡単なので、これを使います。

デモ

これで、以下のような本番作業イメージになります。

↓Youtubeリンク
screencast

もう深夜作業でも大丈夫ですね!

48
46
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
46

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?