|
13 | 13 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
14 | 14 | # License for the specific language governing permissions and limitations |
15 | 15 | # under the License. |
| 16 | + |
| 17 | +- name: Gather ansible_local facts |
| 18 | + ansible.builtin.setup: |
| 19 | + gather_subset: |
| 20 | + - "!all" |
| 21 | + - "!min" |
| 22 | + - "local" |
| 23 | + when: |
| 24 | + - ansible_local is not defined |
| 25 | + |
| 26 | +- name: Clean up legacy containerized iscsid |
| 27 | + ansible.builtin.include_tasks: cleanup_containers.yml |
| 28 | + |
16 | 29 | - name: Run iscsid install tasks with root privileges |
17 | 30 | become: true |
18 | 31 | block: |
19 | | - - name: Create persistent directories |
20 | | - ansible.builtin.file: |
21 | | - path: "{{ item.path }}" |
22 | | - state: directory |
23 | | - setype: "{{ item.setype | default(omit) }}" |
24 | | - selevel: "{{ item.selevel | default(omit) }}" |
25 | | - recurse: "{{ item.recurse | default(omit) }}" |
26 | | - mode: "{{ item.mode | default(omit) }}" |
27 | | - loop: |
28 | | - - {'path': /etc/iscsi, 'setype': container_file_t, 'mode': '0755'} |
29 | | - - {'path': /etc/target, 'setype': container_file_t} |
30 | | - - {'path': /var/lib/iscsi, 'setype': container_file_t} |
31 | | - - {'path': /var/lib/config-data, 'setype': container_file_t, 'selevel': s0, 'mode': '0755'} |
32 | | - - {'path': /var/lib/config-data/ansible-generated/iscsid, 'setype': container_file_t, 'mode': '0755'} |
33 | | - |
34 | | - - name: Stat /lib/systemd/system/iscsid.socket |
| 32 | + - name: Install iscsid packages |
| 33 | + tags: |
| 34 | + - install |
| 35 | + - edpm_iscsid |
| 36 | + ansible.builtin.dnf: |
| 37 | + name: "{{ edpm_iscsid_packages }}" |
| 38 | + state: present |
| 39 | + register: edpm_iscsid_packages_install |
| 40 | + until: edpm_iscsid_packages_install is succeeded |
| 41 | + retries: "{{ edpm_iscsid_download_retries }}" |
| 42 | + delay: "{{ edpm_iscsid_download_delay }}" |
| 43 | + when: ansible_local.bootc is not defined or not ansible_local.bootc |
| 44 | + |
| 45 | + - name: Detect whether the data plane is being adopted |
35 | 46 | ansible.builtin.stat: |
36 | | - path: /lib/systemd/system/iscsid.socket |
37 | | - register: stat_iscsid_socket |
38 | | - |
39 | | - - name: Stop and disable iscsid.socket service |
40 | | - ansible.builtin.systemd: |
41 | | - name: iscsid.socket |
42 | | - state: stopped |
43 | | - enabled: false |
44 | | - when: stat_iscsid_socket.stat.exists |
45 | | - |
46 | | - - name: Gather services facts |
47 | | - ansible.builtin.service_facts: |
48 | | - |
49 | | - - name: Stop and disable iscsi.service and iscsi-starter.service |
50 | | - ansible.builtin.systemd: |
51 | | - name: "{{ item }}" |
52 | | - state: stopped |
53 | | - enabled: false |
| 47 | + path: "{{ edpm_iscsid_tripleo_config_dir }}" |
| 48 | + register: tripleo_iscsid_config_dir |
| 49 | + |
| 50 | + - name: Adopt the iscsid configuration |
| 51 | + when: |
| 52 | + - tripleo_iscsid_config_dir.stat.exists |
| 53 | + - tripleo_iscsid_config_dir.stat.isdir |
| 54 | + block: |
| 55 | + - name: Copy the containerized iscsid configuration to the host |
| 56 | + ansible.builtin.copy: |
| 57 | + src: "{{ edpm_iscsid_tripleo_config_dir }}/" |
| 58 | + dest: /etc/iscsi |
| 59 | + remote_src: true |
| 60 | + mode: preserve |
| 61 | + |
| 62 | + - name: Mark the iscsid adoption complete |
| 63 | + ansible.builtin.command: | |
| 64 | + mv "{{ edpm_iscsid_tripleo_config_dir }}" "{{ edpm_iscsid_tripleo_config_dir }}.adopted" |
| 65 | + changed_when: true |
| 66 | + |
| 67 | + - name: Check SELinux context of iSCSI directories |
| 68 | + ansible.builtin.command: "/usr/sbin/restorecon -nvr /etc/iscsi /var/lib/iscsi" |
| 69 | + changed_when: false |
| 70 | + register: iscsi_selinux_status |
| 71 | + |
| 72 | + - name: Restore SELinux context of iSCSI directories |
| 73 | + ansible.builtin.command: "/usr/sbin/restorecon -rF /etc/iscsi /var/lib/iscsi" |
54 | 74 | when: |
55 | | - - ansible_facts.services[item] is defined |
56 | | - - ansible_facts.services[item]["status"] != "not-found" |
57 | | - - ansible_facts.services[item]["status"] == "enabled" |
58 | | - loop: |
59 | | - - iscsi.service |
60 | | - - iscsi-starter.service |
| 75 | + - iscsi_selinux_status.stdout_lines | length > 0 |
| 76 | + changed_when: true |
0 commit comments