--- - name: Install DRBD apt: name: drbd-utils state: present update_cache: yes - name: Check patrition shell: ls {{ drbd_disk}}{{ drbd_patrition_number }} register: result failed_when: False changed_when: False - name: Create patrition shell: echo -en "o\nn\np\n{{ drbd_patrition_number }}\n\n\nw\n" | fdisk {{ drbd_disk }} register: result when: result.rc == 2 and drbd_patrition_number != "" and drbd_patrition_number != none 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: "{{ mount_point }}" state: directory - name: Unmount mount: path: "{{ mount_point }}" 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 }}{{ drbd_patrition_number }} internal check-resize register: find_metadata changed_when: False failed_when: False - name: Create metadata #command: drbdmeta 0 v08 {{ drbd_disk }}{{ drbd_patrition_number }} 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.{{ drbd_fs }} {{ drbd_device }} when: "'Primary' in drbd_status.stdout" - name: Mount mount: path: "{{ mount_point }}" src: "{{ drbd_device }}" fstype: "{{ drbd_fs }}" state: mounted when: "'Primary' in drbd_status.stdout"