Enterprise 技術情報 Enterprise Technical information
Kompiraの機能 Kompira上のデータをバックアップする(その3)
動作確認環境
「Kompira上のデータをバックアップする(その1), (その2)」では、Kompira上のデータをJSONデータとしてバックアップする方法をご紹介しました。 JSONデータは単純に保存しておいたり、別の環境に移行させる場合は単一ファイルとなっていて扱いやすいのですが、各オブジェクトの差分を見るといった用途には適していません。 今回は”/opt/kompira/bin/manage.py”のサブコマンド”export_dir”を使って、Kompiraサーバのファイルシステム上にKompira上のデータを展開する方法をご紹介します。 実行例の事前準備として、「Kompira上のデータをバックアップする(その2)」と同様に、ディレクトリ”jobflows”の中にジョブフロー”jobflow1~3″、アカウント情報、ノード情報のオブジェクトを作成します。
バックアップの取得
次の実行例は、”/opt/kompira/bin/manage.py export_dir” を用いたバックアップの取得です。
ソフトウェア | バージョン |
---|---|
Kompira | 1.5.5.post7 |
LinuxOS | CentOS7.8.2003 |
「Kompira上のデータをバックアップする(その1), (その2)」では、Kompira上のデータをJSONデータとしてバックアップする方法をご紹介しました。 JSONデータは単純に保存しておいたり、別の環境に移行させる場合は単一ファイルとなっていて扱いやすいのですが、各オブジェクトの差分を見るといった用途には適していません。 今回は”/opt/kompira/bin/manage.py”のサブコマンド”export_dir”を使って、Kompiraサーバのファイルシステム上にKompira上のデータを展開する方法をご紹介します。 実行例の事前準備として、「Kompira上のデータをバックアップする(その2)」と同様に、ディレクトリ”jobflows”の中にジョブフロー”jobflow1~3″、アカウント情報、ノード情報のオブジェクトを作成します。

