Rundeck3でssh接続して定期的にジョブを実行する方法
最近Raspberry piでcronからRundeck3へと移行しました。
Rundeckでは、VPSでの定期的なJobをRundeckで動かせたら管理が楽になりそうだし、良さそうということでいろいろ試してみることに。
OS
- Raspbian
Edit Nodes
まずはssh接続のためNodeを追加していきます。
RundeckでEdit Nodesを選択して、Add a new Node Sourceをクリックします。
AWSなどもありますが、今回はFileを選択します。
Formatを選択します。FormatはXMLとYAMLとJSONのいづれかとなります。後程、File Pathのtest.ymlファイルを作成いたしますが、とりあえずFile Pathを登録してSaveしましょう。
以上でNodeの作成は終了です。
YAMLファイルの作成
先程のFile Pathにあったtest.ymlを作成いたします。
ssh認証は、パスワードまたは公開/秘密鍵を介した2つの方法で実行できます。
今回はパスワードでのssh認証でのやり方で説明していきます。
ファイルは以下のようになり、test.ymlで保存します。
my_node_name: nodename: my_node_name hostname: 151.151.151.151:22 osVersion: CentOS7 osFamily: unix osArch: amd64 description: Rundeck server node osName: Linux username: tarou ssh-authentication: password ssh-password-storage-path: keys/tarou
ssh接続で必要なのは欠かせないものは以下ですね。
username:ログインユーザーID(任意のユーザーに変更)
ssh-password-storage-path:パスワード
ssh接続で公開/秘密鍵で接続したい方は、公式ドキュメントを確認していただき変更をしてください。
次にtest.ymlをrundeckでも読み取りができるように設定していきます。
私の場合は、piユーザーで作成をしたため、読み取りも書き込みもpiしかできません。権限をrundeckにも付与します。
$ ls -l
$ sudo chown -c pi:rundeck test.yml
これで、RundeckからFileの読み取りが可能となります。
パスワードの設定
パスワードの設定をしていきます。
設定のKey Storageを選択。
Add or Upload Keyを選択
Key type:Password
Enter Text: ssh接続パスワード
Name: tarou(任意のユーザーに変更)
以上でssh接続のための準備となります。
次に、ssh接続を行いJobを実行していきましょう。
ジョブの設定
ジョブの設定には、Nodeがあります。これは、先程設定したNodeを割り当てることでssh接続をしてJobを実行することができます。
Nodesを選択し、ノードに割り当てるを選択。先程設定をしたmy_node_nameをノードフィルタで検索しましょう。
Commandで実行したいスクリプトを入力
例えば、pythonを実行する場合は下記のような感じ。定期的なJobを設定したい人は、scheduleを変更してください。
作成したJobを実行してみます。特に問題がなければSUCCESSと出ますが、Errorなどが発生した場合は、内容を確認して修正しましょう。
以上で簡単なRundeck3のssh接続でジョブ実行の説明です。