29 lines
1.1 KiB
YAML
29 lines
1.1 KiB
YAML
---
|
|
- name: 只读核对数据库宿主与数据挂载
|
|
hosts: pg_hosts
|
|
become: true
|
|
tasks:
|
|
- name: 限定已验证的平台
|
|
ansible.builtin.assert:
|
|
that:
|
|
- ansible_facts.distribution == 'Ubuntu'
|
|
- ansible_facts.distribution_version == '24.04'
|
|
- ansible_facts.architecture == 'x86_64'
|
|
- pg_instances | difference(['prod', 'dev']) | length == 0
|
|
- name: 核对共置内存预算
|
|
ansible.builtin.assert:
|
|
that:
|
|
- ansible_facts.memtotal_mb >= (2048 if 'dev' in pg_instances else 1536)
|
|
fail_msg: PG 与 etcd 共置前需通过承载 IaC 扩容;不能以当前 512 MiB LXC 直接上线。
|
|
- name: 核对每个数据父目录已单独挂载
|
|
ansible.builtin.command:
|
|
argv: [findmnt, --mountpoint, "{{ pg_data_root }}/{{ item }}", --noheadings, --output, 'TARGET,FSTYPE,SOURCE']
|
|
loop: "{{ pg_instances }}"
|
|
changed_when: false
|
|
check_mode: false
|
|
- name: 核对已有数据所有权
|
|
ansible.builtin.include_tasks: tasks/preflight-instance.yml
|
|
loop: "{{ pg_instances }}"
|
|
loop_control:
|
|
loop_var: pg_instance
|