drbd.yml 2.7 KB

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