Skip to content

Commit 4825a41

Browse files
authored
Merge branch 'stackhpc/2025.1' into pulp-tls-update
2 parents ba1cb20 + 4d167d2 commit 4825a41

File tree

15 files changed

+268
-37
lines changed

15 files changed

+268
-37
lines changed

doc/source/configuration/wazuh.rst

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,27 @@ Reinstall the role if required:
205205

206206
``kayobe control host bootstrap``
207207

208+
Secrets
209+
-------
210+
211+
Wazuh requires that secrets or passwords are set for itself and the services with which it communicates.
212+
Wazuh secrets playbook is located in ``$KAYOBE_CONFIG_PATH/ansible/deployment/wazuh-secrets.yml``.
213+
Running this playbook will generate and put pertinent security items into secrets
214+
vault file which will be placed in ``$KAYOBE_CONFIG_PATH/deployment/wazuh-secrets.yml``.
215+
If using environments it ends up in ``$KAYOBE_CONFIG_PATH/environments/<env_name>/deployment/wazuh-secrets.yml``
216+
Remember to encrypt!
217+
218+
Wazuh secrets template is located in ``$KAYOBE_CONFIG_PATH/ansible/templates/wazuh-secrets.yml.j2``.
219+
It will be used by wazuh secrets playbook to generate wazuh secrets vault file.
208220

209-
Edit the playbook and variables to your needs:
221+
222+
.. code-block:: console
223+
224+
kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/deployment/wazuh-secrets.yml
225+
226+
.. note:: Use ``ansible-vault`` to view the secrets:
227+
228+
``ansible-vault view --vault-password-file ~/vault.password $KAYOBE_CONFIG_PATH/inventory/group_vars/wazuh-manager/deployment/wazuh-secrets.yml``
210229

211230
Wazuh manager configuration
212231
---------------------------
@@ -242,28 +261,6 @@ You may need to modify some of the variables, including:
242261

243262
You'll need to run ``wazuh-manager.yml`` playbook again to apply customisation.
244263

245-
Secrets
246-
-------
247-
248-
Wazuh requires that secrets or passwords are set for itself and the services with which it communiticates.
249-
Wazuh secrets playbook is located in ``$KAYOBE_CONFIG_PATH/ansible/deployment/wazuh-secrets.yml``.
250-
Running this playbook will generate and put pertinent security items into secrets
251-
vault file which will be placed in ``$KAYOBE_CONFIG_PATH/deployment/wazuh-secrets.yml``.
252-
If using environments it ends up in ``$KAYOBE_CONFIG_PATH/environments/<env_name>/deployment/wazuh-secrets.yml``
253-
Remember to encrypt!
254-
255-
Wazuh secrets template is located in ``$KAYOBE_CONFIG_PATH/ansible/templates/wazuh-secrets.yml.j2``.
256-
It will be used by wazuh secrets playbook to generate wazuh secrets vault file.
257-
258-
259-
.. code-block:: console
260-
261-
kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/deployment/wazuh-secrets.yml
262-
263-
.. note:: Use ``ansible-vault`` to view the secrets:
264-
265-
``ansible-vault view --vault-password-file ~/vault.password $KAYOBE_CONFIG_PATH/inventory/group_vars/wazuh-manager/deployment/wazuh-secrets.yml``
266-
267264
Configure Wazuh Dashboard's Server Host
268265
---------------------------------------
269266

@@ -424,6 +421,13 @@ Verification
424421
The Wazuh agents should register with the Wazuh manager. This can be verified via the agents page in Wazuh Portal.
425422
Check CIS benchmark output in agent section.
426423

424+
Wazuh manager removal
425+
---------------------
426+
427+
The following playbook can be used to purge all Wazuh manager components from a host. This is particularly useful for Wazuh manager servers that are not hosted on an infra-vm.
428+
429+
``kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/tools/wazuh-manager-purge.yml``
430+
427431
Additional resources
428432
--------------------
429433

doc/source/operations/bifrost-hardware-inventory-management.rst

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ Replacing a Failing Hypervisor
8383

8484
To replace a failing hypervisor, proceed as follows:
8585

