Skip to content

Commit

Permalink
roles: playbooks: vars: use new detect_seapath_distro role
Browse files Browse the repository at this point in the history
Use the new detect_seapath_distro role to detect the Seapath
distribution and conditionally execute distro specific tasks.
This replaces the use of the ansible_distribution fact. This fact cannot
be used with Yocto Seapath as it depends on the DISTRO_NAME configured
during build.

This new role sets a seapath_distro fact to use by playbooks and roles.
* Replace the use of ansible_distribution in roles by seapath_distro.
  Also add detect_seapath_distro as requirement for these roles
  to make sure seapath_distro is always set.
* Call the detect_seapath_distro role and use seapath_distro
  in playbooks needing it.
* Rename "Seapath_host_Yocto_distribution.yml" vars files to "Yocto.yml"
  to match and use seapath_distro.
* Modify the ceph-ansible patches to use detect_seapath_distro.

Signed-off-by: Elinor Montmasson <[email protected]>
  • Loading branch information
Revalioli committed Dec 5, 2024
1 parent 407ca2d commit c0059dd
Show file tree
Hide file tree
Showing 32 changed files with 74 additions and 66 deletions.
1 change: 0 additions & 1 deletion playbooks/cluster_setup_ha.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
- name: Configure HA basics
hosts: cluster_machines
become: true
gather_facts: true
vars:
tmpdir: "/tmp"
corosync_node_list: "{{ groups['cluster_machines'] | list }}"
Expand Down
14 changes: 6 additions & 8 deletions playbooks/seapath_setup_main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,21 @@
# This playbooks can also configure VMs created with build_debian_iso
# This playbook also configures Yocto standalone machine (no cluster)

- name: Gather ansible_distribution
- name: Detect Seapath distribution
hosts:
- cluster_machines
- standalone_machine
tasks:
- name: Gather only the ansible_distribution fact
ansible.builtin.setup:
filter: ansible_distribution
roles:
- detect_seapath_distro

- import_playbook: seapath_setup_prerequiscentos.yaml
when: ansible_distribution | regex_search("CentOS|RedHat")
when: seapath_distro == "CentOS"

- import_playbook: seapath_setup_prerequisdebian.yaml
when: ansible_distribution | regex_search("Debian")
when: seapath_distro == "Debian"

- import_playbook: seapath_setup_prerequisyocto.yaml
when: ansible_distribution | regex_search("Yocto")
when: seapath_distro == "Yocto"

- import_playbook: seapath_setup_network.yaml

Expand Down
9 changes: 0 additions & 9 deletions playbooks/seapath_setup_snmp.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,6 @@
# Copyright (C) 2024, RTE (http://www.rte-france.com)
# SPDX-License-Identifier: Apache-2.0

- name: Gather ansible_distribution
hosts:
- cluster_machines
- standalone_machine
tasks:
- name: Gather only the ansible_distribution fact
ansible.builtin.setup:
filter: ansible_distribution

- name: Configure snmp
hosts:
- cluster_machines
Expand Down
9 changes: 0 additions & 9 deletions playbooks/seapath_setup_timemaster.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,6 @@
# Copyright (C) 2024, RTE (http://www.rte-france.com)
# SPDX-License-Identifier: Apache-2.0

- name: Gather ansible_distribution
hosts:
- cluster_machines
- standalone_machine
tasks:
- name: Gather only the ansible_distribution fact
ansible.builtin.setup:
filter: ansible_distribution

- name: Configure timemaster
hosts:
- cluster_machines
Expand Down
4 changes: 3 additions & 1 deletion playbooks/test_run_cukinia.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@
- cluster_machines
- standalone_machine
- VMs
roles:
- detect_seapath_distro
tasks:
- include_vars: "../vars/{{ ansible_distribution }}_paths.yml"
- include_vars: "../vars/{{ seapath_distro }}_paths.yml"

- hosts:
- cluster_machines
Expand Down
2 changes: 1 addition & 1 deletion roles/ci_restore_snapshot/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This role restores the LVM snapshot of the root LV and re-creates it

## Requirements

no requirement.
- detect_seapath_distro

## Role Variables

Expand Down
4 changes: 2 additions & 2 deletions roles/ci_restore_snapshot/meta/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ galaxy_info:
- name: Debian
versions:
- all
dependencies: []

