1
0
danger3466 10 сар өмнө
parent
commit
b528da9527
6 өөрчлөгдсөн 117 нэмэгдсэн , 103 устгасан
  1. 10 0
      README.md
  2. 7 0
      defaults/main.yml
  3. 0 103
      drbd.yml
  4. 98 0
      tasks/main.yml
  5. 0 0
      templates/resource.res.j2
  6. 2 0
      vars/main.yml

+ 10 - 0
README.md

@@ -0,0 +1,10 @@
+```yaml
+---
+- name: Cluster NFC DRBD
+  hosts: nodes
+  any_errors_fatal: true
+  roles:
+    - drbd
+
+...
+```

+ 7 - 0
defaults/main.yml

@@ -0,0 +1,7 @@
+---
+drbd_resource_name: r0
+drbd_device: /dev/drbd1
+drbd_disk: /dev/sdb
+drbd_patrition_number: 1 # or ""
+drbd_fs: ext4
+mount_point: /mnt/nfs

+ 0 - 103
drbd.yml

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

+ 98 - 0
tasks/main.yml

@@ -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"

+ 0 - 0
resource.res.j2 → templates/resource.res.j2


+ 2 - 0
vars/main.yml

@@ -0,0 +1,2 @@
+---
+# vars file for drbd