Обзор config.json
Файл config.json формируется во время запуска действия (action) и передается в Ansible при запуске playbook с использованием параметра --extra-vars.
Файл содержит контекст выполнения действия и предоставляет Ansible playbook доступ к служебной информации о текущем объекте и параметрах запуска действия.
|
ВАЖНО
Файл создается динамически и не предназначен для ручного редактирования.
|
Файл содержит следующие разделы верхнего уровня:
{
"adcm": {
"config": {
"audit_data_retention": {
"config_rotation_in_db": 0,
"data_archiving": false,
"log_rotation_in_db": 365,
"log_rotation_on_fs": 365,
"retention_period": 1825
},
"auth_policy": {
"block_time": 5,
"login_attempt_limit": 5,
"max_password_length": 128,
"min_password_length": 12
},
"global": {
"accept_only_verified_bundles": false,
"adcm_url": null,
"verification_public_key": "/adcm/data/file/adcm.1.global.verification_public_key"
},
"ldap_integration": null,
"statistics_collection": {
"url": "adcm-usage-ss.arenadata.io"
}
},
"uuid": "694f1bfe-9702-4a9d-9219-bb74f8762a62"
},
"context": {
"cluster_id": 19,
"type": "cluster"
},
"env": {
"consul_client_cacert_file": null,
"consul_client_cert_file": null,
"consul_client_key_file": null,
"consul_datacenter": null,
"consul_url": null,
"log_dir": "/adcm/data/log",
"run_dir": "/adcm/data/run",
"stack_dir": "/adcm/data/bundle/62e235762f4410a6bf4f4dfff29591e3fd2c3b8c",
"status_api_token": "4cd86bdcdddfe2fa7a1c2fb1712ae39515a99dbc",
"tmp_dir": "/adcm/data/run/258/tmp"
},
"job": {
"action": "install_wizard",
"cluster_id": 19,
"command": "validate",
"hostgroup": "CLUSTER",
"id": 258,
"job_name": "validate",
"params": {
"rules": []
},
"playbook": "/adcm/data/bundle/62e235762f4410a6bf4f4dfff29591e3fd2c3b8c/wizard_jinja/playbook.yaml",
"script": "wizard_jinja/playbook.yaml",
"verbose": false
},
"process": {
"current": {
"stage": "manage_ssl_stage",
"step": "configure_ssl_test"
},
"stages": {
"apply_config": {},
"manage_kerberos": {},
"manage_ssl_stage": {
"configure_ssl": {
"config": {
"ssl_config": null
}
}
}
}
}
}
{
"adcm": {
"config": {
"audit_data_retention": {
"config_rotation_in_db": 0,
"data_archiving": false,
"log_rotation_in_db": 365,
"log_rotation_on_fs": 365,
"retention_period": 1825
},
"auth_policy": {
"block_time": 5,
"login_attempt_limit": 5,
"max_password_length": 128,
"min_password_length": 12
},
"global": {
"accept_only_verified_bundles": false,
"adcm_url": "http://10.92.40.241:8000/",
"verification_public_key": "/adcm/data/file/adcm.1.global.verification_public_key"
},
"ldap_integration": null,
"statistics_collection": null
},
"uuid": "8e5aae80-a466-41ba-a6ad-66b67ed76457"
},
"context": {
"cluster_id": 77,
"service_id": 653,
"type": "service"
},
"env": {
"consul_cacert_file": null,
"consul_datacenter": null,
"consul_url": null,
"log_dir": "/adcm/data/log",
"run_dir": "/adcm/data/run",
"stack_dir": "/adcm/data/bundle/16eb76f32144efa9a95500028bdbb1cbd5c4717e",
"status_api_token": "9dbc1a22e761c6a6646ea5111c12e259b071ccbc",
"tmp_dir": "/adcm/data/run/8165/tmp"
},
"job": {
"action": "check",
"cluster_id": 77,
"command": "check",
"hostgroup": "airflow2",
"id": 8165,
"job_name": "check",
"params": {
"actions": [
"check"
],
"rules": []
},
"playbook": "/adcm/data/bundle/16eb76f32144efa9a95500028bdbb1cbd5c4717e/ansible/playbook.yaml",
"script": "ansible/playbook.yaml",
"service_id": 653,
"service_type_id": 2119,
"verbose": false
},
"process": null
}
{
"adcm": {
"config": {
"audit_data_retention": {
"config_rotation_in_db": 0,
"data_archiving": false,
"log_rotation_in_db": 365,
"log_rotation_on_fs": 365,
"retention_period": 1825
},
"auth_policy": {
"block_time": 5,
"login_attempt_limit": 5,
"max_password_length": 128,
"min_password_length": 12
},
"global": {
"accept_only_verified_bundles": false,
"adcm_url": null,
"verification_public_key": "/adcm/data/file/adcm.1.global.verification_public_key"
},
"ldap_integration": null,
"statistics_collection": {
"url": "adcm-usage-ss.arenadata.io"
}
},
"uuid": "cdb4d7ac-80b9-4e14-b6fc-e14366bd2048"
},
"context": {
"host_id": 2,
"provider_id": 1,
"type": "host"
},
"env": {
"consul_cacert_file": null,
"consul_datacenter": null,
"consul_url": null,
"log_dir": "/adcm/data/log",
"run_dir": "/adcm/data/run",
"stack_dir": "/adcm/data/bundle/34655eaf0e9efc86ff902eaaad22bfae58786a59",
"status_api_token": "f6f9073eedec9770627df26e377ba1d409353488",
"tmp_dir": "/adcm/data/run/384/tmp"
},
"job": {
"action": "rng_install",
"cluster_id": 12,
"command": "rng_install",
"host_id": 2,
"host_type_id": 3,
"hostgroup": "HOST",
"hostname": "ke-consul",
"id": 384,
"job_name": "rng_install",
"params": {
"ansible_tags": "rng_install",
"rules": []
},
"playbook": "/adcm/data/bundle/34655eaf0e9efc86ff902eaaad22bfae58786a59/ansible/common_data/playbooks/rng_install.yaml",
"provider_id": 1,
"script": "ansible/common_data/playbooks/rng_install.yaml",
"verbose": false
},
"process": null
}
adcm
Содержит системную информацию о текущем экземпляре (instance) ADCM.
Раздел используется для получения служебных данных (например, URL ADCM, UUID ADCM и других настроек). Структура может отличаться в зависимости от версии ADCM.
context
Содержит информацию об объекте, для которого выполняется задача (job). Это может быть:
Раздел используется для определения контекста выполнения Ansible playbook.
env
Содержит разрешенные к передаче переменные окружения, с которыми был запущен ADCM.
Может включать:
-
переменные окружения, определенные пользователем;
-
переменные окружения, определенные по умолчанию.
job
Содержит информацию о выполняемой задаче.
Может включать:
-
идентификатор задачи;
-
наименование действия;
-
тип действия;
-
hostgroup— имя inventory-группы, формируемое в соответствии с правилами формирования inventory-групп:-
если действие определено на уровне кластера — имя группы носит название
CLUSTER; -
если действие определено на уровне сервиса — имя группы совпадает с именем сервиса;
-
если действие определено на уровне компонента — имя группы имеет формат
<service name>.<component name>; -
если действие определено на уровне хостпровайдера — имя группы носит название
PROVIDER; -
если действие определено на уровне отдельного действия (action) — имя группы носит название
HOST;
-
-
дополнительные параметры.
process
|
ПРИМЕЧАНИЕ
Раздел process присутствует в config.json исключительно при выполнении действия, реализованного в виде Wizard и определенного в прототипе.
|
Раздел отражает состояние выполнения действия, реализованного в виде Wizard, и содержит:
-
текущий этап (stage) и шаг (step);
-
конфигурационные данные, введенные пользователем;
-
распределение компонентов по хостам (host-component mapping) — кумулятивное распределение, сформированное на текущий момент выполнения процесса (flow);
-
промежуточные данные процесса.
process.current
Определяет текущий этап и шаг, которые выполняются в рамках задачи, и содержит следующие параметры:
-
stage— название этапа; -
step— название шага.
process.stages
Содержит данные всех этапов процесса выполнения действия.
Каждый этап может включать:
-
описание шага;
-
параметры конфигурации;
-
распределение компонентов по хостам, сформированное в рамках данного шага;
-
вложенные структуры конфигурации.