|
|
@@ -0,0 +1,103 @@
|
|
|
+---
|
|
|
+- 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"
|
|
|
+...
|