What is hcl in linux

Описание

hcl-get [2] это программа-клиент для Jyahd.

Пакеты

Пакет rpm с клиентом hcl-get располагаются на форуме, также пакет доступен в репозиториях клуба активных пользователей альт линукс.

Версия hcl-get 0.3.99.39 должна работать на системах, базирующихся на бранче p5.1/младше (проверялось), также возможна работа на более старых бранчах, но должно быть обеспечено наличие в системе пакета system-report [3] версии не ниже 0.0.6.

Использование клиента hcl-get для сервиса по сбору проб оборудования

Отправка пробы на сервер

Предположим, что созрело решение поделиться своими данными об оборудовании с другими. Для этого надо дать команду от пользователя

если на машине, с которой отправляются данные, имеется доступ в cеть Интернет, ввести при запросе пароль root, после чего несколько утилит в фоновом режиме соберут всю необходимую информацию, которая после завершения процесса сбора будет отправлена на сервер. Если же доступа в сеть Интернет по какой-либо причине на машине нет, то и это не беда — можно подготовить необходимые для отправки данные командой от пользователя

которая после запроса пароля root и сбора необходимой информации создаст два файла:

Hcl-get-prepare.png

1. Зашифрованный .gpg файл для отправки с другой машины. Это можно сделать двумя способами:

если полученный файл .gpg предварительно перенести на другую машину в ~/.hcl-get/gpg (создать каталог, если он не существует) или командой

hcl-get -r /полный/путь/до/файла.gpg

если файл .gpg располагается по другому пути.

2. Архив .tar.(xz|bz2|gz) может быть скопирован на любую другую машину, с которой будет удобнее добавлять/удалять комментарий к пробе, в каталог ~/.hcl-get . Без этого файла добавление/удаление комментария невозможно. Если вы не планируете оставлять комментарий к своей пробе оборудования и/или не хотите использовать никакие другие возможности сервиса кроме отправки данных об оборудовании, то данный файл можно просто удалить.

При любом из способов отправки:

Если отправка данных прошла без ошибок, то сервис сообщит:

  • либо об успешной загрузке данных и выдаст номер, который присвоен загруженной пробе оборудования, при этом архив с пробой будет сохранён в ~/.hcl-get/номер-пробы.tar.(xz/bz2/gz) ;
  • либо об ошибке, если имеют место быть несоответствия отправляемых данных требованиям сервиса;
  • либо о том, что данные отправляемой пробы уже имеются в базе.

После выдачи номера успешно загруженной пробе может пройти до 3 минут прежде, чем обработанная информация об этой пробе будет доступна для обзора. Это связано с тем, что процесс обработки загружаемых данных происходит независимо от процессов загрузки данных или добавления комментариев.

Читайте также:  How to configure server linux

Получение информации о пробе

После того, как данные добавлены на сервер и им присвоен номер, можно обратиться за содержимым этих данных командой

где номер — числовой код, присвоенный пробе сервисом. Данные пробы вместе с комментарием (если он добавлен), можно получить командой

Проверка проб на наличие в базе сервера

Может случиться так, что часть проб-архивов может быть произвольным образом переименована и в их названиях (hcl-get сохраняет успешно отправленные данные в архив ~/.hcl-get/номер.tar.(xz/bz2/gz) ) будут отсутствовать числовые номера проб либо они будут в названии, но могут не соответствовать их нумерации на сервисе. В этом случае можно проверить, был ли загружен некоторый архив на сервис (и у него есть номер) либо нет:

hcl-get -r /полный/путь/имя.tar.(xz/bz2/gz)

Работа с комментариями

Теперь, когда проба оборудования успешно загружена на сервер (дожидаться обработки данных пробы прежде, чем добавлять комментарий, вовсе необязательно: если проба была успешно загружена и ей был присвоен номер, то комментарий можно добавлять сразу же после этого события), хотелось бы написать несколько строк о работоспособности имеющегося оборудования. Другими словами, мы хотим прокомментировать сухой язык статистики, которым составлены отчёты о нашем оборудовании.

Пишем либо мысленно набрасываем сам комментарий на тему отправленных ранее данных, с учётом следующих условий (использование любого текстового редактора на выбор и применяемого форматирования не являются частью условий):

  • длина комментария в данный момент ограничена пятью килобайтами (на мой взгляд, этого вполне достаточно, но этот лимит может быть пересмотрен)
  • кодировка комментария может быть либо utf-8 либо ascii и это должен быть обычный текстовый файл (но не .doc и т.п.) с произвольным расширением (например, это может быть и .log файл) либо вообще без расширения
  • для удобства манипулирования комментарием, если вы хотите отправлять его файлом, лучше всего комментарий сохранить в файл ~/.hcl-get/имя.расширение , но можно сохранить файл и в другое место, главное при этом помнить полный путь до файла с комментарием

Если комментарий не планируется слишком большим и вполне умещается на одной строке (в рамках разумного), то всё вышеперечисленное можно пропустить и перейти к непосредственному добавлению комментария. В простейшем случае достаточно запустить диалоговый режим добавления комментария

Можно несколько конкретизировать запрос, например, указав номер пробы и комментарий к ней в одной строке (в этом случае после нажатия на Enter комментарий отправится на сервис и будет добавлен к пробе)

hcl-get -c номер комментарий

Если имеется файл комментария в домашней директории ~/.hcl-get/имя.расширение , то команда для добавления будет

Если файл комментария располагается по пути /полный/путь/имя.расширение , то команда будет

