linux-system-roles / ha_cluster

Provide automation for Cluster - High Availability management
https://linux-system-roles.github.io/ha_cluster/
MIT License
18 stars 22 forks source link

feat: export corosync configuration #231

Open tomjelinek opened 1 month ago

tomjelinek commented 1 month ago

Enhancement: Provide ha_cluster_info module to export current cluster configuration. This PR implements a first stage, exporting corosync configuration. Other parts of configuration will follow in other PRs.

Reason: This is the first step in implementing an info module which exports cluster configuration in a variables structure in the same format as ha_cluster role accepts.

Result: ha_cluster_info module exports corosync configuration, which can be used to recreate the same corosync cluster when passed to the role

Issue Tracker Tickets (Jira or BZ if any): https://issues.redhat.com/browse/RHEL-46219

tomjelinek commented 1 month ago

[citest]

tomjelinek commented 1 month ago

I updated the pcs_version vs ubuntu version matrix, as pcs main no longer builds on ubuntu-22.04. And then Python Unit Tests / python (ubuntu-24.04, main) fails when trying to upgrade pip:

+ python -m pip install --upgrade pip
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

I suppose upgrading pip could be removed. But I'm afraid that would solve nothing, as the next command is pip install "git+https://github.com/linux-system-roles/tox-lsr@3.4.0" and that would probably fail with the same message. So what's the process of installing tox-lsr on ubuntu-24.04? Should I just add --break-system-packages as the message suggests?

tomjelinek commented 1 month ago

ansible_test fails with this error:

Running sanity test "ansible-doc"
Run command: ansible-doc -t module fedora.linux_system_roles.ha_cluster_info fedora.linux_system_roles.pcs_api_v2 fedora.linux_system_roles.pcs_qdevice_certs
ERROR: Output on stderr from ansible-doc is considered an error.

Command "ansible-doc -t module fedora.linux_system_roles.ha_cluster_info fedora.linux_system_roles.pcs_api_v2 fedora.linux_system_roles.pcs_qdevice_certs" returned exit status 0.
>>> Standard Error
Warning: : Collection fedora.linux_system_roles does not support Ansible
version 2.14.17.post0

Any idea what this means and how to fix it?

tomjelinek commented 1 month ago

CentOS-Stream-8|ansible-2.9 fails with Could not detect a supported package manager from the following list: ['pkg', 'apt', 'rpm', 'portage'], or the required Python library is not installed. Check warnings for details.. I think we went over this already, and the resolution was that this was an incompatibility between CentOS 8 and Ansible.

I'm not sure why the other CentOS and Fedora tests are marked as failures, when all their logs are success.

spetrosi commented 1 month ago

[citest]

spetrosi commented 1 month ago

CentOS-Stream-8|ansible-2.9 fails with Could not detect a supported package manager from the following list: ['pkg', 'apt', 'rpm', 'portage'], or the required Python library is not installed. Check warnings for details.. I think we went over this already, and the resolution was that this was an incompatibility between CentOS 8 and Ansible.

Looking into this, I think it used to work, idk what broke it.

I'm not sure why the other CentOS and Fedora tests are marked as failures, when all their logs are success.

Fixed in https://github.com/linux-system-roles/tft-tests/pull/53, tests passed but some tasks run in background after the testing phase finished, it caused the failure of test plan. Now it's passing.

spetrosi commented 1 month ago

Fixing issue with ansible-2.9 on CS8 in https://github.com/linux-system-roles/tft-tests/pull/54

spetrosi commented 1 month ago

[citest]