Обзор config.json

Содержание

Файл config.json формируется во время запуска действия (action) и передается в Ansible при запуске playbook с использованием параметра --extra-vars.

Файл содержит контекст выполнения действия и предоставляет Ansible playbook доступ к служебной информации о текущем объекте и параметрах запуска действия.

ВАЖНО
Файл создается динамически и не предназначен для ручного редактирования.

Файл содержит следующие разделы верхнего уровня:

Структура файла config.json для действия, определенного на уровне кластера с использованием Wizard
{
  "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
          }
        }
      }
    }
  }
}
Структура файла config.json для действия, определенного на уровне сервиса
{
  "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
}
Структура файла config.json для действия, определенного на уровне хоста
{
  "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

Содержит данные всех этапов процесса выполнения действия.

Каждый этап может включать:

  • описание шага;

  • параметры конфигурации;

  • распределение компонентов по хостам, сформированное в рамках данного шага;

  • вложенные структуры конфигурации.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней