deep_scrub_choked

This commit is contained in:
a.pivkin
2026-04-06 07:08:17 +03:00
commit 9149dc1d7f
840 changed files with 52471 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
# Ansible role: ceph-container-common
Documentation is available at http://docs.ceph.com/ceph-ansible/.
@@ -0,0 +1 @@
---
@@ -0,0 +1,5 @@
[Unit]
Description=ceph target allowing to start/stop all ceph*@.service instances at once
[Install]
WantedBy=multi-user.target
+14
View File
@@ -0,0 +1,14 @@
---
galaxy_info:
company: Red Hat
author: Sébastien Han
description: Installs Ceph
license: Apache
min_ansible_version: '2.7'
platforms:
- name: EL
versions:
- 'all'
galaxy_tags:
- system
dependencies: []
@@ -0,0 +1,81 @@
---
- name: Pulling Ceph container image
ansible.builtin.command: "{{ timeout_command }} {{ container_binary }} pull {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
changed_when: false
register: docker_image
until: docker_image.rc == 0
retries: "{{ docker_pull_retry }}"
delay: 10
when: (ceph_docker_dev_image is undefined or not ceph_docker_dev_image | bool)
environment:
HTTP_PROXY: "{{ ceph_docker_http_proxy | default('') }}"
HTTPS_PROXY: "{{ ceph_docker_https_proxy | default('') }}"
NO_PROXY: "{{ ceph_docker_no_proxy }}"
- name: Pulling alertmanager/prometheus/grafana container images
ansible.builtin.command: "{{ timeout_command }} {{ container_binary }} pull {{ item }}"
changed_when: false
register: monitoring_images
until: monitoring_images.rc == 0
retries: "{{ docker_pull_retry }}"
delay: 10
loop:
- "{{ alertmanager_container_image }}"
- "{{ prometheus_container_image }}"
- "{{ grafana_container_image }}"
when:
- dashboard_enabled | bool
- inventory_hostname in groups.get(monitoring_group_name, [])
environment:
HTTP_PROXY: "{{ ceph_docker_http_proxy | default('') }}"
HTTPS_PROXY: "{{ ceph_docker_https_proxy | default('') }}"
NO_PROXY: "{{ ceph_docker_no_proxy }}"
- name: Pulling node-exporter container image
ansible.builtin.command: "{{ timeout_command }} {{ container_binary }} pull {{ node_exporter_container_image }}"
changed_when: false
register: node_exporter_image
until: node_exporter_image.rc == 0
retries: "{{ docker_pull_retry }}"
delay: 10
when:
- dashboard_enabled | bool
- inventory_hostname in groups.get(mon_group_name, []) or
inventory_hostname in groups.get(osd_group_name, []) or
inventory_hostname in groups.get(mds_group_name, []) or
inventory_hostname in groups.get(rgw_group_name, []) or
inventory_hostname in groups.get(mgr_group_name, []) or
inventory_hostname in groups.get(rbdmirror_group_name, []) or
inventory_hostname in groups.get(nfs_group_name, []) or
inventory_hostname in groups.get(monitoring_group_name, [])
environment:
HTTP_PROXY: "{{ ceph_docker_http_proxy | default('') }}"
HTTPS_PROXY: "{{ ceph_docker_https_proxy | default('') }}"
NO_PROXY: "{{ ceph_docker_no_proxy }}"
- name: Export local ceph dev image
ansible.builtin.command: >
{{ container_binary }} save -o "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar"
"{{ ceph_docker_username }}/{{ ceph_docker_imagename }}:{{ ceph_docker_image_tag }}"
delegate_to: localhost
changed_when: false
when: (ceph_docker_dev_image is defined and ceph_docker_dev_image)
run_once: true
- name: Copy ceph dev image file
ansible.builtin.copy:
src: "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar"
dest: "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar"
mode: "0644"
when: (ceph_docker_dev_image is defined and ceph_docker_dev_image | bool)
- name: Load ceph dev image
ansible.builtin.command: "{{ container_binary }} load -i /tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar"
changed_when: false
when: (ceph_docker_dev_image is defined and ceph_docker_dev_image | bool)
- name: Remove tmp ceph dev image file
ansible.builtin.file:
name: "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar"
state: absent
when: (ceph_docker_dev_image is defined and ceph_docker_dev_image | bool)
@@ -0,0 +1,39 @@
---
- name: Generate systemd ceph target file
ansible.builtin.copy:
src: ceph.target
dest: /etc/systemd/system/ceph.target
mode: "0644"
- name: Enable ceph.target
ansible.builtin.service:
name: ceph.target
enabled: true
daemon_reload: true
- name: Include prerequisites.yml
ansible.builtin.include_tasks: prerequisites.yml
- name: Include registry.yml
ansible.builtin.include_tasks: registry.yml
when: ceph_docker_registry_auth | bool
- name: Include fetch_image.yml
ansible.builtin.include_tasks: fetch_image.yml
tags: fetch_container_image
- name: Get ceph version
ansible.builtin.command: >
{{ container_binary }} run --rm --net=host --entrypoint /usr/bin/ceph
{{ ceph_client_docker_registry }}/{{ ceph_client_docker_image }}:{{ ceph_client_docker_image_tag }}
--version
changed_when: false
check_mode: false
register: ceph_version
- name: Set_fact ceph_version ceph_version.stdout.split
ansible.builtin.set_fact:
ceph_version: "{{ ceph_version.stdout.split(' ')[2] }}"
- name: Include release.yml
ansible.builtin.include_tasks: release.yml
@@ -0,0 +1,52 @@
---
- name: Lvmetad tasks related
when:
- inventory_hostname in groups.get(osd_group_name, [])
- lvmetad_disabled | default(False) | bool
- ansible_facts['os_family'] == 'RedHat'
- ansible_facts['distribution_major_version'] | int == 7
block:
- name: Stop lvmetad
ansible.builtin.service:
name: lvm2-lvmetad
state: stopped
- name: Disable and mask lvmetad service
ansible.builtin.systemd:
name: lvm2-lvmetad
enabled: false
masked: true
- name: Remove ceph udev rules
ansible.builtin.file:
path: "{{ item }}"
state: absent
with_items:
- /usr/lib/udev/rules.d/95-ceph-osd.rules
- /usr/lib/udev/rules.d/60-ceph-by-parttypeuuid.rules
- name: Ensure tmpfiles.d is present
ansible.builtin.lineinfile:
path: /etc/tmpfiles.d/ceph-common.conf
line: "d /run/ceph 0755 167 167 -"
owner: root
group: root
mode: "0644"
state: present
create: true
- name: Restore certificates selinux context
when:
- ansible_facts['os_family'] == 'RedHat'
- inventory_hostname in groups.get(mon_group_name, [])
or inventory_hostname in groups.get(rgw_group_name, [])
ansible.builtin.command: /usr/sbin/restorecon -RF /etc/pki/ca-trust/extracted
changed_when: false
- name: Install python3 on osd nodes
ansible.builtin.package:
name: python3
state: present
when:
- inventory_hostname in groups.get(osd_group_name, [])
- ansible_facts['os_family'] == 'RedHat'
@@ -0,0 +1,11 @@
---
- name: Container registry authentication
ansible.builtin.command: '{{ container_binary }} login -u {{ ceph_docker_registry_username }} --password-stdin {{ ceph_docker_registry }}'
args:
stdin: '{{ ceph_docker_registry_password }}'
stdin_add_newline: false
changed_when: false
environment:
HTTP_PROXY: "{{ ceph_docker_http_proxy | default('') }}"
HTTPS_PROXY: "{{ ceph_docker_https_proxy | default('') }}"
NO_PROXY: "{{ ceph_docker_no_proxy }}"
@@ -0,0 +1,50 @@
---
- name: Set_fact ceph_release jewel
ansible.builtin.set_fact:
ceph_release: jewel
when: ceph_version.split('.')[0] is version('10', '==')
- name: Set_fact ceph_release kraken
ansible.builtin.set_fact:
ceph_release: kraken
when: ceph_version.split('.')[0] is version('11', '==')
- name: Set_fact ceph_release luminous
ansible.builtin.set_fact:
ceph_release: luminous
when: ceph_version.split('.')[0] is version('12', '==')
- name: Set_fact ceph_release mimic
ansible.builtin.set_fact:
ceph_release: mimic
when: ceph_version.split('.')[0] is version('13', '==')
- name: Set_fact ceph_release nautilus
ansible.builtin.set_fact:
ceph_release: nautilus
when: ceph_version.split('.')[0] is version('14', '==')
- name: Set_fact ceph_release octopus
ansible.builtin.set_fact:
ceph_release: octopus
when: ceph_version.split('.')[0] is version('15', '==')
- name: Set_fact ceph_release pacific
ansible.builtin.set_fact:
ceph_release: pacific
when: ceph_version.split('.')[0] is version('16', '==')
- name: Set_fact ceph_release quincy
ansible.builtin.set_fact:
ceph_release: quincy
when: ceph_version.split('.')[0] is version('17', '==')
- name: Set_fact ceph_release reef
ansible.builtin.set_fact:
ceph_release: reef
when: ceph_version.split('.')[0] is version('18', '==')
- name: Set_fact ceph_release squid
ansible.builtin.set_fact:
ceph_release: squid
when: ceph_version.split('.')[0] is version('19', '==')