自動化大好きな皆さま、こんにちは。
朝PCを立ち上げて、コーヒーを淹れて自席に戻ればすぐに開発が始められる・・
そんな朝、よくないですか?
ここでは峯の記事でご紹介した「開発用EC2への自動SSH」をMacユーザーが実現する方法をご紹介します。
(動作環境:mac OS mojave 10.14.6)
既存記事と異なる部分は
・手元がWindowsではなくMac
・トリガーがPC起動ではなく時刻
という2点です。
1. 全体図
以下が独立して自動でおこなわれます。
・平日の9:40になったらCloud AutomatorによりEC2が起動
・平日の9:50になったらlaunchdによりVisual Studio Codeが起動
[補足]
Visual Studio CodeでEC2にSSHしたままアプリを閉じると、次回アプリ起動時は勝手にセッションが張られます。
2-1. 設定 〜launchdの定義ファイルを書く〜
launchd??
OS Xを立ち上げると最初に起動するプロセスだそうです。
XMLで定義ファイル(.plistファイル)を作成しておくと、cronのようにコマンドを定期実行させたりできます。
Mac OS Xではcronの利用は非推奨らしいので、おとなしくlaunchdを使います。
vscode.plistを書いてみる
実際のXMLがこちらです。
Label vscode ProgramArguments /bin/bash /usr/local/bin/code StartCalendarInterval Weekday 1 Hour 9 Minute 50 Weekday 2 Hour 9 Minute 50 Weekday 3 Hour 9 Minute 50 Weekday 4 Hour 9 Minute 50 Weekday 5 Hour 9 Minute 50 StandardOutPath /Users/iso/output.out StandardErrorPath /Users/iso/output.err
ちょっと解説
各キーについて上から順に説明します。
キー名 | 必須かどうか | 説明 |
Label
|
必須 |
識別名。ユニークである必要があります。
|
ProgramArguments
|
必須 |
コマンドやオプション。dictで複数指定可能です。
実行ファイルへの絶対パスやオプションを入力します。
|
StartCalendarInterval
|
任意 |
ジョブスケジューリング。構文はcronと同様です。
今回は毎週月〜金曜日の09:50に実行するように指定しています。
|
StandardOutPath
|
任意 |
標準出力のパス。
|
StandardErrorPath
|
任意 |
標準エラー出力のパス。
|
.plistを保存する
.plistファイルの置き場は、管理者・実行単位によって変わります。
今回はユーザがエージェントを管理し、実行もシステム全体ではなくユーザごとでよいので「~/Library/LaunchAgents」に保存しました。
2-2. 設定 〜launchd以外〜
Cloud Automatorの設定
Visual Studio Codeの設定
こちらをご参考にどうぞ。
まとめ
これで快適にSSH接続先EC2で作業が始められるようになりました!
日々のお仕事にお役立ていただければ幸いです。