##################################
Добавление пользовательских данных
##################################
При добавлении пользовательских данных следует обратить внимание на:
- Пользовательские данные рассматриваются как opaque data: что отдано, то получено обратно. Вычислительная среда читает и пишет метаданные в любое время в течение времени жизни экземпляра.
- Максимальный размер пользовательских данных — 16 KB. Это ограничение для данных в исходном формате, не закодированных в 64-разрядный код.
- Пользовательские данные должны быть закодированы в 64-разрядный код перед передачей в API. Инструменты командной строки EC2 выполняют перекодировку в 64-разрядный код.
- Через пользовательские данные в экземпляр могут быть переданы настройки ``cloud-init``.
**********
Cloud-init
**********
`Сloud-init `_ позволяет производить настройку экземпляра на его старте.
Для этого необходимо передать инструкции для ``cloud-init`` в атрибут *user-data* в формате YAML.
``cloud-init`` доступен в большинстве современных операционных систем Linux и FreeBSD.
Разбиение дисков с использованием ``cloud-init``
================================================
.. note:: Вы можете использовать ``cloud-init`` версии 0.7.9 или старше для автоматического создания разделов дисков экземпляра.
.. dropdown:: ``user-data``
.. code-block:: yaml
:name: user-data-label
#cloud-config
merge_how: "dict(recurse_array)+list(recurse_list,recurse_str)+str()"
cloud_init_modules:
- disk_setup
disk_setup:
ebs2:
table_type: 'mbr'
layout:
- [66, 83]
- [33, 82]
overwrite: true
В приведённом выше примере используются следующие настройки:
- *merge_how* — Опция необходима для применения настроек, переданных в *user-data*.
- *cloud_init_modules* — Список используемых модулей ``cloud-init``.
- *disk_setup* — Модуль предоставляет возможность разбиения диска на разделы.
- *ebs2* — Имя блочного устройства, ассоциированного с дополнительным EBS-диском.
- *table_type* — Опция определяет тип раздела. Возможны типы разделов ``mbr`` или ``gpt``.
- *layout* — Опция определяет то, каким образом будут размечены разделы.
- *overwrite* — Если ``true``, проверки на наличие ранее существовавших разделов и файловых систем будут проигнорированы.
.. note::
Дополнительную информацию по модулю ``disk_setup`` можно получить в официальной документации `cloud-init `_.