ソフトウェア プログラム

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で保存します。

ssh接続で必要なのは欠かせないものは以下ですね。

hostname:サーバーIPアドレス:ポート番号
username:ログインユーザーID(任意のユーザーに変更)
ssh-password-storage-path:パスワード

ssh接続で公開/秘密鍵で接続したい方は、公式ドキュメントを確認していただき変更をしてください。

次にtest.ymlをrundeckでも読み取りができるように設定していきます。

私の場合は、piユーザーで作成をしたため、読み取りも書き込みもpiしかできません。権限をrundeckにも付与します。

$ cd /home/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接続でジョブ実行の説明です。

参考サイト

Rundeck 3 で SSH先 でジョブを実行する方法

公式ドキュメント

Rundeck 3: Install, Setup a Project and Add Nodes

-ソフトウェア, プログラム