5. 収集機能¶
5.1. はじめに¶
5.2. 収集機能概要¶
5.2.1. 収集機能について¶
収集機能概要図¶
収集機能データ登録処理概要図¶
Tip
5.2.2. パラメータシートへの登録方法について¶
収集機能の動作要件¶
- にて、パラメータシート(ホスト/オペレーションあり)が作成されている
- にて、作業実行結果(ソースファイル)とパラメータシートの項目と紐づけ設定がされている
- 収集対象機器(ホスト名)が、機器一覧に登録済み
- 作業実行の結果、正常に完了している
- 作業実行の出力結果として、規定の構造でディレクトリ、ファイルが配置されている
注釈
5.3. 収集機能でのディレクトリ、ファイル構造、変数取り扱い¶
5.3.1. 収集対象ディレクトリ、ファイル構造¶
収集対象のファイルフォーマット
■ファイル名:RH_snmp.yml ■ファイルの内容: VAR_RH_sshd_config: - key: PermitRootLogin value: yes - key: PasswordAuthentication value: no
収集対象ディレクトリ構造
ITA独自変数 |
変数指定内容 |
備考 |
---|---|---|
__parameter_dir__ |
作業結果ディレクトリ配下の「_parameters」のパスへ変換されます。 |
|
__parameters_file_dir__ |
作業結果ディレクトリ配下の「_parameters_file」のパスへ変換されます。 |
|
__parameters_dir_for_epc__ |
作業ディレクトリ配下の「_parameters」のパスへ変換されます。 |
|
__parameters_file_dir_for_epc__ |
作業ディレクトリ配下の「_parameters_file」のパスへ変換されます。 |
|- _parameters ※1
| |- localhost ※2
| |- SAMPLE.yml ※3
|- _parameters_file ※4
| |- localhost ※2
|- test.txt ※5
- 備考※1 収集対象ディレクトリ(名称固定)※2 ホスト名(機器一覧に登録されているものが収集対象)※3 収集対象ファイル※4 収集対象ディレクトリファイルアップロード用(名称固定)※5 ファイルアップロード対象ファイル
注釈
モード |
モード別識別子 |
階層構造 |
備考 |
---|---|---|---|
Ansible-Legacy |
legacy |
/<上位ディレクトリ(Ansible)>/legacy/ |
|
Ansible-Pioneer |
pioneer |
/<上位ディレクトリ(Ansible)>/pioneer/ |
|
Ansible-LegacyRole |
legacy_role |
/<上位ディレクトリ(Ansible)>/legacy_role/ |
注釈
/storage/<Organization>/<Workspace>/driver/ansible/
です。実行モード: Ansible-Legacy
作業No: 00000000-0000-0000-0000-000000000001
対象ホスト: localhost
作業実行ディレクトリ : /storage/Organization/Workspace/driver/ansible/legacy/00000000-0000-0000-0000-000000000001/in/
作業実行結果ディレクトリ: /storage/Organization/Workspace/driver/ansible/legacy/00000000-0000-0000-0000-000000000001/out/
収集対象ファイルパス、ディレクトリ構造:
- /storage/Organization/Workspace/driver/ansible/legacy/00000000-0000-0000-0000-000000000001/in/_parameters/localhost/SAMPLE.yml
- /storage/Organization/Workspace/driver/ansible/legacy/00000000-0000-0000-0000-000000000001/in/_parameters/localhost/OS/RH_snmpd.yml
- /storage/Organization/Workspace/driver/ansible/legacy/00000000-0000-0000-0000-000000000001/in/_parameters_file/localhost/TEST.txt
- /storage/Organization/Workspace/driver/ansible/legacy/00000000-0000-0000-0000-000000000001/out/_parameters/localhost/SAMPLE.yml
- /storage/Organization/Workspace/driver/ansible/legacy/00000000-0000-0000-0000-000000000001/out/_parameters/localhost/OS/RH_snmpd.yml
- /storage/Organization/Workspace/driver/ansible/legacy/00000000-0000-0000-0000-000000000001/out/_parameters_file/localhost/TEST.txt
指定方式 |
YAMLファイルへの記載方法 |
備考 |
---|---|---|
ファイル名指定 |
VAR_FILE_NAME : <‘ファイル名> ’ |
|
ファイルパス指定 (後方一致) |
VAR_FILE_NAME : ‘/<階層X>/<ファイル名>’ |
Tip
■構造
【上位ディレクトリ】
|- _parameters
| |- localhost
| |- SAMPLE.yml ※ソースファイル
|- _parameters_file
| |- localhost
| |- test.txt ※アップロード対象ファイル
| |- APP001
|- config ※アップロード対象ファイル
■収集対象ファイル名:SAMPLE.yml
■ファイルの内容
VAR_upload_file: test.txt
VAR_upload_fileX: config
VAR_upload_fileZ: '/APP001/config'
5.3.2. 取り扱う変数と種類¶
- 通常変数変数名に対して具体値を1つ定義できる変数です。
VAR_users: root
- 複数具体値変数変数名に対して具体値を複数定義できる変数です。
VAR_users:
- root
- mysql
- 多段変数階層化された変数です。
VAR_users:
- user-name: alice #メンバ変数
authorized: password
Tip
5.4. 収集機能 メニュー構成¶
5.4.1. メニュー/画面一覧¶
- のメニューのメニュー一覧を以下に記述します。
No |
メニューグループ |
メニュー・画面 |
説明 |
---|---|---|---|
1 |
Ansible共通 |
収集項目値管理 |
作業実行の出力結果(ソースファイル)と、パラメータシートの項目の紐づけ設定を行い、
収集機能で登録する対象パラメータを管理します。
|
- Ansible driver メニューAnsible driverの各メニューグループに対応するメニュー一覧を以下に記述します。
No |
メニューグループ |
メニュー・画面 |
説明 |
---|---|---|---|
1 |
Ansible-Legacy |
作業管理 |
作業実行履歴を管理します。収集機能によるパラメータシートの登録状況、実行ログを参照します。 |
2 |
Ansible-LegacyRole |
作業管理 |
作業実行履歴を管理します。収集機能によるパラメータシートの登録状況、実行ログを参照します。 |
3 |
Ansible-Pioneer |
作業管理 |
作業実行履歴を管理します。収集機能によるパラメータシートの登録状況、実行ログを参照します。 |
5.5. 収集機能の利用手順¶
5.5.1. 作業フロー¶
収集機能作業フロー¶
作業フロー詳細と参照先
5.6. 収集機能・操作方法説明¶
5.6.1. Ansible 共通¶
収集項目値管理¶
- では、収集項目とパラメータシートの項目の紐付設定を行います。
- より、収集項目の登録を行います。
- 画面の項目一覧は以下のとおりです。
項目:収集項目(From) |
説明 |
入力必須 |
制約事項 |
---|---|---|---|
パース形式 |
YAML:YAML形式のファイルを解析し、パラメータを生成します。 |
〇 |
※1 |
PREFIX(ファイル名) |
ファイル名の拡張子を除いて入力して下さい。 |
〇 |
※1 |
変数名 |
収集対象の変数名を入力して下さい。
配列、ハッシュ構造の場合、メンバ変数の入力が必須となります。
|
〇 |
※1 |
メンバ変数 |
変数が複数具体値、多段変数の場合入力して下さい。 |
※1 |
項目:パラメータシート(To) |
説明 |
入力必須 |
制約事項 |
---|---|---|---|
メニューグループ:メニュー:項目 |
項目を選択して下さい。
メニューグループ名、メニュー名、項目名を「:」区切りで接続した形で表示されます。
|
※2 |
注釈
■ファイル名: SAMPLE.yml
■ファイルの内容
VAR_sample_config_1: yes
VAR_sample_config_2: test_parameter
■収集値項目管理の収集項目(FROM)の入力可能な値
PREFIX(ファイル名): SAMPLE
変数名: VAR_sample_config_1
VAR_sample_config_2
■ファイル名: SAMPLE_2.yml
■ファイルの内容
VAR_sample2_conf:
- SAMPLE1
- SAMPLE2
- SAMPLE3
■収集値項目管理の収集項目(FROM)の入力可能な値
PREFIX(ファイル名): SAMPLE_2
変数名: VAR_sample2_conf
メンバ変数: [0]
[1]
[2]
■ファイル名: RH_sshd.yml
■ファイルの内容
VAR_RH_sshd_config:
- key: PermitRootLogin
value: yes
- key: PasswordAuthentication
value: no
■収集値項目管理の収集項目(FROM)の入力可能な値
PREFIX(ファイル名): RH_sshd
変数名: VAR_RH_sshd_config:
メンバ変数: [0].key
[0].value
[1].key
[1].value
■ファイル名: RH_snmp.yml
■ファイルの内容
VAR_RH_snmpd_info:
com2sec:
- sec_name: "testsec"
source: "192.168.1.0/24"
community: "public"
- sec_name: "local"
source: "localhost"
community: "private"
■収集値項目管理の収集項目(FROM)の入力可能な値
PREFIX(ファイル名): RH_snmp
変数名: VAR_RH_snmp_config:
メンバ変数: com2sec[0].sec_name
com2sec[0].source
com2sec[0].community
com2sec[1].sec_name
com2sec[1].source
com2sec[1].community
5.6.2. Ansible-Legacy、Ansible-Pioneer、Ansible-LegacyRole¶
収集状況の確認¶
項目 |
説明 |
備考 |
---|---|---|
ステータス |
収集機能の実行状況の表示
対象外:収集機能対象外 (対象ファイルなし)
収集済み:収集機能実施済み
収集済み(通知あり):登録/更新中に不備があった場合
収集エラー:Movementのオペレーション、ホストに不備がある場合
|
※ |
収集ログ |
収集機能実行のログをダウンロード |
作業状態
ステータス
|
収集機能対象 |
対象ファイル |
収集状況
ステータス
|
収集ログ |
備考 |
---|---|---|---|---|---|
完了以外 |
なし |
対象外 |
空 |
空 |
|
完了以外 |
あり |
対象外 |
空 |
空 |
|
完了 |
なし |
対象 |
対象外 |
ログファイルあり |
|
完了 |
あり |
対象 |
収集済み |
ログファイルあり |
|
完了 |
あり |
対象 |
収集済み(通知あり) |
ログファイルあり |
|
完了 |
あり |
対象 |
収集エラー |
ログファイルあり |
注釈
Collect START (host name: exastro-test-1 file name: ['Ansible_conf'])
REST DATA (host name: exastro-test-1 menu ID: collect_001 operation NO: 4001e182-51d2-4918-96e0-5981c4dc6d5f)
Collect END (host name: exastro-test-1 file name: ['Ansible_conf'])
Collect START (host name: exastro-test-2 file name: ['Ansible_conf'])
REST DATA (host name: exastro-test-2 menu ID: collect_001 operation NO: 4001e182-51d2-4918-96e0-5981c4dc6d5f)
Collect END (host name: exastro-test-2 file name: ['Ansible_conf'])
Collect START (host name: exastro-test-3 file name: ['Ansible_conf'])
REST DATA (host name: exastro-test-3 menu ID: collect_001 operation NO: 4001e182-51d2-4918-96e0-5981c4dc6d5f)
Collect END (host name: exastro-test-3 file name: ['Ansible_conf'])
Collect START (host name: exastro-test-1 file name: ['Ansible_conf'])
{'item_1': [{'status_code': '', 'msg_args': '', 'msg': 'Regular expression error (1,Value:sample_value)'}]}
[Process] Failed to register or update data in CMDB. (1/1)
Collect END (host name: exastro-test-1 file name: ['Ansible_conf'])
Collect START (host name: exastro-test-2 file name: ['Ansible_conf'])
{'item_1': [{'status_code': '', 'msg_args': '', 'msg': 'Regular expression error (1,Value:sample_value)'}]}
[Process] Failed to register or update data in CMDB. (1/1)
Collect END (host name: exastro-test-2 file name: ['Ansible_conf'])
Collect START (host name: exastro-test-3 file name: ['Ansible_conf'])
{'item_1': [{'status_code': '', 'msg_args': '', 'msg': 'Regular expression error (1,Value:sample_value)'}]}
[Process] Failed to register or update data in CMDB. (1/1)
Collect END (host name: exastro-test-3 file name: ['Ansible_conf'])
[Process] Operation is abolished, so registration and update processing is skipped (Operation No: 4001e182-51d2-4918-96e0-5981c4dc6d5f)
[Process] The registration / update process is skipped because the target device has not been registered or has been abolished (host name: exastro-test-1).
[Process] The registration / update process is skipped because the target device has not been registered or has been abolished (host name: exastro-test-2).
[Process] The registration / update process is skipped because the target device has not been registered or has been abolished (host name: exastro-test-3).
[Process] There is no file in the collection target directory.
5.6.3. BackYardコンテンツ¶
パラメータシートへの登録処理の概要
- 正常に完了した作業の一覧を取得します。収集対象ステータス: 完了
- 収集対象作業Noから以下の情報を取得します。- オペレーション情報- 対象ホスト- 対象ソースファイル
- 対象のホストが機器一覧に登録されているか確認します。登録: 収集対象未登録: 対象外
- 対象ソースファイルと収集項目値管理から対象パラメータシートのメニューIDを取得※対象ソースファイルが複数ある場合、ファイル名の昇順で処理を実行します。
- 1~4 の情報から登録、更新用のパラメータを生成します。対象のメニューに対して、データ確認を実施し、登録、更新かを判定します。登録: オペレーション、ホスト組み合わせで、一意のデータが登録されていない更新: オペレーション、ホスト組み合わせで、一意のデータが登録されている
- パラメータシートへのデータの登録/更新を実施します。
- 作業Noに収集状況のステータスを更新します。
5.7. 付録¶
5.7.1. 参考資材¶
- Exastro Playbook Collection
- Ansibleコンフィグ取得、パラメータ生成Playbook
- name: make yaml file blockinfile: create: yes mode: 0644 insertbefore: EOF marker: "" dest: "{{ __parameter_dir__ }}/{{ inventory_hostname }}/Ansible_conf.yml" content: | ansible_architecture: {{ ansible_architecture }} ansible_bios_version: {{ ansible_bios_version }} ansible_default_ipv4__address: {{ ansible_default_ipv4.address }} ansible_default_ipv4__interface: {{ ansible_default_ipv4.interface }} ansible_default_ipv4__network: {{ ansible_default_ipv4.network }} ansible_distribution: {{ ansible_distribution }} ansible_distribution_file_path: {{ ansible_distribution_file_path }} ansible_distribution_file_variety: {{ ansible_distribution_file_variety }} ansible_distribution_major_version: {{ ansible_distribution_major_version }} ansible_distribution_release: {{ ansible_distribution_release }} ansible_distribution_version: {{ ansible_distribution_version }} ansible_machine: {{ ansible_machine }} ansible_memtotal_mb: {{ ansible_memtotal_mb }} ansible_nodename: {{ ansible_nodename }} ansible_os_family: {{ ansible_os_family }} ansible_pkg_mgr: {{ ansible_pkg_mgr }} ansible_processor_cores: {{ ansible_processor_cores }} ansible_processor_count: {{ ansible_processor_count }} ansible_processor_threads_per_core: {{ ansible_processor_threads_per_core }} ansible_processor_vcpus: {{ ansible_processor_vcpus }} ansible_product_name: {{ ansible_product_name }} ansible_product_serial: {{ ansible_product_serial }} ansible_product_uuid: {{ ansible_product_uuid }} ansible_product_version: {{ ansible_product_version }} ansible_python__executable: {{ ansible_python.executable }} ansible_python_version: {{ ansible_python_version }} ansible_service_mgr: {{ ansible_service_mgr }} vconsole_config: vconsole.conf yum_config: yum.conf - name: get vconsole config fetch: src: /etc/vconsole.conf dest: "{{ __parameters_file_dir__ }}/{{ inventory_hostname }}/" flat: yes - name: get yum config fetch: src: /etc/yum.conf dest: "{{ __parameters_file_dir__ }}/{{ inventory_hostname }}/" flat: yes
注釈
- hosts: all
remote_user: "{{ __loginuser__ }}"
gather_facts: yes
become: yes
5.7.2. 収集実行例¶
複数ファイルの同一メニューを対象とした場合¶
【上位ディレクトリ】
|- _parameters
|- ita-sample01
|- SAMPLE_01.yml
|- SAMPLE_02.yml
SAMPLE_01.yml |
SAMPLE_02.yml |
---|---|
VAR_sample_config_1: 1
VAR_sample_config_2: 2
VAR_sample_config_3: 3
|
VAR_sample_config_1: “A”
VAR_sample_config_B: “B”
VAR_sample_config_X: “X”
|
収集値項目管理の設定と対象メニュー-項目
SAMPLE_01.yml の登録処理(登録)
SAMPLE_02.yml の登録処理(更新)
収集機能完了後のレコードの状態
収集対象ファイルの値の取り扱い¶
VAR_TEST: TEST
VAR_STR_TEST1: 'TEST1'
VAR_STR_TEST2: "TEST2"
VAR_null: null
VAR_NULL: NULL
VAR_STR_null: "null"
VAR_STR_NULL: "NULL"
VAR_true: true
VAR_false: false
VAR_STR_true: "true"
VAR_STR_false: "false"
VAR_YES: YES
VAR_NO: NO
VAR_STR_YES: "YES"
VAR_STR_NO: "NO"
VAR_NON:
VAR_Quotation: ''
VAR_WQuotation: ""
No |
キー |
値 |
備考 |
---|---|---|---|
1 |
VAR_TEST |
TEST |
|
2 |
VAR_STR_TEST1 |
'TEST1' |
|
3 |
VAR_STR_TEST2 |
"TEST2" |
|
4 |
VAR_null |
null |
|
5 |
VAR_NULL |
NULL |
|
6 |
VAR_STR_null |
"null" |
|
7 |
VAR_STR_NULL |
"NULL" |
|
8 |
VAR_true |
true |
|
9 |
VAR_false |
false |
|
10 |
VAR_STR_true |
"true" |
|
11 |
VAR_STR_false |
"false" |
|
12 |
VAR_YES |
YES |
|
13 |
VAR_NO |
NO |
|
14 |
VAR_STR_YES |
"YES" |
|
15 |
VAR_STR_NO |
"NO" |
|
16 |
VAR_NON |
||
17 |
VAR_Quotation |
'' |
|
18 |
VAR_WQuotation |
"" |
No |
収集対象 (キー:値) |
パラメータシート
項目名
|
RESTAPIレスポンス
値
|
RESTAPIレスポンス
データ型
|
WEB画面表示 |
---|---|---|---|---|---|
1 |
VAR_TEST: TEST |
パラメータ/VAR_TEST |
"TEST" |
string |
TEST |
2 |
VAR_STR_TEST1: 'TEST1' |
パラメータ/VAR_STR_TEST1 |
"TEST1" |
string |
TEST1 |
3 |
VAR_STR_TEST2: "TEST2" |
パラメータ/VAR_STR_TEST2 |
"TEST2" |
string |
TEST2 |
4 |
VAR_null: null |
パラメータ/VAR_null |
null |
null |
|
5 |
VAR_NULL: NULL |
パラメータ/VAR_NULL |
null |
null |
|
6 |
VAR_STR_null: "null" |
パラメータ/VAR_STR_null |
"null" |
string |
null |
7 |
VAR_STR_NULL: "NULL" |
パラメータ/VAR_STR_NULL |
"NULL" |
string |
NULL |
8 |
VAR_true: true |
パラメータ/VAR_true |
true |
boolean |
true |
9 |
VAR_false: false |
パラメータ/VAR_false |
false |
boolean |
false |
10 |
VAR_STR_true: "true" |
パラメータ/VAR_STR_true |
"true" |
string |
true |
11 |
VAR_STR_false: "false" |
パラメータ/VAR_STR_false |
"false" |
string |
false |
12 |
VAR_YES: YES |
パラメータ/VAR_YES |
true |
boolean |
true |
13 |
VAR_NO: NO |
パラメータ/VAR_NO |
false |
boolean |
false |
14 |
VAR_STR_YES: "YES" |
パラメータ/VAR_STR_YES |
"YES" |
string |
YES |
15 |
VAR_STR_NO: "NO" |
パラメータ/VAR_STR_NO |
"NO" |
string |
NO |
16 |
VAR_NON: |
パラメータ/VAR_NON |
null |
null |
|
17 |
VAR_Quotation: '' |
パラメータ/VAR_Quotation |
"" |
string |
|
18 |
VAR_WQuotation: "" |
パラメータ/VAR_WQuotation |
"" |
string |
対象パラメータシートの画面上の表示結果
対象パラメータシートのRESTAPI(filter)での取得結果
{
"data": [
{
"file": {},
"parameter": {
"base_datetime": "2023/05/17 13:58:47",
"discard": "0",
"host_name": "exastro-test-1",
"item_1": "TEST",
"item_10": "true",
"item_11": "false",
"item_12": true,
"item_13": false,
"item_14": "YES",
"item_15": "NO",
"item_16": null,
"item_17": "",
"item_18": "",
"item_2": "TEST1",
"item_3": "TEST2",
"item_4": null,
"item_5": null,
"item_6": "null",
"item_7": "NULL",
"item_8": true,
"item_9": false,
"last_execute_timestamp": "2023/05/17 13:58:47",
"last_update_date_time": "2023/05/17 14:00:07.944031",
"last_updated_user": "収集作業機能",
"operation_date": "2023/01/01 00:00:00",
"operation_name_disp": "OP1",
"operation_name_select": "2023/01/01 00:00_OP1",
"remarks": null,
"uuid": "ede113f8-14b1-48bf-8b3f-409f68b107ae"
}
}
],
"message": "SUCCESS",
"result": "000-00000",
"ts": "2023-05-17T05:54:03.937Z"
}
複数の同一ファイル名がアップロード対象ファイルの指定例¶
【上位ディレクトリ】
|- _parameters
| |- localhost
| |- SAMPLE.yml
|- _parameters_file
| |- localhost
|- APP001
|- config #①
|- APP002
|- config #②
|- APP003
|- config #③
|- APP002
|- config #④
■収集対象ファイル名:SAMPLE.yml
■ファイルの内容
VAR_upload_file_1: config
VAR_upload_file_2: ‘/APP002/config’
VAR_upload_file_3: ‘/APP001/config’
VAR_upload_file_4: ‘/APP003/APP002/config’
収集項目(FROM)/変数名 |
対象ファイル |
備考 |
---|---|---|
VAR_upload_file_1 |
①、②、③、④のファイルからランダム |
|
VAR_upload_file_2 |
②、④のファイルからランダム |
|
VAR_upload_file_3 |
①のファイルが対象 |
|
VAR_upload_file_4 |
④のファイルが対象 |
ファイル削除時の収集対象ファイル内の記載例¶
【上位ディレクトリ】
|- _parameters
| |- localhost
| |- SAMPLE.yml ※ソースファイル
|- _parameters_file
| |- localhost
■収集対象ファイル名: SAMPLE.yml
■ファイルの内容
VAR_upload_file: "" ※アップロード対象ファイル