Spec-Zone.ru › Ansible

Модуль community.general.redfish_command — управление контроллерами внеполосного управления с помощью API Redfish

Примечание

Этот модуль входит в коллекцию community.general (версия 12.6.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в состав ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.general.

Чтобы использовать её в плейбуке, укажите: community.general.redfish_command.

  • Обзор
  • Параметры
  • Атрибуты
  • Примеры
  • Возвращаемые значения

Обзор

  • Формирует URI Redfish локально и отправляет их на удалённые контроллеры внеполосного управления для выполнения действий.
  • Управляет контроллером внеполосного управления, например перезагрузкой и ведением журналов.
  • Управляет учётными записями пользователей контроллера внеполосного управления, например добавляет, удаляет и обновляет их.
  • Управляет питанием системы, например включает и выключает её, выполняет штатную или принудительную перезагрузку.

Параметры

Параметр

Комментарии

account_properties

словарь

добавлено в community.general 0.2.0

Свойства службы учётных записей, которые нужно обновить.

По умолчанию: {}

account_types

псевдонимы: account_accounttypes

список / элементы=строка

добавлено в community.general 7.2.0

Массив типов учётных записей, применяемых к учётной записи пользователя.

auth_token

строка

добавлено в community.general 2.3.0

Токен безопасности для аутентификации на контроллере внеполосного управления.

baseuri

строка / обязательный

Базовый URI контроллера внеполосного управления.

bios_attributes

словарь

добавлено в community.general 6.4.0

Атрибуты BIOS, значения которых нужно проверить на указанном сервере.

boot_next

строка

Целевой объект BootNext, если для bootdevice задано значение “UefiBootNext”.

boot_override_mode

строка

добавлено в community.general 3.5.0

Режим загрузки при использовании переопределения.

Варианты:

  • "Legacy"
  • "UEFI"

bootdevice

строка

Устройство загрузки при настройке конфигурации загрузки.

ca_path

путь

добавлено в community.general 10.6.0

Файл в формате PEM, содержащий сертификат ЦС для проверки.

Используется только, если validate_certs=true.

category

строка / обязательный

Категория для выполнения на контроллере внеполосного управления.

ciphers

список / элементы=строка

добавлено в community.general 9.2.0

Шифры TLS/SSL, используемые для запроса.

Если указан список, все шифры объединяются по порядку с помощью :.

Подробнее см. в описании формата списка шифров OpenSSL.

Доступные шифры зависят от версий Python и OpenSSL/LibreSSL.

command

список / элементы=строка / обязательный

Список команд для выполнения на контроллере внеполосного управления.

id

псевдонимы: account_id

строка

Идентификатор учётной записи для удаления или изменения.

Также может использоваться при создании учётной записи для обхода проблем с реализацией у поставщика, когда идентификатор нового пользователя требуется в запросе POST.

new_password

псевдонимы: account_password

строка

Новый пароль учётной записи для добавления или изменения.

new_username

псевдонимы: account_username

строка

Имя пользователя учётной записи для добавления, удаления или изменения.

oem_account_types

псевдонимы: account_oemaccounttypes

список / элементы=строка

добавлено в community.general 7.2.0

Массив типов учётных записей OEM, применяемых к учётной записи пользователя.

password

строка

Пароль для аутентификации на контроллере внеполосного управления.

reset_to_defaults_mode

строка

добавлено в community.general 8.6.0

Режим, применяемый при сбросе к значениям по умолчанию.

Варианты:

  • "ResetAll"
  • "PreserveNetworkAndUsers"
  • "PreserveNetwork"

resource_id

строка

добавлено в community.general 0.2.0

Идентификатор системы, менеджера или шасси для изменения.

roleid

псевдонимы: account_roleid

строка

Роль учётной записи для добавления или изменения.

session_uri

строка

добавлено в community.general 2.3.0

URI ресурса сеанса.

strip_etag_quotes

логическое значение

добавлено в community.general 3.7.0

Удаляет кавычки вокруг etag, используемого в заголовке If-Match запросов PATCH.

Используйте этот параметр только для обхода некорректной реализации поставщика, при которой If-Match соответствует только строке etag без кавычек.

Варианты:

  • false ← (по умолчанию)
  • true

timeout

целое число

Тайм-аут в секундах для HTTP-запросов к контроллеру внеполосного управления.

В community.general 9.0.0 значение этого параметра по умолчанию изменено с 10 на 60.

По умолчанию: 60

uefi_target

строка

Целевой объект загрузки UEFI, если для bootdevice задано значение “UefiTarget”.

update_apply_time

строка

добавлено в community.general 6.1.0

Время применения обновления.

Варианты:

  • "Immediate"
  • "OnReset"
  • "AtMaintenanceWindowStart"
  • "InMaintenanceWindowOnReset"
  • "OnStartUpdateRequest"

update_creds

словарь

добавлено в community.general 0.2.0

Учётные данные для получения образа обновления.

password

строка

Пароль для получения образа обновления.

username

строка

Имя пользователя для получения образа обновления.

update_custom_oem_header

строка

добавлено в community.general 10.1.0

Необязательный заголовок OEM, передаваемый отдельно как данные формы при отправке обновления через HTTP Multipart.

Согласно спецификации DMTF Redfish 12.6.2.2, заголовок должен начинаться с “Oem”.

Подробнее см. https://www.dmtf.org/sites/default/files/standards/documents/DSP0266_1.21.0.html.

Если параметр задан, необходимо также указать update_custom_oem_params.

update_custom_oem_mime_type

строка

добавлено в community.general 10.1.0

Тип MIME для пользовательских свойств OEM при отправке обновлений через HTTP Multipart Push.

update_custom_oem_params

любой

добавлено в community.general 10.1.0

Пользовательские свойства OEM для обновлений HTTP Multipart Push.

Если параметр задан, необходимо также указать update_custom_oem_header.

Свойства передаются без проверки или преобразования со стороны Ansible. Это означает, что содержимым может быть файл, строка или любые другие данные. Если содержимое представляет собой словарь, который нужно преобразовать в JSON, перед передачей в этот модуль его необходимо преобразовать в JSON с помощью фильтра ansible.builtin.to_json.

update_handle

строка

добавлено в community.general 6.1.0

Дескриптор для проверки состояния выполняющегося обновления.

update_image_file

путь

добавлено в community.general 7.1.0

Имя файла образа для обновления, при необходимости с путём.

update_image_uri

строка

добавлено в community.general 0.2.0

URI образа для обновления.

update_oem_params

словарь

добавлено в community.general 7.5.0

Свойства для обновлений HTTP Multipart Push.

update_protocol

строка

добавлено в community.general 0.2.0

Протокол для обновления.

update_targets

список / элементы=строка

добавлено в community.general 0.2.0

Список URI целевых ресурсов, к которым применяется обновление.

По умолчанию: []

update_username

псевдонимы: account_updatename

строка

добавлено в community.general 0.2.0

Новое имя пользователя для обновления account_username.

username

строка

Имя пользователя для аутентификации на контроллере внеполосного управления.

validate_certs

логическое значение

добавлено в community.general 10.6.0

Если false, сертификаты TLS/SSL не проверяются.

Установите значение true, чтобы включить проверку сертификатов. Следует использовать вместе с ca_path.

Варианты:

  • false ← (по умолчанию)
  • true

virtual_media

словарь

добавлено в community.general 0.2.0

Параметры команд VirtualMedia.

image_url

строка

URL образа для подключения или извлечения.

inserted

логическое значение

Указывает, что после выполнения команды образ считается подключённым.

Варианты:

  • false
  • true ← (по умолчанию)

media_types

список / элементы=строка

Список типов носителей, подходящих для образа.

По умолчанию: []

password

строка

Пароль для доступа к URL образа.

transfer_method

строка

Метод передачи для использования с образом.

transfer_protocol_type

строка

Сетевой протокол для использования с образом.

username

строка

Имя пользователя для доступа к URL образа.

write_protected

логическое значение

Указывает, что носитель считается защищённым от записи.

Варианты:

  • false
  • true ← (по умолчанию)

wait

логическое значение

добавлено в community.general 9.1.0

Ожидать, пока служба снова станет готова.

Варианты:

  • false ← (по умолчанию)
  • true

wait_timeout

целое число

добавлено в community.general 9.1.0

Максимальное время ожидания готовности службы, по истечении которого ожидание прекращается.

По умолчанию: 120

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: нет

Может выполняться в check_mode и возвращать прогноз статуса изменений без внесения изменений в целевую систему.

diff_mode

Поддержка: нет

В режиме diff возвращает сведения об изменениях (или о том, что, возможно, нужно изменить в check_mode).

Примеры

- name: Restart system power gracefully
  community.general.redfish_command:
    category: Systems
    command: PowerGracefulRestart
    resource_id: 437XR1138R2
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Turn system power off
  community.general.redfish_command:
    category: Systems
    command: PowerForceOff
    resource_id: 437XR1138R2

- name: Restart system power forcefully
  community.general.redfish_command:
    category: Systems
    command: PowerForceRestart
    resource_id: 437XR1138R2

- name: Shutdown system power gracefully
  community.general.redfish_command:
    category: Systems
    command: PowerGracefulShutdown
    resource_id: 437XR1138R2

- name: Turn system power on
  community.general.redfish_command:
    category: Systems
    command: PowerOn
    resource_id: 437XR1138R2

- name: Reboot system power
  community.general.redfish_command:
    category: Systems
    command: PowerReboot
    resource_id: 437XR1138R2

- name: Set one-time boot device to {{ bootdevice }}
  community.general.redfish_command:
    category: Systems
    command: SetOneTimeBoot
    resource_id: 437XR1138R2
    bootdevice: "{{ bootdevice }}"
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Set one-time boot device to UefiTarget of "/0x31/0x33/0x01/0x01"
  community.general.redfish_command:
    category: Systems
    command: SetOneTimeBoot
    resource_id: 437XR1138R2
    bootdevice: "UefiTarget"
    uefi_target: "/0x31/0x33/0x01/0x01"
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Set one-time boot device to BootNext target of "Boot0001"
  community.general.redfish_command:
    category: Systems
    command: SetOneTimeBoot
    resource_id: 437XR1138R2
    bootdevice: "UefiBootNext"
    boot_next: "Boot0001"
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Set persistent boot device override
  community.general.redfish_command:
    category: Systems
    command: EnableContinuousBootOverride
    resource_id: 437XR1138R2
    bootdevice: "{{ bootdevice }}"
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Set one-time boot to BiosSetup
  community.general.redfish_command:
    category: Systems
    command: SetOneTimeBoot
    boot_next: BiosSetup
    boot_override_mode: Legacy
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Disable persistent boot device override
  community.general.redfish_command:
    category: Systems
    command: DisableBootOverride

- name: Set system indicator LED to blink using security token for auth
  community.general.redfish_command:
    category: Systems
    command: IndicatorLedBlink
    resource_id: 437XR1138R2
    baseuri: "{{ baseuri }}"
    auth_token: "{{ result.session.token }}"

- name: Add user
  community.general.redfish_command:
    category: Accounts
    command: AddUser
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    new_username: "{{ new_username }}"
    new_password: "{{ new_password }}"
    roleid: "{{ roleid }}"

- name: Add user with specified account types
  community.general.redfish_command:
    category: Accounts
    command: AddUser
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    new_username: "{{ new_username }}"
    new_password: "{{ new_password }}"
    roleid: "{{ roleid }}"
    account_types:
      - Redfish
      - WebUI

- name: Add user using new option aliases
  community.general.redfish_command:
    category: Accounts
    command: AddUser
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    account_username: "{{ account_username }}"
    account_password: "{{ account_password }}"
    account_roleid: "{{ account_roleid }}"

- name: Delete user
  community.general.redfish_command:
    category: Accounts
    command: DeleteUser
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    account_username: "{{ account_username }}"

- name: Disable user
  community.general.redfish_command:
    category: Accounts
    command: DisableUser
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    account_username: "{{ account_username }}"

- name: Enable user
  community.general.redfish_command:
    category: Accounts
    command: EnableUser
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    account_username: "{{ account_username }}"

- name: Add and enable user
  community.general.redfish_command:
    category: Accounts
    command: AddUser,EnableUser
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    new_username: "{{ new_username }}"
    new_password: "{{ new_password }}"
    roleid: "{{ roleid }}"

- name: Update user password
  community.general.redfish_command:
    category: Accounts
    command: UpdateUserPassword
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    account_username: "{{ account_username }}"
    account_password: "{{ account_password }}"

- name: Update user role
  community.general.redfish_command:
    category: Accounts
    command: UpdateUserRole
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    account_username: "{{ account_username }}"
    roleid: "{{ roleid }}"

- name: Update user name
  community.general.redfish_command:
    category: Accounts
    command: UpdateUserName
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    account_username: "{{ account_username }}"
    account_updatename: "{{ account_updatename }}"

- name: Update user name
  community.general.redfish_command:
    category: Accounts
    command: UpdateUserName
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    account_username: "{{ account_username }}"
    update_username: "{{ update_username }}"

- name: Update AccountService properties
  community.general.redfish_command:
    category: Accounts
    command: UpdateAccountServiceProperties
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    account_properties:
      AccountLockoutThreshold: 5
      AccountLockoutDuration: 600

- name: Update user AccountTypes
  community.general.redfish_command:
    category: Accounts
    command: UpdateUserAccountTypes
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    account_username: "{{ account_username }}"
    account_types:
      - Redfish
      - WebUI

- name: Clear Manager Logs with a timeout of 20 seconds
  community.general.redfish_command:
    category: Manager
    command: ClearLogs
    resource_id: BMC
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    timeout: 20

- name: Create session
  community.general.redfish_command:
    category: Sessions
    command: CreateSession
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
  register: result

- name: Set chassis indicator LED to blink using security token for auth
  community.general.redfish_command:
    category: Chassis
    command: IndicatorLedBlink
    resource_id: 1U
    baseuri: "{{ baseuri }}"
    auth_token: "{{ result.session.token }}"

- name: Delete session using security token created by CreateSesssion above
  community.general.redfish_command:
    category: Sessions
    command: DeleteSession
    baseuri: "{{ baseuri }}"
    auth_token: "{{ result.session.token }}"
    session_uri: "{{ result.session.uri }}"

- name: Clear Sessions
  community.general.redfish_command:
    category: Sessions
    command: ClearSessions
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Simple update
  community.general.redfish_command:
    category: Update
    command: SimpleUpdate
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    update_image_uri: https://example.com/myupdate.img

- name: Simple update with additional options
  community.general.redfish_command:
    category: Update
    command: SimpleUpdate
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    update_image_uri: //example.com/myupdate.img
    update_protocol: FTP
    update_targets:
      - /redfish/v1/UpdateService/FirmwareInventory/BMC
    update_creds:
      username: operator
      password: supersecretpwd

- name: Multipart HTTP push update; timeout is 600 seconds to allow for a large image transfer
  community.general.redfish_command:
    category: Update
    command: MultipartHTTPPushUpdate
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    timeout: 600
    update_image_file: ~/images/myupdate.img

- name: Multipart HTTP push with additional options; timeout is 600 seconds to allow for a large image transfer
  community.general.redfish_command:
    category: Update
    command: MultipartHTTPPushUpdate
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    timeout: 600
    update_image_file: ~/images/myupdate.img
    update_targets:
      - /redfish/v1/UpdateService/FirmwareInventory/BMC
    update_oem_params:
      PreserveConfiguration: false

- name: Multipart HTTP push with custom OEM options
  vars:
    oem_payload:
      ImageType: BMC
  community.general.redfish_command:
    category: Update
    command: MultipartHTTPPushUpdate
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    update_image_file: ~/images/myupdate.img
    update_targets:
      - /redfish/v1/UpdateService/FirmwareInventory/BMC
    update_custom_oem_header: OemParameters
    update_custom_oem_mime_type: "application/json"
    update_custom_oem_params: "{{ oem_payload | to_json }}"

- name: Perform requested operations to continue the update
  community.general.redfish_command:
    category: Update
    command: PerformRequestedOperations
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    update_handle: /redfish/v1/TaskService/TaskMonitors/735

- name: Insert Virtual Media
  community.general.redfish_command:
    category: Systems
    command: VirtualMediaInsert
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    virtual_media:
      image_url: 'http://example.com/images/SomeLinux-current.iso'
      media_types:
        - CD
        - DVD
    resource_id: 1

- name: Insert Virtual Media
  community.general.redfish_command:
    category: Manager
    command: VirtualMediaInsert
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    virtual_media:
      image_url: 'http://example.com/images/SomeLinux-current.iso'
      media_types:
        - CD
        - DVD
    resource_id: BMC

- name: Eject Virtual Media
  community.general.redfish_command:
    category: Systems
    command: VirtualMediaEject
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    virtual_media:
      image_url: 'http://example.com/images/SomeLinux-current.iso'
    resource_id: 1

- name: Eject Virtual Media
  community.general.redfish_command:
    category: Manager
    command: VirtualMediaEject
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    virtual_media:
      image_url: 'http://example.com/images/SomeLinux-current.iso'
    resource_id: BMC

- name: Restart manager power gracefully
  community.general.redfish_command:
    category: Manager
    command: GracefulRestart
    resource_id: BMC
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Restart manager power gracefully and wait for it to be available
  community.general.redfish_command:
    category: Manager
    command: GracefulRestart
    resource_id: BMC
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    wait: true

- name: Restart manager power gracefully
  community.general.redfish_command:
    category: Manager
    command: PowerGracefulRestart
    resource_id: BMC

- name: Turn manager power off
  community.general.redfish_command:
    category: Manager
    command: PowerForceOff
    resource_id: BMC

- name: Restart manager power forcefully
  community.general.redfish_command:
    category: Manager
    command: PowerForceRestart
    resource_id: BMC

- name: Shutdown manager power gracefully
  community.general.redfish_command:
    category: Manager
    command: PowerGracefulShutdown
    resource_id: BMC

- name: Turn manager power on
  community.general.redfish_command:
    category: Manager
    command: PowerOn
    resource_id: BMC

- name: Reboot manager power
  community.general.redfish_command:
    category: Manager
    command: PowerReboot
    resource_id: BMC

- name: Factory reset manager to defaults
  community.general.redfish_command:
    category: Manager
    command: ResetToDefaults
    resource_id: BMC
    reset_to_defaults_mode: ResetAll

- name: Verify BIOS attributes
  community.general.redfish_command:
    category: Systems
    command: VerifyBiosAttributes
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    bios_attributes:
      SubNumaClustering: "Disabled"
      WorkloadProfile: "Virtualization-MaxPerformance"

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

msg

строка

Сообщение с результатом действия или описанием ошибки.

Возвращается: всегда

Пример: "Action was successful"

return_values

словарь

добавлено в community.general 6.1.0

Словарь с данными ответа, относящимися к команде, полученными в результате действия.

Возвращается: при успешном выполнении

Пример: {"update_status": {"handle": "/redfish/v1/TaskService/TaskMonitors/735", "messages": [], "resets_requested": [], "ret": true, "status": "New"}}

Авторы

  • Jose Delarosa (@jose-delarosa)
  • T S Kushal (@TSKushal)

Ссылки коллекции

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Обратиться за помощью
  • Сообщить об ошибке
  • Предложить новую функцию
  • Общение

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/redfish_command_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API