背景
社内にて開発しているアプリケーションがあります。
テスト環境と本番環境の2環境準備しているのですが、テスト環境については環境に反映する頻度が多いです。
毎回の手順として、
①TeraTermにログイン
②Dockerfileがあるディレクトリに移動
③dockerbuildする
という作業をしています。手作業での時間は約1分なので自動化するほどでもないのですが、ログが残らないのともっと簡単にやりたいというモチベーションのもと、上記手順を自動化してみました。
作ったコード
・7~10行目の接続情報
・31行目以降のコマンド
この2点をカスタマイズしていただくとご自身の環境でも動くと思います。
;=============================================
; Description : SSHAutologin and docker build
; Author : msymacromill
; Created : 2022/12/16
;==============================================
;; 接続先ホスト/ユーザ名/パスワード設定/ログ設定
USERNAME = 'ec2-user'
HOSTNAME = 'xx.xxx.xx.xx'
KEY_FILE = 'xxxxxx.pem'
LOGDIR = 'C:\xxxxxxxxxxxxxxxxx'
;==============================================
;; ①ログイン情報を構成する
msg = HOSTNAME
strconcat msg ':22 /ssh2 /auth=publickey /user='
strconcat msg USERNAME
strconcat msg ' /keyfile='
strconcat msg KEY_FILE
;; ②接続する
connect msg
; ログファイルを作成する
getdate DATE '%Y%m%d-%H%M%S.log'
LOGNAME = '\docker_build_'
strconcat LOGDIR LOGNAME
strconcat LOGDIR DATE
logopen LOGDIR 0 0
;; ③コマンドを実行する
;Dockerfile_appがあるフォルダに移動してbuildする
wait "$"
sendln "cd <Dockerfileがあるディレクトリ>"
wait "$"
sendln "docker build -f Dockerfile -t <image名> ."
wait "$"
sendln "docker images"
wait "$"
logclose
手順
-
上記コードを書く
テキストファイルで上記コードを記入後、拡張子「.ttl」ファイルで保存します。 -
ttlファイルをttpmacro.exeで開く
拡張子「.ttl」ファイルはそのままでは開けません。
「C:\Program Files (x86)\teraterm」内に「ttpmacro.exe」があるのでそれで開きましょう。
「右クリック > プログラムから開く > 別のプログラムを選択 > このPCで別のアプリを探す」から「ttpmacro.exe」を選択すると開くようになります。
最後に
TeraTermにはマクロ機能があるようです。初めて知りました。
これでワンクリックでDockerimageを更新できるのでとても楽です。
また
・ログを残すように設定したので、どのタイミングでDockerimageを更新したのかを追えるようになった
・Windowsタスクスケジューラに乗せれば日時でDockerimage更新をしてくれるようになるのでテスト環境の反映がよりスピーディーにできる
というメリットも副次的に得ることができました。
参考
AWSのEC2にTeraTermマクロで自動ログインとログ取得する方法
TeraTermマクロでコードを実行する方法