86-
* :ref:`Disable the hypervisor to avoid scheduling any new instance on it <taking-a-hypervisor-out-of-service>`
86+
* :ref:`Disable the hypervisor to avoid scheduling any new instances on it <taking-a-hypervisor-out-of-service>`
8787
* :ref:`Evacuate all instances <evacuating-all-instances>`
8888
* :ref:`Set the node to maintenance mode in Bifrost <set-bifrost-maintenance-mode>`
8989
* Physically fix or replace the node
@@ -102,6 +102,54 @@ To deprovision an existing hypervisor, run:
102102
system. Running this command without a limit will deprovision all overcloud
103103
hosts.
104104

105+
Removing a Hypervisor
106+
---------------------
107+
108+
To remove a hypervisor without replacing it, proceed as follows:
109+
110+
#. :ref:`Disable the hypervisor to avoid scheduling any new instances on it <taking-a-hypervisor-out-of-service>`
111+
#. :ref:`Evacuate all instances <evacuating-all-instances>`
112+
#. (optionally) Deprovision the hypervisor
113+
114+
.. code-block:: console
115+
116+
kayobe overcloud deprovision --limit <Hypervisor hostname>
117+
118+
.. warning::
119+
120+
Always use ``--limit`` with ``kayobe overcloud deprovision`` on a production
121+
system. Running this command without a limit will deprovision all overcloud
122+
hosts.
123+
124+
#. Physically remove the node from the deployment
125+
126+
#. Delete the node in Bifrost:
127+
128+
.. code-block:: console
129+
130+
docker exec -it bifrost_deploy bash
131+
(bifrost-deploy)[root@seed bifrost-base]# export OS_CLOUD=bifrost
132+
(bifrost-deploy)[root@seed bifrost-base]# openstack baremetal node delete <Hostname>
133+
134+
#. Delete the compute service in OpenStack:
135+
136+
.. code-block:: console
137+
138+
openstack compute service list | grep <Hypervisor hostname>
139+
openstack compute service delete <Service ID>
140+
141+
#. Delete the network agents in OpenStack:
142+
143+
.. code-block:: console
144+
145+
openstack network agent list | grep <Hypervisor hostname>
146+
openstack network agent delete <Agent IDs>
147+
148+
#. Remove the node from the Kayobe configuration. Ensure the node is removed
149+
from the inventory and ``network-allocation.yml``. Other configuration files
150+
may also be removed, but this is dependent on the deployment. Recursive
151+
``grep`` can help here.
152+
105153
.. _evacuating-all-instances:
106154

107155
Evacuating all instances

doc/source/operations/ubuntu-noble.rst

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,10 @@ The following types of hosts will be covered in the future:
4747

4848
.. warning::
4949

50-
Ceph node upgrades have not yet been performed outside of a virtualised test
51-
environment. Proceed with caution.
50+
Due to `Bug 66389 <https://tracker.ceph.com/issues/66389>`__, do not upgrade
51+
Ceph hosts to Noble until the Ceph cluster has been upgraded to at least
52+
Reef v18.2.5. Upgrading a host prematurely will prevent its Ceph daemons
53+
from starting, and it will not be able to rejoin the cluster.
5254

5355
Prerequisites
5456
=============
@@ -353,6 +355,8 @@ Storage
353355
Potential issues
354356
----------------
355357

358+
- Ensure the Ceph cluster is running at least Reef v18.2.5.
359+
Upgrading hosts with an older Ceph version will cause daemons to fail.
356360
- It is recommended that you upgrade the bootstrap host last.
357361
- Before upgrading the bootstrap host, it can be beneficial to backup
358362
``/etc/ceph`` and ``/var/lib/ceph``, as sometimes the keys, config, etc.

doc/source/operations/upgrading-ceph.rst

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,37 @@ The Ceph release series is not strictly dependent upon the StackHPC OpenStack
99
release, however this configuration does define a default Ceph release series
1010
and container image tag. The default release series is currently |ceph_series|.
1111

