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