>$ /opt/kompira/bin/manage.py export_dir /root/jobflows [2017-05-08 13:48:28,894] INFO: export_dir: export '/root/jobflows/jobflow1' to 'root/jobflows/jobflow1' [2017-05-08 13:48:28,911] INFO: export_dir: export '/root/jobflows/jobflow2' to 'root/jobflows/jobflow2' [2017-05-08 13:48:28,926] INFO: export_dir: export '/root/jobflows/jobflow3' to 'root/jobflows/jobflow3' [2017-05-08 13:48:28,966] INFO: export_dir: export '/root/jobflows/サーバー情報' to 'root/jobflows/サーバー情報.NodeInfo' [2017-05-08 13:48:28,992] INFO: export_dir: export '/root/jobflows/接続アカウント' to 'root/jobflows/接続アカウント.AccountInfo' $ cat root/jobflows/接続アカウント.AccountInfo keyfile: name: null path: null passphrase: '' password: testpassword user: test $ cat root/jobflows/jobflow1 print("hello,world") $ cat root/jobflows/.jobflow1 fields: defaultCheckpointMode: false defaultMonitoringMode: NOTHING multiplicity: nullここでは元のディレクトリ階層に対応して、カレントディレクトリ以下にディレクトリおよびファイルが作成されます。 Kompira上の各オブジェクトは、オブジェクトの型に応じたフィールド値を持つYAMLファイルとして出力されます。 ジョブフローやWikiなど、一部のオブジェクトでは「代表フィールド」が内部で設定されています。このようなオブジェクトがエクスポートされた場合は、代表フィールドの内容を持つ単一のファイルと、それ以外のフィールドの値を持つ「.(ドット)」始まりのファイルの2つが出力されます。 バックアップデータからのリストア 次の実行例は “/opt/kompira/bin/manage.py import_dir”を用いたバックアップデータからのリストアです。
$ /opt/kompira/bin/manage.py import_dir root/jobflows [2017-05-08 14:14:13,576] INFO: import data: start... [2017-05-08 14:14:13,647] INFO: import object: imported "jobflow1" to "/jobflow1" [2017-05-08 14:14:13,672] INFO: import object: imported "jobflow3" to "/jobflow3" [2017-05-08 14:14:13,697] INFO: import object: imported "jobflow2" to "/jobflow2" [2017-05-08 14:14:13,723] INFO: import object: imported "サーバー情報" to "/サーバー情報" [2017-05-08 14:14:13,749] INFO: import object: imported "接続アカウント" to "/接続アカウント" [2017-05-08 14:14:13,914] INFO: import fields: /jobflow1: ['defaultCheckpointMode', 'defaultMonitoringMode', 'multiplicity', 'source'] [2017-05-08 14:14:13,968] INFO: import fields: /jobflow3: ['defaultCheckpointMode', 'defaultMonitoringMode', 'multiplicity', 'source'] [2017-05-08 14:14:14,015] INFO: import fields: /jobflow2: ['defaultCheckpointMode', 'defaultMonitoringMode', 'multiplicity', 'source'] [2017-05-08 14:14:14,071] INFO: import fields: /サーバー情報: ['account', 'shell', 'hostname', 'ipaddr', 'conntype', 'proxy', 'port', 'use_shell'] [2017-05-08 14:14:14,117] INFO: import fields: /接続アカウント: ['password', 'keyfile', 'user', 'passphrase'] [2017-05-08 14:14:14,123] INFO: import data: finished (created=5, updated=0, skipped=0, error=0, warning=0)特にリストア先のディレクトリを指定しない場合には “/” 以下に展開されます。 リストア先を明示的に指定する場合には “–directory” オプションを利用します。 以下の例ではバックアップしたジョブフロー、アカウント情報、ノード情報のオブジェクトをKompira上の “/root/restore” に展開しています。
$ /opt/kompira/bin/manage.py import_dir --directory=/root/restore root/jobflows [2017-05-08 14:18:37,878] INFO: import data: start... [2017-05-08 14:18:37,941] INFO: import object: imported "jobflow1" to "/root/restore/jobflow1" [2017-05-08 14:18:37,957] INFO: import object: imported "jobflow3" to "/root/restore/jobflow3" [2017-05-08 14:18:37,973] INFO: import object: imported "jobflow2" to "/root/restore/jobflow2" [2017-05-08 14:18:37,990] INFO: import object: imported "サーバー情報" to "/root/restore/サーバー情報" [2017-05-08 14:18:38,008] INFO: import object: imported "接続アカウント" to "/root/restore/接続アカウント" [2017-05-08 14:18:38,099] INFO: import fields: /root/restore/接続アカウント: ['password', 'keyfile', 'user', 'passphrase'] [2017-05-08 14:18:38,178] INFO: import fields: /root/restore/jobflow1: ['defaultCheckpointMode', 'defaultMonitoringMode', 'multiplicity', 'source'] [2017-05-08 14:18:38,218] INFO: import fields: /root/restore/jobflow3: ['defaultCheckpointMode', 'defaultMonitoringMode', 'multiplicity', 'source'] [2017-05-08 14:18:38,253] INFO: import fields: /root/restore/jobflow2: ['defaultCheckpointMode', 'defaultMonitoringMode', 'multiplicity', 'source'] [2017-05-08 14:18:38,294] INFO: import fields: /root/restore/サーバー情報: ['account', 'shell', 'hostname', 'ipaddr', 'conntype', 'proxy', 'port', 'use_shell'] [2017-05-08 14:18:38,299] INFO: import data: finished (created=5, updated=0, skipped=0, error=0, warning=0)例えばジョブフローをはじめとするKompira上のオブジェクトの差分管理をしたい場合は、”export_dir”により出力されたディレクトリをgitリポジトリに含めるとよいでしょう。 注意点として、Kompira 1.10時点ではexport_dirにオブジェクトに設定した権限情報を含めることができません。 もしKompiraのオブジェクトで権限情報を設定していて、それらの情報も含めて保存したい場合は”export_data”を併用してください。 例: “export_data”で出力したジョブフローの情報(一部抜粋)
{ "id": 123, "owner": "root", "fields": { "defaultMonitoringMode": "NOTHING", "source": "print(\"hello,world\")", "defaultCheckpointMode": false, "multiplicity": null }, "user_permissions": {}, "group_permissions": {}, "display_name": "jobflow2", "description": "", "created": "2017-05-01T02:40:36.347452Z", "updated": "2017-05-01T02:40:36.537388Z", "parent_object": "root/jobflows", "objpath": "root/jobflows/jobflow2", "typepath": "/system/types/Jobflow" },例: “export_dir”で出力したジョブフローの情報
print("hello,world")このように”export_dir”で出力した場合には、パーミッション情報(user_permissions, group_permissions)もあわせてエクスポートされます。
スタートガイド
Kompiraジョブフローの基礎
ジョブフローの簡単な例
Kompiraの機能
-
- フィールド修飾子でフィールドの入力内容に制約を設ける
- Kompiraでの文字列のパターンマッチング
- Kompira上でWikiページを作成する
- スケジューラを使って定期的にジョブを実行する
- ジョブフローを実行するフォームを作成する
- テーブル内の情報を選択して処理を実行する
- ジョブフローに権限設定をする
- ジョブフロー画面の各種設定
- Pythonで記述された処理をKompiraから呼び出す
- Kompiraオブジェクトのプロパティ,メソッド,フィールドを扱う
- Windowsでリモートスクリプトを実行する(その1)
- Windowsでリモートスクリプトを実行する(その2)
- Kompira上のデータをバックアップする(その1)
- Kompira上のデータをバックアップする(その2)
- Kompira上のデータをバックアップする(その3)
外部との連携
-
- Prometheusからの通知をKompiraで受信する
- Kompira cloud Pigeonを利用した通知電話の利用
- ネットワーク機器へのコマンド投入
- KompiraからWindowsGUIアプリケーションを操作する (1/2)
- メールを送信する
- メール受信をトリガーにしてジョブフローを実行する
- アラートメールをフィルタリングして転送する
- チャネルを利用して外部システムからデータを受信する
- Webページから内容を取得する
- Redmineへ新規チケットを登録する
- Redmineでのチケット作成をKompiraに通知する
- Kompira REST APIを利用して外部からジョブフローを実行する
- Kompira REST APIを利用して外部からオブジェクト情報を取得する
- KompiraからSlackに通知する
- Slackでの投稿をKompiraに通知する
- KompiraからTwilioで電話をかける
- Zabbixからの通知をKompiraで受信する
- syslogをKompiraで受信する
- snmptrapをKompiraで受信する
- KompiraでExcelファイルの読み書きをする
- KompiraでGoogle SpreadSheetの読み書きをする
- Active Directoryから情報を取得する
- Active Directoryにユーザーを登録する