{"id":300,"sha1":"c2b878dacbe42d621a0ad95952285b309d62da9a","playbook":{"id":3,"items":{"plays":37,"tasks":589,"results":576,"hosts":7,"files":222,"records":0},"arguments":{"version":null,"verbosity":0,"private_key_file":null,"remote_user":null,"connection":"openstack.osa.ssh","timeout":null,"ssh_common_args":null,"sftp_extra_args":null,"scp_extra_args":null,"ssh_extra_args":null,"ask_pass":false,"connection_password_file":null,"force_handlers":true,"flush_cache":false,"become":false,"become_method":"sudo","become_user":null,"become_ask_pass":false,"become_password_file":null,"tags":["all"],"skip_tags":[],"check":false,"diff":false,"inventory":["/home/zuul/src/opendev.org/openstack/openstack-ansible/inventory/dynamic_inventory.py","/home/zuul/src/opendev.org/openstack/openstack-ansible/inventory/inventory.ini","/etc/openstack_deploy/inventory.ini"],"listhosts":false,"subset":null,"extra_vars":"Not saved by ARA as configured by 'ignored_arguments'","vault_ids":[],"ask_vault_pass":false,"vault_password_files":[],"forks":4,"module_path":null,"syntax":false,"listtasks":false,"listtags":false,"step":false,"start_at_task":null,"args":["setup-infrastructure.yml"]},"labels":[{"id":1,"name":"check:False"},{"id":2,"name":"tags:all"}],"started":"2025-12-08T13:50:33.014895Z","ended":"2025-12-08T13:57:00.819740Z","duration":"00:06:27.804845","name":null,"ansible_version":"2.18.6","client_version":"1.7.4","python_version":"3.12.11","server_version":"1.7.4","status":"completed","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/playbooks/setup-infrastructure.yml","controller":"aio1.openstack.local","user":"root"},"content":"---\n- name: Set_fact add_osd\n  ansible.builtin.set_fact:\n    add_osd: \"{{ groups[osd_group_name] | length != ansible_play_hosts_all | length }}\"\n\n- name: Set_fact container_exec_cmd\n  ansible.builtin.set_fact:\n    container_exec_cmd: \"{{ container_binary }} exec ceph-mon-{{ hostvars[item]['ansible_facts']['hostname'] }}\"\n  with_items: \"{{ groups.get(mon_group_name, []) }}\"\n  delegate_to: \"{{ item }}\"\n  delegate_facts: true\n  run_once: true\n  when: containerized_deployment | bool\n\n- name: Include_tasks system_tuning.yml\n  ansible.builtin.include_tasks: system_tuning.yml\n\n- name: Install dependencies\n  ansible.builtin.package:\n    name: parted\n    state: present\n  register: result\n  until: result is succeeded\n  when:\n    - not containerized_deployment | bool\n    - ansible_facts['os_family'] != 'ClearLinux'\n\n- name: Install numactl when needed\n  ansible.builtin.package:\n    name: numactl\n  register: result\n  until: result is succeeded\n  when:\n    - containerized_deployment | bool\n    - ceph_osd_numactl_opts | length > 0\n  tags: with_pkg\n\n- name: Include_tasks common.yml\n  ansible.builtin.include_tasks: common.yml\n\n- name: Set noup flag\n  ceph_osd_flag:\n    name: noup\n    cluster: \"{{ cluster }}\"\n  environment:\n    CEPH_CONTAINER_IMAGE: \"{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}\"\n    CEPH_CONTAINER_BINARY: \"{{ container_binary }}\"\n  delegate_to: \"{{ groups[mon_group_name][0] }}\"\n  run_once: true\n  when:\n    - not rolling_update | default(False) | bool\n    - not switch_to_containers | default(False) | bool\n\n- name: Include_tasks scenarios/lvm.yml\n  ansible.builtin.include_tasks: scenarios/lvm.yml\n  when:\n    - lvm_volumes|length > 0\n    - not rolling_update|default(False) | bool\n\n- name: Include_tasks scenarios/lvm-batch.yml\n  ansible.builtin.include_tasks: scenarios/lvm-batch.yml\n  when:\n    - devices|length > 0\n    - not rolling_update|default(False) | bool\n\n- name: Include_tasks start_osds.yml\n  ansible.builtin.include_tasks: start_osds.yml\n\n- name: Unset noup flag\n  ceph_osd_flag:\n    name: noup\n    cluster: \"{{ cluster }}\"\n    state: absent\n  environment:\n    CEPH_CONTAINER_IMAGE: \"{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}\"\n    CEPH_CONTAINER_BINARY: \"{{ container_binary }}\"\n  delegate_to: \"{{ groups[mon_group_name][0] }}\"\n  when:\n    - not rolling_update | default(False) | bool\n    - not switch_to_containers | default(False) | bool\n    - inventory_hostname == ansible_play_hosts_all | last\n\n- name: Wait for all osd to be up\n  ansible.builtin.command: \"{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} osd stat -f json\"\n  register: wait_for_all_osds_up\n  retries: \"{{ nb_retry_wait_osd_up }}\"\n  delay: \"{{ delay_wait_osd_up }}\"\n  changed_when: false\n  delegate_to: \"{{ groups[mon_group_name][0] }}\"\n  until:\n    - (wait_for_all_osds_up.stdout | from_json)[\"num_osds\"] | int > 0\n    - (wait_for_all_osds_up.stdout | from_json)[\"num_osds\"] == (wait_for_all_osds_up.stdout | from_json)[\"num_up_osds\"]\n  when:\n    - not ansible_check_mode\n    - inventory_hostname == ansible_play_hosts_all | last\n  tags: wait_all_osds_up\n\n- name: Include crush_rules.yml\n  ansible.builtin.include_tasks: crush_rules.yml\n  when: hostvars[groups[mon_group_name][0]]['crush_rule_config'] | default(crush_rule_config) | bool\n  tags: wait_all_osds_up\n","created":"2025-12-08T13:50:38.647015Z","updated":"2025-12-08T13:50:38.647027Z","path":"/etc/ansible/roles/ceph-ansible/roles/ceph-osd/tasks/main.yml"}