dependencies:
- role: detect_seapath_distro
2 changes: 1 addition & 1 deletion roles/ci_restore_snapshot/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0

---
- include_vars: "{{ ansible_distribution | replace(' ', '_') }}.yml"
- include_vars: "{{ seapath_distro }}.yml"

- name: "grub conf"
lineinfile:
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion roles/configure_admin_user/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ This role copy the root ssh key to admin user's. This user is used by Debian whe

## Requirements

no requirement.
- detect_seapath_distro

## Role Variables

Expand Down
3 changes: 2 additions & 1 deletion roles/configure_admin_user/meta/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ galaxy_info:
- name: Debian
versions:
- all
dependencies: []
dependencies:
- role: detect_seapath_distro
2 changes: 1 addition & 1 deletion roles/configure_admin_user/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@
state: present
key: "{{ lookup('file','buffer/' + item + '-id_rsa.pub') }}"
with_items: "{{ groups['hypervisors'] }}"
when: ansible_distribution | regex_search("CentOS|Debian")
when: seapath_distro in [ "CentOS", "Debian" ]
2 changes: 1 addition & 1 deletion roles/configure_ha/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This role configures the High Availability part of a seapath cluster (Corosync a

## Requirements

no requirement.
- detect_seapath_distro

## Role Variables

Expand Down
3 changes: 2 additions & 1 deletion roles/configure_ha/meta/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ galaxy_info:
- name: Debian
versions:
- all
dependencies: []
dependencies:
- role: detect_seapath_distro
2 changes: 1 addition & 1 deletion roles/configure_ha/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0

---
- include_vars: "{{ ansible_distribution | replace(' ', '_') }}.yml"
- include_vars: "{{ seapath_distro }}.yml"

- name: Save cluster machine informations
template:
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion roles/network_configovs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This role configures OVS

## Requirements

no requirement.
- detect_seapath_distro

## Role Variables

Expand Down
3 changes: 2 additions & 1 deletion roles/network_configovs/meta/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ galaxy_info:
- name: Debian
versions:
- all
dependencies: []
dependencies:
- role: detect_seapath_distro
3 changes: 1 addition & 2 deletions roles/network_configovs/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0

---
- include_vars: "{{ ansible_distribution | replace(' ', '_') }}.yml"
- include_vars: "{{ seapath_distro }}.yml"

- name: Create OVS configuration
template:
Expand All @@ -29,4 +29,3 @@
when:
- ovs_vsctl_cmds is defined
loop: "{{ ovs_vsctl_cmds }}"

File renamed without changes.
2 changes: 1 addition & 1 deletion roles/snmp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This role configure the SNMP feature

## Requirements

no requirement.
- detect_seapath_distro

## Role Variables

Expand Down
3 changes: 2 additions & 1 deletion roles/snmp/meta/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ galaxy_info:
- name: Debian
versions:
- all
dependencies: []
dependencies:
- role: detect_seapath_distro
2 changes: 1 addition & 1 deletion roles/snmp/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0

---
- include_vars: "{{ ansible_distribution | replace(' ', '_') }}.yml"
- include_vars: "{{ seapath_distro }}.yml"

- name: configure snmp
block:
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion roles/timemaster/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This role configures timemaster

## Requirements

no requirement.
- detect_seapath_distro

## Role Variables

Expand Down
3 changes: 2 additions & 1 deletion roles/timemaster/meta/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ galaxy_info:
- name: Debian
versions:
- all
dependencies: []
dependencies:
- role: detect_seapath_distro
2 changes: 1 addition & 1 deletion roles/timemaster/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0

---
- include_vars: "{{ ansible_distribution | replace(' ', '_') }}.yml"
- include_vars: "{{ seapath_distro }}.yml"

- name: Populate service facts
service_facts:
Expand Down
File renamed without changes.
15 changes: 13 additions & 2 deletions src/ceph-ansible-patches/distro_not_supported.diff
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
diff --git a/roles/ceph-validate/meta/main.yml b/roles/ceph-validate/meta/main.yml
index 1c6197efd..339e30deb 100644
--- a/roles/ceph-validate/meta/main.yml
+++ b/roles/ceph-validate/meta/main.yml
@@ -11,4 +11,5 @@ galaxy_info:
- 7
galaxy_tags:
- system
-dependencies: []
+dependencies:
+ - role: ../../roles/detect_seapath_distro
diff --git a/roles/ceph-validate/tasks/check_system.yml b/roles/ceph-validate/tasks/check_system.yml
index dc8cdd6fd..4a9ffff4d 100644
index dc8cdd6fd..8f7d224eb 100644
--- a/roles/ceph-validate/tasks/check_system.yml
+++ b/roles/ceph-validate/tasks/check_system.yml
@@ -22,7 +22,9 @@
Expand All @@ -9,7 +20,7 @@ index dc8cdd6fd..4a9ffff4d 100644
- when: ansible_facts['os_family'] not in ['Debian', 'RedHat', 'ClearLinux', 'Suse']
+ when:
+ - ansible_facts['os_family'] not in ['Debian', 'RedHat', 'ClearLinux', 'Suse']
+ - "'Yocto' not in ansible_distribution"
+ - seapath_distro != "Yocto"

- name: fail on unsupported CentOS release
fail:
17 changes: 14 additions & 3 deletions src/ceph-ansible-patches/osd_no_package.diff
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
diff --git a/roles/ceph-osd/meta/main.yml b/roles/ceph-osd/meta/main.yml
index 3c2a26e89..283bae30b 100644
--- a/roles/ceph-osd/meta/main.yml
+++ b/roles/ceph-osd/meta/main.yml
@@ -11,4 +11,5 @@ galaxy_info:
- 7
galaxy_tags:
- system
-dependencies: []
+dependencies:
+ - role: ../../roles/detect_seapath_distro
diff --git a/roles/ceph-osd/tasks/main.yml b/roles/ceph-osd/tasks/main.yml
index 623731ddd..d9e281f2b 100644
index 623731ddd..e1631dc01 100644
--- a/roles/ceph-osd/tasks/main.yml
+++ b/roles/ceph-osd/tasks/main.yml
@@ -24,6 +24,7 @@
when:
- not containerized_deployment | bool
- ansible_facts['os_family'] != 'ClearLinux'
+ - "'Yocto' not in ansible_distribution"

+ - seapath_distro != "Yocto"
- name: install numactl when needed
package:
27 changes: 14 additions & 13 deletions src/ceph-ansible-patches/purge_yocto_cluster.diff
Original file line number Diff line number Diff line change
@@ -1,38 +1,39 @@
diff --git a/infrastructure-playbooks/purge-cluster.yml b/infrastructure-playbooks/purge-cluster.yml
index 109a25697..29a0c842a 100644
index 109a25697..3afab0460 100644
--- a/infrastructure-playbooks/purge-cluster.yml
+++ b/infrastructure-playbooks/purge-cluster.yml
@@ -50,7 +50,7 @@
- name: check there's no ceph kernel threads present
hosts: clients
@@ -42,6 +42,9 @@
- mgrs
- monitoring
become: true
- gather_facts: false
+ gather_facts: true
any_errors_fatal: true
+ roles:
+ - detect_seapath_distro
tasks:
- import_role:
@@ -106,6 +106,7 @@
- debug:
msg: "gather facts on all Ceph hosts for following reference"
@@ -106,6 +109,7 @@
- rbd
- ceph
- libceph
+ when: "'Yocto' not in ansible_distribution"
+ when: seapath_distro != "Yocto"


- name: purge ceph nfs cluster
@@ -545,6 +546,16 @@
@@ -545,6 +549,16 @@
when:
- containerized_deployment | bool
or ceph_volume_present.rc == 0
+ - "'Yocto' not in ansible_distribution"
+ - seapath_distro != "Yocto"
+
+ - name: Get real path for OSD disk
+ command: "realpath {{ ceph_osd_disk }}" # Get the resolved path of the disk given initially by the "/dev/disk/by-path/" for ceph purposes
+ register: ceph_osd_realdisk
+ when: "'Yocto' in ansible_distribution"
+ when: seapath_distro == "Yocto"
+
+ - name: Cleanup Ceph OSD disks with ceph-volume
+ command: "ceph-volume lvm zap {{ ceph_osd_realdisk.stdout }} --destroy"
+ when: "'Yocto' in ansible_distribution"
+ when: seapath_distro == "Yocto"

- name: get ceph block partitions
shell: |
File renamed without changes.

0 comments on commit c0059dd

Please sign in to comment.