prole/infrastructure/roles/iscsi/tasks/login.yml
chrisfu 133b719479 Align CNPG bootstrap placement with Ansible policy
Prefer infra-managed manifests for bootstrap; reconcile CNPG instances based on Ready+schedulable labeled db nodes; update manifests to use node-role affinity + anti-affinity; add policy/tests and config touch-ups (incl. prole.cfg).
2026-03-18 22:06:41 -07:00

161 lines
3.7 KiB
YAML

---
- name: Install iSCSI dependencies
ansible.builtin.package:
name:
- open-iscsi
- util-linux
- xfsprogs
state: present
tags:
- iscsi
- iscsi_login
- iscsi_storage
- name: Ensure iscsid enabled
ansible.builtin.service:
name: iscsid
state: started
enabled: true
tags:
- iscsi
- iscsi_login
- iscsi_storage
- name: Check if k3s systemd unit exists
ansible.builtin.stat:
path: /etc/systemd/system/k3s.service
register: _k3s_unit
tags:
- iscsi
- iscsi_login
- iscsi_storage
- name: Check if k3s-agent systemd unit exists
ansible.builtin.stat:
path: /etc/systemd/system/k3s-agent.service
register: _k3s_agent_unit
tags:
- iscsi
- iscsi_login
- iscsi_storage
- name: Ensure k3s stops/restarts before open-iscsi (systemd drop-in)
block:
- name: Ensure k3s.service.d exists
ansible.builtin.file:
path: /etc/systemd/system/k3s.service.d
state: directory
mode: "0755"
- name: Install k3s open-iscsi ordering drop-in
ansible.builtin.copy:
dest: /etc/systemd/system/k3s.service.d/open-iscsi.conf
mode: "0644"
content: |
[Unit]
Wants=open-iscsi.service
After=open-iscsi.service
PartOf=open-iscsi.service
notify:
- reload systemd
when: _k3s_unit.stat.exists | default(false)
tags:
- iscsi
- iscsi_login
- iscsi_storage
- name: Ensure k3s-agent stops/restarts before open-iscsi (systemd drop-in)
block:
- name: Ensure k3s-agent.service.d exists
ansible.builtin.file:
path: /etc/systemd/system/k3s-agent.service.d
state: directory
mode: "0755"
- name: Install k3s-agent open-iscsi ordering drop-in
ansible.builtin.copy:
dest: /etc/systemd/system/k3s-agent.service.d/open-iscsi.conf
mode: "0644"
content: |
[Unit]
Wants=open-iscsi.service
After=open-iscsi.service
PartOf=open-iscsi.service
notify:
- reload systemd
when: _k3s_agent_unit.stat.exists | default(false)
tags:
- iscsi
- iscsi_login
- iscsi_storage
- name: Ensure open-iscsi systemd override directory exists
ansible.builtin.file:
path: /etc/systemd/system/open-iscsi.service.d
state: directory
mode: "0755"
tags:
- iscsi
- iscsi_login
- iscsi_storage
- name: Install open-iscsi retry-on-boot override
ansible.builtin.copy:
dest: /etc/systemd/system/open-iscsi.service.d/retry-on-boot.conf
mode: "0644"
content: |
[Unit]
Wants=network-online.target iscsid.service
After=network-online.target iscsid.service
[Service]
Restart=on-failure
RestartSec=10s
StartLimitIntervalSec=120
StartLimitBurst=10
notify:
- reload systemd
- restart open-iscsi
tags:
- iscsi
- iscsi_login
- iscsi_storage
- name: Apply open-iscsi override immediately (if changed)
ansible.builtin.meta: flush_handlers
tags:
- iscsi
- iscsi_login
- iscsi_storage
- name: Ensure open-iscsi enabled
ansible.builtin.systemd:
name: open-iscsi
enabled: true
tags:
- iscsi
- iscsi_login
- iscsi_storage
- name: Discover iSCSI targets
ansible.builtin.command: >-
iscsiadm -m discovery -t st -p {{ iscsi_portal }}
register: _iscsi_discovery
changed_when: false
tags:
- iscsi
- iscsi_discovery
- iscsi_login
- iscsi_storage
- name: Configure and login iSCSI targets
ansible.builtin.include_tasks: iscsi_target.yml
loop: "{{ iscsi_targets | default([]) }}"
loop_control:
loop_var: t
label: "{{ t.iqn | default('<unknown-iqn>') }}"
tags:
- iscsi
- iscsi_login
- iscsi_storage