--- - name: Cluster NFC DRBD hosts: nodes any_errors_fatal: true tasks: - name: Install DRBD apt: name: drbd-utils state: present update_cache: yes - name: Check patrition shell: ls {{ drbd_disk}}1 register: result failed_when: False changed_when: False - name: Create patrition shell: echo -en "o\nn\np\n1\n\n\nw\n" | fdisk {{ drbd_disk }} register: result when: result.rc == 2 failed_when: - "'Syncing disks' not in result.stdout" - "'Created a new partition' not in result.stdout" - name: Check DRBD status command: drbdadm status {{ drbd_resource_name }} register: result changed_when: False failed_when: False - name: Create mount point file: path: /mnt/nfs state: directory - name: Unmount mount: path: /mnt/nfs state: unmounted - name: Create config template: src: resource.res.j2 dest: /etc/drbd.d/{{ drbd_resource_name }}.res - name: Down resource shell: drbdadm down {{ drbd_resource_name }} when: result.rc == 0 #- name: Check config # command: drbdadm dump all - name: Find metadata on disk shell: drbdmeta 0 v08 {{ drbd_disk }}1 internal check-resize register: find_metadata changed_when: False failed_when: False - name: Create metadata #command: drbdmeta 0 v08 {{ drbd_disk }}1 internal create-md 2 --force command: drbdadm create-md --force {{ drbd_resource_name }} when: find_metadata.rc != 0 - name: Up resource command: drbdadm up {{ drbd_resource_name }} - name: Find Primary shell: drbdadm status {{ drbd_resource_name }} | grep Primary register: result_primary changed_when: False failed_when: False # - name: Check DRBD role # shell: drbdadm status {{ drbd_resource_name }} | grep "{{ drbd_resource_name }} role:" | awk -F ":" '{print $2}' # register: result # changed_when: False # failed_when: False # - debug: var=result # failed_when: True - name: Resync resource command: drbdadm primary --force {{ drbd_resource_name }} # drbdadm new-current-uuid --clear-bitmap shared/0 when: result_primary.rc != 0 run_once: true - name: Check status shell: drbdadm status | grep {{ drbd_resource_name }} register: drbd_status - name: Create FS shell: mkfs.ext4 /dev/drbd1 when: "'Primary' in drbd_status.stdout" - name: Mount mount: path: /mnt/nfs src: /dev/drbd1 fstype: ext4 state: mounted when: "'Primary' in drbd_status.stdout" ...