From a9630abda2f48908bb4285adaef29a6fa9e9eaa4 Mon Sep 17 00:00:00 2001 From: Boris Glimcher Date: Tue, 6 Feb 2024 17:38:22 +0200 Subject: [PATCH] feat: fill bmc_fw_update role Signed-off-by: Boris Glimcher --- CHANGELOG.rst | 13 ++ changelogs/.plugin-cache.yaml | 23 ++ changelogs/changelog.yaml | 9 + changelogs/config.yaml | 31 +++ docs/.gitignore | 8 + docs/README.md | 0 docs/bmc_fw_update_role.rst | 202 ++++++++++++++++++ docs/index.rst | 17 +- docs/update_bmc_password_role.rst | 180 ++++++++++++++++ playbooks/firmware.yml | 8 + roles/bmc_factory_reset/tests/test.yml | 3 +- roles/bmc_fw_update/defaults/main.yml | 6 + roles/bmc_fw_update/meta/argument_specs.yml | 22 ++ roles/bmc_fw_update/tasks/main.yml | 84 ++++++++ roles/bmc_fw_update/tests/test.yml | 3 +- roles/bmc_fw_update/vars/main.yml | 8 + roles/bmc_reboot/tasks/main.yml | 12 ++ roles/bmc_reboot/tests/test.yml | 3 +- roles/enable_secure_boot/tests/test.yml | 3 +- roles/get_bmc_facts/tasks/main.yml | 17 ++ roles/get_bmc_facts/tests/test.yml | 3 +- .../meta/argument_specs.yml | 16 ++ roles/update_bmc_password/tasks/main.yml | 14 ++ roles/update_bmc_password/tests/test.yml | 3 +- 24 files changed, 681 insertions(+), 7 deletions(-) create mode 100644 CHANGELOG.rst create mode 100644 changelogs/.plugin-cache.yaml create mode 100644 changelogs/changelog.yaml create mode 100644 changelogs/config.yaml create mode 100644 docs/.gitignore delete mode 100644 docs/README.md create mode 100644 docs/bmc_fw_update_role.rst create mode 100644 docs/update_bmc_password_role.rst create mode 100644 playbooks/firmware.yml create mode 100644 roles/bmc_fw_update/meta/argument_specs.yml create mode 100644 roles/update_bmc_password/meta/argument_specs.yml diff --git a/CHANGELOG.rst b/CHANGELOG.rst new file mode 100644 index 0000000..c69502c --- /dev/null +++ b/CHANGELOG.rst @@ -0,0 +1,13 @@ +===================================== +OPI DPU Ansible Modules Release Notes +===================================== + +.. contents:: Topics + +v1.0.0 +====== + +New Roles +--------- + +- opi.dpu.bmc_fw_update - Firmware update of DPU BMC diff --git a/changelogs/.plugin-cache.yaml b/changelogs/.plugin-cache.yaml new file mode 100644 index 0000000..7ca73d7 --- /dev/null +++ b/changelogs/.plugin-cache.yaml @@ -0,0 +1,23 @@ +objects: + role: + bmc_fw_update: + description: Firmware update of DPU BMC + name: bmc_fw_update + version_added: 1.0.0 +plugins: + become: {} + cache: {} + callback: {} + cliconf: {} + connection: {} + filter: {} + httpapi: {} + inventory: {} + lookup: {} + module: {} + netconf: {} + shell: {} + strategy: {} + test: {} + vars: {} +version: 1.0.0 diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml new file mode 100644 index 0000000..fea284d --- /dev/null +++ b/changelogs/changelog.yaml @@ -0,0 +1,9 @@ +ancestor: null +releases: + 1.0.0: + objects: + role: + - description: Firmware update of DPU BMC + name: bmc_fw_update + namespace: null + release_date: '2024-02-20' diff --git a/changelogs/config.yaml b/changelogs/config.yaml new file mode 100644 index 0000000..25ad47d --- /dev/null +++ b/changelogs/config.yaml @@ -0,0 +1,31 @@ +changelog_filename_template: ../CHANGELOG.rst +changelog_filename_version_depth: 0 +changes_file: changelog.yaml +changes_format: combined +ignore_other_fragment_extensions: true +keep_fragments: false +mention_ancestor: true +new_plugins_after_name: removed_features +notesdir: fragments +prelude_section_name: release_summary +prelude_section_title: Release Summary +sections: + - - major_changes + - Major Changes + - - minor_changes + - Minor Changes + - - breaking_changes + - Breaking Changes / Porting Guide + - - deprecated_features + - Deprecated Features + - - removed_features + - Removed Features (previously deprecated) + - - security_fixes + - Security Fixes + - - bugfixes + - Bugfixes + - - known_issues + - Known Issues +title: OPI DPU Ansible Modules +trivial_section_name: trivial +use_fqcn: true diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..f0649db --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,8 @@ +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +# Created with antsibull-docs 2.7.0 + +/temp-rst +/build diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/bmc_fw_update_role.rst b/docs/bmc_fw_update_role.rst new file mode 100644 index 0000000..8d6a54c --- /dev/null +++ b/docs/bmc_fw_update_role.rst @@ -0,0 +1,202 @@ + +.. Document meta + +:orphan: + +.. |antsibull-internal-nbsp| unicode:: 0xA0 + :trim: + +.. meta:: + :antsibull-docs: 2.7.0 + +.. Anchors + +.. _ansible_collections.opi.dpu.bmc_fw_update_role: + +.. Title + +opi.dpu.bmc_fw_update role -- Firmware update of DPU BMC +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. Collection note + +.. note:: + This role is part of the `opi.dpu collection `_ (version 1.0.0). + + It is not included in ``ansible-core``. + To check whether it is installed, run :code:`ansible-galaxy collection list`. + + To install it use: :code:`ansible-galaxy collection install opi.dpu`. + + To use it in a playbook, specify: :code:`opi.dpu.bmc_fw_update`. + +.. contents:: + :local: + :depth: 2 + + +.. Entry point title + +Entry point ``main`` -- Firmware update of DPU BMC +-------------------------------------------------- + +.. version_added + +.. rst-class:: ansible-version-added + +New in opi.dpu 1.0.0 + +.. Deprecated + + +Synopsis +^^^^^^^^ + +.. Description + +- Update the Firmware of the DPU BMC from URL or local file. + +.. Requirements + + +.. Options + +Parameters +^^^^^^^^^^ + +.. tabularcolumns:: \X{1}{3}\X{2}{3} + +.. list-table:: + :width: 100% + :widths: auto + :header-rows: 1 + :class: longtable ansible-option-table + + * - Parameter + - Comments + + * - .. raw:: html + +
+
+ + .. _ansible_collections.opi.dpu.bmc_fw_update_role__parameter-main__bmc_fw_update_job_wait: + + .. rst-class:: ansible-option-title + + **bmc_fw_update_job_wait** + + .. raw:: html + + + + .. ansible-option-type-line:: + + :ansible-option-type:`boolean` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Whether to wait for job completion or not. + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry:`false` + - :ansible-option-choices-entry-default:`true` :ansible-option-choices-default-mark:`← (default)` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.opi.dpu.bmc_fw_update_role__parameter-main__bmc_fw_update_reboot: + + .. rst-class:: ansible-option-title + + **bmc_fw_update_reboot** + + .. raw:: html + + + + .. ansible-option-type-line:: + + :ansible-option-type:`boolean` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Provides the option to apply the update packages immediately or in the next reboot. + + If \ :emphasis:`reboot`\ is set to \ :literal:`true`\ , then the packages are applied immediately. + + If \ :emphasis:`reboot`\ is set to \ :literal:`false`\ , then the packages are staged and applied in the next reboot. + + Packages that do not require a reboot are applied immediately irrespective of I (reboot). + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry:`false` + - :ansible-option-choices-entry-default:`true` :ansible-option-choices-default-mark:`← (default)` + + + .. raw:: html + +
+ + +.. Attributes + + +.. Notes + + +.. Seealso + + + + +.. Extra links + +Collection links +~~~~~~~~~~~~~~~~ + +.. ansible-links:: + + - title: "Issue Tracker" + url: "https://github.com/opiproject/ansible-opi-dpu/issues" + external: true + - title: "Repository (Sources)" + url: "https://github.com/opiproject/ansible-opi-dpu" + external: true + + +.. Parsing errors + diff --git a/docs/index.rst b/docs/index.rst index 7c271d5..0aecbf3 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -26,7 +26,7 @@ Ansible modules for DPUs **Supported ansible-core versions:** -* 2.9.10 or newer +* 2.14.0 or newer .. ansible-links:: @@ -50,3 +50,18 @@ Plugin Index There are no plugins in the opi.dpu collection with automatically generated documentation. +Role Index +---------- + +These are the roles in the opi.dpu collection: + +* :ansplugin:`bmc_fw_update role ` -- Firmware update of DPU BMC +* :ansplugin:`update_bmc_password role ` -- Update Password of DPU BMC for a given user. + +.. toctree:: + :maxdepth: 1 + :hidden: + + bmc_fw_update_role + update_bmc_password_role + diff --git a/docs/update_bmc_password_role.rst b/docs/update_bmc_password_role.rst new file mode 100644 index 0000000..9142482 --- /dev/null +++ b/docs/update_bmc_password_role.rst @@ -0,0 +1,180 @@ + +.. Document meta + +:orphan: + +.. |antsibull-internal-nbsp| unicode:: 0xA0 + :trim: + +.. meta:: + :antsibull-docs: 2.7.0 + +.. Anchors + +.. _ansible_collections.opi.dpu.update_bmc_password_role: + +.. Title + +opi.dpu.update_bmc_password role -- Update Password of DPU BMC for a given user. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. Collection note + +.. note:: + This role is part of the `opi.dpu collection `_ (version 1.0.0). + + It is not included in ``ansible-core``. + To check whether it is installed, run :code:`ansible-galaxy collection list`. + + To install it use: :code:`ansible-galaxy collection install opi.dpu`. + + To use it in a playbook, specify: :code:`opi.dpu.update_bmc_password`. + +.. contents:: + :local: + :depth: 2 + + +.. Entry point title + +Entry point ``main`` -- Update Password of DPU BMC for a given user. +-------------------------------------------------------------------- + +.. version_added + +.. rst-class:: ansible-version-added + +New in opi.dpu 1.0.0 + +.. Deprecated + + +Synopsis +^^^^^^^^ + +.. Description + +- Update Password of DPU BMC for a given user. + +.. Requirements + + +.. Options + +Parameters +^^^^^^^^^^ + +.. tabularcolumns:: \X{1}{3}\X{2}{3} + +.. list-table:: + :width: 100% + :widths: auto + :header-rows: 1 + :class: longtable ansible-option-table + + * - Parameter + - Comments + + * - .. raw:: html + +
+
+ + .. _ansible_collections.opi.dpu.update_bmc_password_role__parameter-main__update_bmc_password_login_name: + + .. rst-class:: ansible-option-title + + **update_bmc_password_login_name** + + .. raw:: html + + + + .. ansible-option-type-line:: + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + DPU BMC username to change. + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.opi.dpu.update_bmc_password_role__parameter-main__update_bmc_password_new_pass: + + .. rst-class:: ansible-option-title + + **update_bmc_password_new_pass** + + .. raw:: html + + + + .. ansible-option-type-line:: + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + DPU BMC new password to apply for the given user. + + + .. raw:: html + +
+ + +.. Attributes + + +.. Notes + + +.. Seealso + + + + +.. Extra links + +Collection links +~~~~~~~~~~~~~~~~ + +.. ansible-links:: + + - title: "Issue Tracker" + url: "https://github.com/opiproject/ansible-opi-dpu/issues" + external: true + - title: "Repository (Sources)" + url: "https://github.com/opiproject/ansible-opi-dpu" + external: true + + +.. Parsing errors + diff --git a/playbooks/firmware.yml b/playbooks/firmware.yml new file mode 100644 index 0000000..bce9507 --- /dev/null +++ b/playbooks/firmware.yml @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) 2022-2024 Dell Inc, or its subsidiaries. + +- name: Update DPU Firmware + hosts: all + gather_facts: false + roles: + - bmc_fw_update diff --git a/roles/bmc_factory_reset/tests/test.yml b/roles/bmc_factory_reset/tests/test.yml index e7d1237..4b64417 100644 --- a/roles/bmc_factory_reset/tests/test.yml +++ b/roles/bmc_factory_reset/tests/test.yml @@ -1,5 +1,6 @@ --- -- hosts: localhost +- name: Factory resetd DPU to defaults + hosts: localhost remote_user: root roles: - bmc_factory_reset diff --git a/roles/bmc_fw_update/defaults/main.yml b/roles/bmc_fw_update/defaults/main.yml index 6c5dea3..41d1957 100644 --- a/roles/bmc_fw_update/defaults/main.yml +++ b/roles/bmc_fw_update/defaults/main.yml @@ -1,2 +1,8 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) 2022-2024 Dell Inc, or its subsidiaries. + --- # defaults file for bmc_fw_update + +bmc_fw_update_reboot: true +bmc_fw_update_job_wait: true diff --git a/roles/bmc_fw_update/meta/argument_specs.yml b/roles/bmc_fw_update/meta/argument_specs.yml new file mode 100644 index 0000000..7f5a336 --- /dev/null +++ b/roles/bmc_fw_update/meta/argument_specs.yml @@ -0,0 +1,22 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) 2022-2024 Dell Inc, or its subsidiaries. +--- +argument_specs: + main: + version_added: "1.0.0" + short_description: Firmware update of DPU BMC + description: + - Update the Firmware of the DPU BMC from URL or local file. + options: + bmc_fw_update_reboot: + description: + - Provides the option to apply the update packages immediately or in the next reboot. + - If I(reboot) is set to C(true), then the packages are applied immediately. + - If I(reboot) is set to C(false), then the packages are staged and applied in the next reboot. + - Packages that do not require a reboot are applied immediately irrespective of I (reboot). + type: bool + default: true + bmc_fw_update_job_wait: + description: Whether to wait for job completion or not. + type: bool + default: true diff --git a/roles/bmc_fw_update/tasks/main.yml b/roles/bmc_fw_update/tasks/main.yml index 2be7d44..f7aba8e 100644 --- a/roles/bmc_fw_update/tasks/main.yml +++ b/roles/bmc_fw_update/tasks/main.yml @@ -1,2 +1,86 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) 2022-2024 Dell Inc, or its subsidiaries. + --- # tasks file for bmc_fw_update + +- name: Get Firmware Inventory + ansible.builtin.include_role: + name: get_bmc_facts + register: get_bmc_facts_before + +- name: Print BMC Version + ansible.builtin.debug: + msg: "{{ bmc_firmware_version }}" + +- name: Download firmware image {{ bmc_fw_update_image.bmc }} + ansible.builtin.get_url: + url: "{{ bmc_fw_update_image.url }}/{{ bmc_fw_update_image.bmc }}" + dest: /tmp/{{ bmc_fw_update_image.bmc }} + mode: '0440' + delegate_to: localhost + +- name: Update BMC firmware of DPU + community.general.redfish_command: + category: Update + command: MultipartHTTPPushUpdate + baseuri: "{{ inventory_hostname }}" + username: "{{ dpu_bmc_username }}" + password: "{{ dpu_bmc_password }}" + timeout: 600 + update_image_file: "/tmp/{{ bmc_fw_update_image.bmc }}" + register: result_update_task + delegate_to: localhost + +- name: Extract task id from update task + ansible.builtin.set_fact: + bmc_firmware_update_taskid: "{{ result_update_task.return_values.update_status.handle }}" + +- name: Print TASK id for tracking + ansible.builtin.debug: + msg: "{{ result_update_task.return_values.update_status.handle }}" + +- name: Pause for 10 seconds for BMC to start task + ansible.builtin.pause: + seconds: 10 + +- name: Get the status of an update operation in a loop + community.general.redfish_info: + category: Update + command: GetUpdateStatus + baseuri: "{{ inventory_hostname }}" + username: "{{ dpu_bmc_username }}" + password: "{{ dpu_bmc_password }}" + update_handle: "{{ result_update_task.return_values.update_status.handle }}" + register: update_progress + until: update_progress.redfish_facts.update_status.status != 'Running' + retries: 60 + delay: 30 + delegate_to: localhost + +- name: Validate task was completed + ansible.builtin.assert: { that: "update_progress.redfish_facts.update_status.status == 'Completed'" } + +- name: Reboot BMC to apply new firmware of DPU + ansible.builtin.include_role: + name: bmc_reboot + when: + - bmc_fw_update_reboot is true + +- name: Pause for 60 seconds for BMC to Reboot + ansible.builtin.pause: + seconds: 60 + +- name: Get Firmware Inventory + ansible.builtin.include_role: + name: get_bmc_facts + register: get_bmc_facts_after + +- name: Print BMC Version + ansible.builtin.debug: + msg: "{{ get_bmc_facts_after.redfish_facts.firmware.entries[0].Version }}" + +- name: Validate fw image changed from before + ansible.builtin.assert: + that: + - get_bmc_facts_before.redfish_facts.firmware.entries[0].Version != get_bmc_facts_after.redfish_facts.firmware.entries[0].Version diff --git a/roles/bmc_fw_update/tests/test.yml b/roles/bmc_fw_update/tests/test.yml index cc9d540..692fd1a 100644 --- a/roles/bmc_fw_update/tests/test.yml +++ b/roles/bmc_fw_update/tests/test.yml @@ -1,5 +1,6 @@ --- -- hosts: localhost +- name: Firmware update of the DPU BMC + hosts: localhost remote_user: root roles: - bmc_fw_update diff --git a/roles/bmc_fw_update/vars/main.yml b/roles/bmc_fw_update/vars/main.yml index 4abc8d8..a316007 100644 --- a/roles/bmc_fw_update/vars/main.yml +++ b/roles/bmc_fw_update/vars/main.yml @@ -1,2 +1,10 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) 2022-2024 Dell Inc, or its subsidiaries. + --- # vars file for bmc_fw_update + +bmc_fw_update_image: + url: https://content.mellanox.com/BlueField/BMC/23.10-1-oct-2023 + bmc: bf3-bmc-23.10-5_opn.fwpkg + cec: cec1736-ecfw-00.02.0152.0000-n02-rel-prod.fwpkg diff --git a/roles/bmc_reboot/tasks/main.yml b/roles/bmc_reboot/tasks/main.yml index 812eb30..ec312c1 100644 --- a/roles/bmc_reboot/tasks/main.yml +++ b/roles/bmc_reboot/tasks/main.yml @@ -1,2 +1,14 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) 2022-2024 Dell Inc, or its subsidiaries. + --- # tasks file for bmc_reboot + +- name: Reboot BMC to apply new firmware of DPU + community.general.redfish_command: + category: Manager + command: GracefulRestart + baseuri: "{{ inventory_hostname }}" + username: "{{ dpu_bmc_username }}" + password: "{{ dpu_bmc_password }}" + delegate_to: localhost diff --git a/roles/bmc_reboot/tests/test.yml b/roles/bmc_reboot/tests/test.yml index c3bad8d..8b58446 100644 --- a/roles/bmc_reboot/tests/test.yml +++ b/roles/bmc_reboot/tests/test.yml @@ -1,5 +1,6 @@ --- -- hosts: localhost +- name: Reset DPU BMC + hosts: localhost remote_user: root roles: - bmc_reboot diff --git a/roles/enable_secure_boot/tests/test.yml b/roles/enable_secure_boot/tests/test.yml index 2114c99..2c99e96 100644 --- a/roles/enable_secure_boot/tests/test.yml +++ b/roles/enable_secure_boot/tests/test.yml @@ -1,5 +1,6 @@ --- -- hosts: localhost +- name: Enable DPU Secure boot + hosts: localhost remote_user: root roles: - enable_secure_boot diff --git a/roles/get_bmc_facts/tasks/main.yml b/roles/get_bmc_facts/tasks/main.yml index e77ab00..c861ee6 100644 --- a/roles/get_bmc_facts/tasks/main.yml +++ b/roles/get_bmc_facts/tasks/main.yml @@ -1,2 +1,19 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) 2022-2024 Dell Inc, or its subsidiaries. + --- # tasks file for get_bmc_facts + +- name: Get Firmware Inventory + community.general.redfish_info: + category: Update + command: GetFirmwareInventory + baseuri: "{{ inventory_hostname }}" + username: "{{ dpu_bmc_username }}" + password: "{{ dpu_bmc_password }}" + register: result + delegate_to: localhost + +- name: Extract BMC firmware version from inventory + ansible.builtin.set_fact: + bmc_firmware_version: "{{ result.redfish_facts.firmware.entries[0].Version }}" diff --git a/roles/get_bmc_facts/tests/test.yml b/roles/get_bmc_facts/tests/test.yml index aa4ead0..aac3a6c 100644 --- a/roles/get_bmc_facts/tests/test.yml +++ b/roles/get_bmc_facts/tests/test.yml @@ -1,5 +1,6 @@ --- -- hosts: localhost +- name: Gather DPU BMC facts + hosts: localhost remote_user: root roles: - get_bmc_facts diff --git a/roles/update_bmc_password/meta/argument_specs.yml b/roles/update_bmc_password/meta/argument_specs.yml new file mode 100644 index 0000000..a63b1d0 --- /dev/null +++ b/roles/update_bmc_password/meta/argument_specs.yml @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) 2022-2024 Dell Inc, or its subsidiaries. +--- +argument_specs: + main: + version_added: "1.0.0" + short_description: Update Password of DPU BMC for a given user. + description: + - Update Password of DPU BMC for a given user. + options: + update_bmc_password_login_name: + type: str + description: DPU BMC username to change. + update_bmc_password_new_pass: + type: str + description: DPU BMC new password to apply for the given user. diff --git a/roles/update_bmc_password/tasks/main.yml b/roles/update_bmc_password/tasks/main.yml index 2c7f454..7551c9c 100644 --- a/roles/update_bmc_password/tasks/main.yml +++ b/roles/update_bmc_password/tasks/main.yml @@ -1,2 +1,16 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) 2022-2024 Dell Inc, or its subsidiaries. + --- # tasks file for update_bmc_password + +- name: Update user password + community.general.redfish_command: + category: Accounts + command: UpdateUserPassword + baseuri: "{{ inventory_hostname }}" + username: "{{ dpu_bmc_username }}" + password: "{{ dpu_bmc_password }}" + account_username: "{{ update_bmc_password_login_name }}" + account_password: "{{ update_bmc_password_new_pass }}" + delegate_to: localhost diff --git a/roles/update_bmc_password/tests/test.yml b/roles/update_bmc_password/tests/test.yml index 74492d5..b8e6c21 100644 --- a/roles/update_bmc_password/tests/test.yml +++ b/roles/update_bmc_password/tests/test.yml @@ -1,5 +1,6 @@ --- -- hosts: localhost +- name: Update DPU BMC password + hosts: localhost remote_user: root roles: - update_bmc_password