rundeckのprojectのjob情報をgitと連携できるようになったようです
バックアップなどがはかどりそうですね
それでは早速やってみます
設定
project設定画面の「SCM」を押下します
するとそれぞれ設定ができるようなので必要な設定を行います
SCM Export
WEB UIで設定を変えたりした際にGitへExportできます
ここでリポジトリのURLや鍵の場所、ユーザー名などを入力する
不具合?
Branchは指定してもデフォルトだとmasterにpushしてしまうようです
仕方なくサーバに入り一旦ブランチを作成してからpushしたらうまくいきました
また、本当はデプロイユーザでpushもやりたかったのですがgit側にDeployKeyを登録してしまうとreadのみしかできなくなってしまうのでrundeckユーザでgit側に別途鍵を登録しました
実際のテキストファイル
ファイル名は ${job名}-${jobID}.yaml
という形式になっています
実際にgit上にexportされたjobの中身を見てみます
- description: |-
sandbox
test
executionEnabled: true
id: 642075a3-f0ec-44fe-af38-383ba4068ca6
loglevel: INFO
name: sample job
nodefilters:
dispatch:
excludePrecedence: true
keepgoing: true
rankOrder: ascending
threadcount: 3
filter: 'tags: sandbox+app'
nodesSelectedByDefault: true
schedule:
dayofmonth:
day: '*'
month: '*'
time:
hour: '*'
minute: '*'
seconds: '0'
year: '*'
scheduleEnabled: false
sequence:
commands:
- exec: sleep 10 && hostname
keepgoing: false
strategy: step-first
uuid: 642075a3-f0ec-44fe-af38-383ba4068ca6
どんな設定をしているのかはわかりそうですね
commit,push
各種設定項目を満たせばjob一覧画面からcommit,pushできるようになります
commitしていないjobに関してはアイコンで知らせてくれるので忘れることはあまりなさそうです
job名の右側の三角ボタンを押下すると「Commit Changes to Git」と出てくるのでそこからコメントなどを入力してcommitできます
commitする際に「Push Remotely」にチェックを入れるとリモートリポジトリにpushされます
これでバックアップはgitに置く事ができて万が一のときも安心ですね
SCM Import
既にjobのデータがある場合はimportができます
設定はExportと同じような内容で設定します
importするjobを選択するとimport出来るようです
こちらもExport同様鍵を登録してimport出来るようにしました
まとめ
- Exportしてないjobなどもアイコンですぐ気づくことが出来るので便利
- jobファイルを先に作成してImportというのはつらそう?
- 設定が多ければ多いほど1からyamlファイルを書いてImportするのは大変そう(試してません)
- 基本はGUI操作 -> Exportの流れになりそうだと思いました
- あくまでバックアップ用途かなという印象を受けました