hcl-get -c /полный/путь/имя.расширение

В двух последних случаях, а также при запуске диалогового режима добавления комментария будет выдан список найденных в директории ~/.hcl-get проб для выбора комментируемой пробы:

Читайте также:  Create file in java on linux

Hcl-get-comment.png

Выбор подразумевает либо номер строки, которая содержит информацию о нужной пробе из всего списка обнаруженных в ~/.hcl-get либо имя архива с расширением, если вы хотите указать пробу по имени файла из директории ~/.hcl-get , либо полный путь к архиву с пробой для случая его расположения вне каталога ~/.hcl-get . Также запрос на указание имени архива с пробой будет выдан в случае, если не удалось обнаружить проб в ~/.hcl-get .

См. справку по программе ( hcl-get —help ) для полного представления о возможностях конкретизировать запрос на добавление комментария.

Получение содержимого комментария

После того, как комментарий успешно отправлен, к его содержимому можно обратиться командой

где номер присвоен пробе оборудования сервисом.

Получение содержимого лог файлов

Просмотреть список доступных логов для пробы можно командой

где номер присвоен пробе сервисом. Содержимое конкретного лога из списка по команде выше можно получить командой

Поиск

Если в базе присутствуют данные, которые кто-либо загружал, то можно выполнить поиск по базе, который не чувствителен к регистру. Поиск можно выполнять по следующим категориям данных:

Статистика сервиса

Количество загруженных на сервис проб и количество добавленных комментариев можно узнать, выполнив команду

Получить количество добавленных комментариев

Получить количество загруженных проб

Удаление пробы с сервера

Если возникла необходимость в удалении загруженных ранее данных пробы с сервера (и комментария, если он был добавлен), то для удаления следует выполнить команду

при этом запустится диалоговый режим выбора пробы для удаления:

Hcl-get-report-purge.png

Внимание! Для активации данного режима не предусмотрен короткий параметр запуска (см. hcl-get —help ).

Режим прямых запросов

Имеется возможность (правда она задумывалась больше как отладочная, но может быть использована и практически, поскольку не убрана из возможностей клиента) отправлять запросы на сервер в тех форматах, как они описаны в статье о самом сервисе. Команда для такого запроса будет

Примечания

  1. ↑https://forum.altlinux.org/index.php?topic=40993.msg326219#msg326219
  2. ↑ Начальные наброски, сделанные для данной статьи доступны на форуме ALT Linux
  3. ↑ Владельцам p8/сизифа следует иметь ввиду ошибку altbug #32222

Источник

Introduction to HCL¶

HCL-based configuration is built from two main constructs: arguments and blocks. The following is an example of a configuration language for a hypothetical application:

io_mode = "async" service "http" "web_proxy" < listen_addr = "127.0.0.1:8080" process "main" < command = ["/usr/local/bin/awesome-app", "server"] >process "mgmt" < command = ["/usr/local/bin/awesome-app", "mgmt"] >>

In the above example, io_mode is a top-level argument, while service introduces a block. Within the body of a block, further arguments and nested blocks are allowed. A block type may also expect a number of labels, which are the quoted names following the service keyword in the above example.

The specific keywords io_mode , service , process , etc here are application-defined. HCL provides the general block structure syntax, and can validate and decode configuration based on the application’s provided schema.

Читайте также:  Показывать скрытые файлы линукс

HCL is a structured configuration language rather than a data structure serialization language. This means that unlike languages such as JSON, YAML, or TOML, HCL is always decoded using an application-defined schema.

However, HCL does have a JSON-based alternative syntax, which allows the same structure above to be generated using a standard JSON serializer when users wish to generate configuration programmatically rather than hand-write it:

 "io_mode": "async", "service":  "http":  "web_proxy":  "listen_addr": "127.0.0.1:8080", "process":  "main":  "command": ["/usr/local/bin/awesome-app", "server"] >, "mgmt":  "command": ["/usr/local/bin/awesome-app", "mgmt"] >, > > > > > 

The calling application can choose which syntaxes to support. JSON syntax may not be important or desirable for certain applications, but it is available for applications that need it. The schema provided by the calling application allows JSON input to be properly decoded even though JSON syntax is ambiguous in various ways, such as whether a JSON object is representing a nested block or an object expression.

The collection of arguments and blocks at a particular nesting level is called a body. A file always has a root body containing the top-level elements, and each block also has its own body representing the elements within it.

The term “attribute” can also be used to refer to what we’ve called an “argument” so far. The term “attribute” is also used for the fields of an object value in argument expressions, and so “argument” is used to refer specifically to the type of attribute that appears directly within a body.

The above examples show the general “texture” of HCL-based configuration. The full details of the syntax are covered in the language specifications.

Once the language specification documents have settled into a final location, link them from above.

Argument Expressions¶

The value of an argument can be a literal value shown above, or it may be an expression to allow arithmetic, deriving one value from another, etc.

listen_addr = env.LISTEN_ADDR

Built-in arithmetic and comparison operators are automatically available in all HCL-based configuration languages. A calling application may optionally provide variables that users can reference, like env in the above example, and custom functions to transform values in application-specific ways.

Full details of the expression syntax are in the HCL native syntax specification. Since JSON does not have an expression syntax, JSON-based configuration files use the native syntax expression language embedded inside JSON strings.

Once the language specification documents have settled into a final location, link to the native syntax specification from above.

Источник

Оцените статью
Adblock
detector