main.yml 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. ---
  2. - name: Install DRBD
  3. apt:
  4. name: drbd-utils
  5. state: present
  6. update_cache: yes
  7. - name: Check patrition
  8. shell: ls {{ drbd_disk}}{{ drbd_patrition_number }}
  9. register: result
  10. failed_when: False
  11. changed_when: False
  12. - name: Create patrition
  13. shell: echo -en "o\nn\np\n{{ drbd_patrition_number }}\n\n\nw\n" | fdisk {{ drbd_disk }}
  14. register: result
  15. when: result.rc == 2 and drbd_patrition_number != "" and drbd_patrition_number != none
  16. failed_when:
  17. - "'Syncing disks' not in result.stdout"
  18. - "'Created a new partition' not in result.stdout"
  19. - name: Check DRBD status
  20. command: drbdadm status {{ drbd_resource_name }}
  21. register: result
  22. changed_when: False
  23. failed_when: False
  24. - name: Create mount point
  25. file:
  26. path: "{{ mount_point }}"
  27. state: directory
  28. - name: Unmount
  29. mount:
  30. path: "{{ mount_point }}"
  31. state: unmounted
  32. - name: Create config
  33. template:
  34. src: resource.res.j2
  35. dest: /etc/drbd.d/{{ drbd_resource_name }}.res
  36. - name: Down resource
  37. shell: drbdadm down {{ drbd_resource_name }}
  38. when: result.rc == 0
  39. #- name: Check config
  40. # command: drbdadm dump all
  41. - name: Find metadata on disk
  42. shell: drbdmeta 0 v08 {{ drbd_disk }}{{ drbd_patrition_number }} internal check-resize
  43. register: find_metadata
  44. changed_when: False
  45. failed_when: False
  46. - name: Create metadata
  47. #command: drbdmeta 0 v08 {{ drbd_disk }}{{ drbd_patrition_number }} internal create-md 2 --force
  48. command: drbdadm create-md --force {{ drbd_resource_name }}
  49. when: find_metadata.rc != 0
  50. - name: Up resource
  51. command: drbdadm up {{ drbd_resource_name }}
  52. - name: Find Primary
  53. shell: drbdadm status {{ drbd_resource_name }} | grep Primary
  54. register: result_primary
  55. changed_when: False
  56. failed_when: False
  57. # - name: Check DRBD role
  58. # shell: drbdadm status {{ drbd_resource_name }} | grep "{{ drbd_resource_name }} role:" | awk -F ":" '{print $2}'
  59. # register: result
  60. # changed_when: False
  61. # failed_when: False
  62. # - debug: var=result
  63. # failed_when: True
  64. - name: Resync resource
  65. command: drbdadm primary --force {{ drbd_resource_name }}
  66. # drbdadm new-current-uuid --clear-bitmap shared/0
  67. when: result_primary.rc != 0
  68. run_once: true
  69. - name: Check status
  70. shell: drbdadm status | grep {{ drbd_resource_name }}
  71. register: drbd_status
  72. - name: Create FS
  73. shell: mkfs.{{ drbd_fs }} {{ drbd_device }}
  74. when: "'Primary' in drbd_status.stdout"
  75. - name: Mount
  76. mount:
  77. path: "{{ mount_point }}"
  78. src: "{{ drbd_device }}"
  79. fstype: "{{ drbd_fs }}"
  80. state: mounted
  81. when: "'Primary' in drbd_status.stdout"