12+
Known issues
13+
============
14+
15+
Slow ceph-volume activate
16+
-------------------------
17+
18+
A large slowdown of ``ceph-volume activate`` has been reported on version
19+
19.2.3 (`bug 73107 <https://tracker.ceph.com/issues/73107>`__).
20+
21+
On Reef, a host with 15 OSDs was measured taking around 10 seconds to activate
22+
all OSDs while exiting maintenance mode. On Squid 19.2.3, a host with 22 OSDs
23+
was measured taking 2 minutes to activate all OSDs.
24+
25+
This bug may be a blocker for deployments with large number of OSDs per host.
26+
27+
Elastic Shared Blob crash
28+
-------------------------
29+
30+
There is a `known bug causing OSDs created on Squid to crash
31+
<https://tracker.ceph.com/issues/70390>`__. To avoid it, `disable the
32+
Elastic Shared Blob feature
33+
<https://docs.clyso.com/blog/#squid-deployed-osds-are-crashing>`__ before
34+
any OSDs are created or replaced:
35+
36+
.. code-block:: bash
37+
38+
ceph config set osd bluestore_elastic_shared_blobs 0
39+
40+
This needs to be done after the upgrade is complete as the option is not
41+
available on Reef.
42+
1243
Prerequisites
1344
=============
1445

@@ -171,6 +202,21 @@ versions``. Once confirmed, run the following command:
171202
172203
ceph config set osd bluestore_elastic_shared_blobs 0
173204
205+
Finally, verify the value of ``ceph osd get-require-min-compat-client``. On
206+
older Ceph deployments, it may still be set to ``jewel``, which would prevent
207+
using the `upmap balancer mode
208+
<https://docs.ceph.com/en/latest/rados/operations/balancer/#modes>`__ which
209+
requires ``luminous`` or later. Similarly, the more recent `read balancer
210+
<https://docs.ceph.com/en/latest/rados/operations/read-balancer/>`__ requires
211+
``reef``.
212+
213+
Run ``ceph features`` to identify client versions and consider setting the
214+
minimum to an appropriate value:
215+
216+
.. code-block:: console
217+
218+
ceph osd set-require-min-compat-client reef
219+
174220
Upgrade Cephadm
175221
===============
176222

doc/source/operations/upgrading-openstack.rst

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ For example:
132132
enabled: "{{ seed_pulp_container_enabled | bool }}"
133133
134134
Ansible playbook subdirectories
135-
--------------------------------------
135+
-------------------------------
136136

137137
The playbooks under ``etc/kayobe/ansible`` have been subdivided into different
138138
categories to make them easier to navigate. This change may result in merge
@@ -147,6 +147,10 @@ To mitigate the impact of these changes, two scripts have been added:
147147
* ``tools/magic-symlink-fix.sh`` - Uses the previous script to attempt to fix
148148
any broken symlinks in the kayobe configuration.
149149

150+
If playbooks are referenced in different methods other than symlinks, they'll
151+
need to be manually resolved by operators. (e.g. Shell scripts running
152+
playbooks with file paths, ``import_playbook`` command in custom playbooks)
153+
150154
Known issues
151155
============
152156

@@ -370,6 +374,14 @@ You can find more information from the :ref:`beokay` documentation.
370374
For Rocky Linux 9, ``beokay create`` must be used with the ``--python python3.12``
371375
option to specify Beokay to use Python 3.12 as it is not the default.
372376

377+
Kayobe Automation
378+
~~~~~~~~~~~~~~~~~
379+
380+
For deployments using Kayobe Automation CI, the Kayobe Docker image also needs
381+
to be rebuilt with Python 3.12. In GitHub, run the ``Build Kayobe Docker
382+
Image`` workflow. In GitLab, run the ``build_kayobe_image`` pipeline. In either
383+
case, the image will automatically be rebuilt with Python 3.12.
384+
373385
Preparation
374386
===========
375387

etc/kayobe/ansible.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[defaults]
22
forks = 20
3-
# Use the YAML stdout callback plugin.
3+
# Use YAML stdout callback output.
44
callback_result_format = yaml
55
# Use the stdout_callback when running ad-hoc commands.
66
bin_ansible_callbacks = True

etc/kayobe/ansible/requirements.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
collections:
33
- name: stackhpc.cephadm
4-
version: 1.21.0
4+
version: 1.22.0
55
# NOTE: Pinning pulp.squeezer to 0.0.13 because 0.0.14+ depends on the
66
# pulp_glue Python library being installed.
77
- name: pulp.squeezer

etc/kayobe/ansible/tools/install-doca.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
ansible.builtin.command:
99
cmd: "uname -r"
1010
register: kernel
11+
check_mode: false
1112

