pubnub_blocks – Модуль управления блоками PubNub
Описание
- Этот модуль позволяет Ansible взаимодействовать с инфраструктурой PubNub BLOCKS, предоставляя следующие операции: создание/удаление, запуск/остановка и переименование блоков, а также создание/модификацию/удаление обработчиков событий.
Требования
Ниже перечислены требования, которые необходимы на хосте, выполняющем этот модуль.
- python >= 2.7
- pubnub_blocks_client >= 1.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| account - добавлено в 2.4 | Имя учетной записи PubNub, из которой application будет использоваться для управления блоками.Будет использоваться учетная запись пользователя, если значение не задано или пустое. | |
| application - / обязательно | Имя целевого приложения PubNub, для которого будет выполнена настройка конфигурации блоков на конкретном keyset. | |
| cache - | По умолчанию: {} | В случае использования модуля управления блоками несколько раз в рамках одного выполнения, рекомендуется включить кеширование, чтобы предыдущий модуль делился собранными данными и передавал их в этот параметр. |
| changes - | По умолчанию: {} | Список полей, которые должны быть изменены самим блоком (не влияет на обработчики событий). Возможные варианты изменений: name. |
| description - | По умолчанию: "Новый блок" | Краткое описание блока, которое будет отображаться на admin.pubnub.com. Используется только в случае, если блок не существует, и не будет изменять описание существующего блока. |
| email - | Электронная почта из учетной записи, для которой должен быть начат новый сеанс. Не требуется, если cache содержит результат вызова предыдущего модуля (в рамках одного выполнения). | |
| event_handlers - | По умолчанию: [] | Список обработчиков событий, которые должны быть обновлены для указанного блока name.Каждая запись для нового обработчика событий должна содержать: name, src, channels, event. name используется как имя обработчика событий, которое можно использовать позже для внесения изменений.src - полный путь к файлу с кодом обработчика событий.channels - имя канала, из которого обработчик событий ожидает событий.event - тип события, способный активировать обработчик событий: js-before-publish, js-after-publish, js-after-presence.Каждая запись для существующих обработчиков должна содержать name (для идентификации целевого обработчика). Остальные параметры (src, channels и event) могут быть добавлены, если требуются изменения.Можно переименовать обработчик событий, добавив changes ключ в данные обработчика и передав словарь, который будет содержать единственный ключ name, где следует указать новое имя.Для удаления определенного обработчика событий можно установить state для него в absent, и он будет удален. |
| keyset - / обязательно | Имя набора ключей приложения, привязанного к управляемым блокам. | |
| name - / обязательно | Имя управляемого блока, которое будет отображаться на admin.pubnub.com. | |
| password - | Пароль, соответствующий учетной записи, к которой относится указанный email.Не требуется, если cache содержит результат вызова предыдущего модуля (в рамках одного выполнения). | |
| state - |
| Предполагаемое состояние блока после завершения процесса создания/обновления обработчиков событий. |
| validate_certs boolean |
| Этот ключ позволяет пропустить проверку сертификатов при выполнении вызовов REST API. Иногда на хосте могут возникнуть проблемы с сертификатами, что приведет к проблемам при вызове REST API PubNub. Если проверка должна быть пропущена, False должно быть передано в этот параметр. |
Примеры
# Event handler create example.
- name: Create single event handler
pubnub_blocks:
email: '{{ email }}'
password: '{{ password }}'
application: '{{ app_name }}'
keyset: '{{ keyset_name }}'
name: '{{ block_name }}'
event_handlers:
-
src: '{{ path_to_handler_source }}'
name: '{{ handler_name }}'
event: 'js-before-publish'
channels: '{{ handler_channel }}'
# Change event handler trigger event type.
- name: Change event handler 'event'
pubnub_blocks:
email: '{{ email }}'
password: '{{ password }}'
application: '{{ app_name }}'
keyset: '{{ keyset_name }}'
name: '{{ block_name }}'
event_handlers:
-
name: '{{ handler_name }}'
event: 'js-after-publish'
# Stop block and event handlers.
- name: Stopping block
pubnub_blocks:
email: '{{ email }}'
password: '{{ password }}'
application: '{{ app_name }}'
keyset: '{{ keyset_name }}'
name: '{{ block_name }}'
state: stop
# Multiple module calls with cached result passing
- name: Create '{{ block_name }}' block
register: module_cache
pubnub_blocks:
email: '{{ email }}'
password: '{{ password }}'
application: '{{ app_name }}'
keyset: '{{ keyset_name }}'
name: '{{ block_name }}'
state: present
- name: Add '{{ event_handler_1_name }}' handler to '{{ block_name }}'
register: module_cache
pubnub_blocks:
cache: '{{ module_cache }}'
application: '{{ app_name }}'
keyset: '{{ keyset_name }}'
name: '{{ block_name }}'
state: present
event_handlers:
-
src: '{{ path_to_handler_1_source }}'
name: '{{ event_handler_1_name }}'
channels: '{{ event_handler_1_channel }}'
event: 'js-before-publish'
- name: Add '{{ event_handler_2_name }}' handler to '{{ block_name }}'
register: module_cache
pubnub_blocks:
cache: '{{ module_cache }}'
application: '{{ app_name }}'
keyset: '{{ keyset_name }}'
name: '{{ block_name }}'
state: present
event_handlers:
-
src: '{{ path_to_handler_2_source }}'
name: '{{ event_handler_2_name }}'
channels: '{{ event_handler_2_channel }}'
event: 'js-before-publish'
- name: Start '{{ block_name }}' block
register: module_cache
pubnub_blocks:
cache: '{{ module_cache }}'
application: '{{ app_name }}'
keyset: '{{ keyset_name }}'
name: '{{ block_name }}'
state: started
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| module_cache словарь | всегда | Кэшированная информация об учетной записи. В случае использования модуля несколько раз в рамках одного выполнения, лучше передавать кэшированные данные в последующие вызовы модуля для ускорения процесса. |
Статус
- Данный модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- PubNub <support@pubnub.com> (@pubnub)
- Sergey Mamontov <sergey@pubnub.com> (@parfeon)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/pubnub_blocks_module.html