{"id":308,"sha1":"eb40e744833f806954f7a6137a45ee861f1d4977","playbook":{"id":3,"items":{"plays":37,"tasks":567,"results":554,"hosts":7,"files":221,"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-14T10:15:01.440414Z","ended":"2025-12-14T10:21:34.655502Z","duration":"00:06:33.215088","name":null,"ansible_version":"2.18.6","client_version":"1.7.4","python_version":"3.13.5","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: Nfs various pre-requisites tasks\n  block:\n    - name: Set_fact exec_cmd_nfs - external\n      ansible.builtin.set_fact:\n        exec_cmd_nfs: \"{{ container_binary + ' run --rm --net=host -v /etc/ceph:/etc/ceph:z -v /var/lib/ceph/:/var/lib/ceph/:z -v /var/log/ceph/:/var/log/ceph/:z --entrypoint=rados ' + ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else 'rados' }} -n client.{{ ceph_nfs_ceph_user }} -k /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ceph_nfs_ceph_user }}/keyring\"\n        delegate_node: \"{{ inventory_hostname }}\"\n      when: groups.get(mon_group_name, []) | length == 0\n\n    - name: Set_fact exec_cmd_nfs - internal\n      ansible.builtin.set_fact:\n        exec_cmd_nfs: \"{{ container_binary + ' exec ceph-mon-' + hostvars[groups[mon_group_name][0]]['ansible_facts']['hostname'] if containerized_deployment | bool else '' }} rados\"\n        delegate_node: \"{{ groups[mon_group_name][0] }}\"\n      when: groups.get(mon_group_name, []) | length > 0\n\n    - name: Check if rados index object exists\n      ansible.builtin.shell: \"set -o pipefail && {{ exec_cmd_nfs | default('') }} -p {{ cephfs_data_pool.name }} --cluster {{ cluster }} ls | grep {{ ceph_nfs_rados_export_index }}\"\n      changed_when: false\n      failed_when: false\n      register: rados_index_exists\n      check_mode: false\n      when: ceph_nfs_rados_backend | bool\n      delegate_to: \"{{ delegate_node }}\"\n      run_once: true\n\n    - name: Create an empty rados index object\n      ansible.builtin.command: \"{{ exec_cmd_nfs | default('') }} -p {{ cephfs_data_pool.name }} --cluster {{ cluster }} put {{ ceph_nfs_rados_export_index }} /dev/null\"\n      when:\n        - ceph_nfs_rados_backend | bool\n        - rados_index_exists.rc != 0\n      delegate_to: \"{{ delegate_node }}\"\n      changed_when: false\n      run_once: true\n\n- name: Create /etc/ganesha\n  ansible.builtin.file:\n    path: /etc/ganesha\n    state: directory\n    owner: root\n    group: root\n    mode: \"0755\"\n\n- name: Generate ganesha configuration file\n  ansible.builtin.template:\n    src: \"ganesha.conf.j2\"\n    dest: /etc/ganesha/ganesha.conf\n    owner: \"root\"\n    group: \"root\"\n    mode: \"0644\"\n  notify: Restart ceph nfss\n\n- name: Generate ganesha idmap.conf file\n  openstack.config_template.config_template:\n    src: \"idmap.conf.j2\"\n    dest: \"{{ ceph_nfs_idmap_conf }}\"\n    owner: \"root\"\n    group: \"root\"\n    mode: \"0644\"\n    config_overrides: \"{{ idmap_conf_overrides }}\"\n    config_type: ini\n  notify: Restart ceph nfss\n\n- name: Create exports directory\n  ansible.builtin.file:\n    path: /etc/ganesha/export.d\n    state: directory\n    owner: \"root\"\n    group: \"root\"\n    mode: \"0755\"\n  when: ceph_nfs_dynamic_exports | bool\n\n- name: Create exports dir index file\n  ansible.builtin.copy:\n    content: \"\"\n    force: false\n    dest: /etc/ganesha/export.d/INDEX.conf\n    owner: \"root\"\n    group: \"root\"\n    mode: \"0644\"\n  when: ceph_nfs_dynamic_exports | bool\n\n- name: Include_tasks systemd.yml\n  ansible.builtin.include_tasks: systemd.yml\n  when: containerized_deployment | bool\n\n- name: Systemd start nfs container\n  ansible.builtin.systemd:\n    name: ceph-nfs@{{ ceph_nfs_service_suffix | default(ansible_facts['hostname']) }}\n    state: started\n    enabled: true\n    masked: false\n    daemon_reload: true\n  when:\n    - containerized_deployment | bool\n    - ceph_nfs_enable_service | bool\n\n- name: Start nfs gateway service\n  ansible.builtin.systemd:\n    name: nfs-ganesha\n    state: started\n    enabled: true\n    masked: false\n  when:\n    - not containerized_deployment | bool\n    - ceph_nfs_enable_service | bool\n","created":"2025-12-14T10:15:07.656204Z","updated":"2025-12-14T10:15:07.656215Z","path":"/etc/ansible/roles/ceph-ansible/roles/ceph-nfs/tasks/start_nfs.yml"}