1213
- name: Install kernel repo
1314
ansible.builtin.dnf:
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
---
2+
# This is the playbook version of the wazuh purge tool from:
3+
# https://github.com/stackhpc/wazuh-server-purge
4+
5+
- name: Purge Wazuh Server Components
6+
hosts: wazuh-manager
7+
become: true
8+
become_user: root
9+
tasks:
10+
# Dashboard
11+
- name: Disable and stop wazuh-dashboard service
12+
ansible.builtin.systemd_service:
13+
name: wazuh-dashboard
14+
state: stopped
15+
enabled: no
16+
daemon_reload: true
17+
register: svc_result
18+
failed_when:
19+
- svc_result.failed
20+
- "'Could not find the requested service' not in svc_result.msg"
21+
22+
- name: Remove wazuh-dashboard and files
23+
ansible.builtin.package:
24+
name: wazuh-dashboard
25+
state: absent
26+
27+
- name: Remove wazuh-dashboard directories
28+
ansible.builtin.file:
29+
path: "{{ item }}"
30+
state: absent
31+
loop:
32+
- /var/lib/wazuh-dashboard
33+
- /usr/share/wazuh-dashboard
34+
- /etc/wazuh-dashboard
35+
# Manager
36+
- name: Remove wazuh-manager service
37+
ansible.builtin.systemd_service:
38+
name: wazuh-manager
39+
state: stopped
40+
enabled: no
41+
daemon_reload: true
42+
register: svc_result
43+
failed_when:
44+
- svc_result.failed
45+
- "'Could not find the requested service' not in svc_result.msg"
46+
47+
- name: Remove wazuh-manager and files
48+
ansible.builtin.package:
49+
name: wazuh-manager
50+
state: absent
51+
52+
- name: Remove wazuh-manager directories
53+
ansible.builtin.file:
54+
path: /var/ossec
55+
state: absent
56+
# Filebeat
57+
- name: Disable and stop filebeat service
58+
ansible.builtin.systemd_service:
59+
name: filebeat
60+
state: stopped
61+
enabled: no
62+
daemon_reload: true
63+
register: svc_result
64+
failed_when:
65+
- svc_result.failed
66+
- "'Could not find the requested service' not in svc_result.msg"
67+
68+
- name: Remove filebeat and files
69+
ansible.builtin.package:
70+
name: filebeat
71+
state: absent
72+
73+
- name: Remove filebeat directories
74+
ansible.builtin.file:
75+
path: "{{ item }}"
76+
state: absent
77+
loop:
78+
- /var/lib/filebeat
79+
- /usr/share/filebeat
80+
- /etc/filebeat
81+
# Indexer
82+
- name: Disable and stop wazuh-indexer service
83+
ansible.builtin.systemd_service:
84+
name: wazuh-indexer
85+
state: stopped
86+
enabled: no
87+
daemon_reload: true
88+
register: svc_result
89+
failed_when:
90+
- svc_result.failed
91+
- "'Could not find the requested service' not in svc_result.msg"
92+
93+
- name: Remove wazuh-indexer and files
94+
ansible.builtin.package:
95+
name: wazuh-indexer
96+
state: absent
97+
98+
- name: Remove wazuh-indexer directories
99+
ansible.builtin.file:
100+
path: "{{ item }}"
101+
state: absent
102+
loop:
103+
- /var/lib/wazuh-indexer
104+
- /usr/share/wazuh-indexer
105+
- /etc/wazuh-indexer

etc/kayobe/environments/ci-aio/automated-setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ generate_openstack_env_script() {
255255

256256
python3 -m venv $BASE_PATH/venvs/openstack
257257
$BASE_PATH/venvs/openstack/bin/pip install -U pip
258-
$BASE_PATH/venvs/openstack/bin/pip install -U python-openstackclient -c https://raw.githubusercontent.com/stackhpc/requirements/refs/heads/stackhpc/stackhpc/$OPENSTACK_RELEASE/upper-constraints.txt
258+
$BASE_PATH/venvs/openstack/bin/pip install -U python-openstackclient -c https://raw.githubusercontent.com/stackhpc/requirements/refs/heads/stackhpc/$OPENSTACK_RELEASE/upper-constraints.txt
259259
cat > $BASE_PATH/openstack-env.sh <<EOF
260260
261261
source $BASE_PATH/venvs/openstack/bin/activate

0 commit comments

Comments
 (0)