password_config.yml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved.
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. ---
  15. - name: Check login_vars file is encrypted
  16. command: cat {{ login_vars_filename }}
  17. changed_when: false
  18. register: config_content
  19. - name: Decrpyt login_vars.yml
  20. command: >-
  21. ansible-vault decrypt {{ login_vars_filename }}
  22. --vault-password-file {{ vault_filename }}
  23. changed_when: false
  24. when: "'$ANSIBLE_VAULT;' in config_content.stdout"
  25. - name: Include variable file login_vars.yml
  26. include_vars: "{{ login_vars_filename }}"
  27. no_log: true
  28. - name: Validate input parameters are not empty
  29. fail:
  30. msg: "{{ input_config_failure_msg }}"
  31. register: input_config_check
  32. when:
  33. - provision_password | length < 1 or
  34. cobbler_password | length < 1 or
  35. idrac_username | length < 1 or
  36. idrac_password | length < 1
  37. - name: Assert provision_password
  38. assert:
  39. that:
  40. - provision_password | length > min_length | int - 1
  41. - provision_password | length < max_length | int + 1
  42. - '"-" not in provision_password '
  43. - '"\\" not in provision_password '
  44. - '"\"" not in provision_password '
  45. - " \"'\" not in provision_password "
  46. success_msg: "{{ success_msg_provision_password }}"
  47. fail_msg: "{{ fail_msg_provision_password }}"
  48. no_log: true
  49. register: provision_password_check
  50. - name: Assert cobbler_password
  51. assert:
  52. that:
  53. - cobbler_password | length > min_length | int - 1
  54. - cobbler_password | length < max_length | int + 1
  55. - '"-" not in cobbler_password '
  56. - '"\\" not in cobbler_password '
  57. - '"\"" not in cobbler_password '
  58. - " \"'\" not in cobbler_password "
  59. success_msg: "{{ success_msg_cobbler_password }}"
  60. fail_msg: "{{ fail_msg_cobbler_password }}"
  61. no_log: true
  62. register: cobbler_password_check
  63. - name: Assert idrac_username
  64. assert:
  65. that:
  66. - idrac_username | length >= min_username_length
  67. - idrac_username | length < max_length
  68. - '"-" not in idrac_username '
  69. - '"\\" not in idrac_username '
  70. - '"\"" not in idrac_username '
  71. - " \"'\" not in idrac_username "
  72. success_msg: "{{ success_idrac_username }}"
  73. fail_msg: "{{ fail_idrac_username }}"
  74. no_log: true
  75. - name: Assert idrac_password
  76. assert:
  77. that:
  78. - idrac_password | length > min_username_length | int - 1
  79. - idrac_password | length < max_length | int + 1
  80. - '"-" not in idrac_password '
  81. - '"\\" not in idrac_password '
  82. - '"\"" not in idrac_password '
  83. - " \"'\" not in idrac_password "
  84. success_msg: "{{ success_msg_idrac_password }}"
  85. fail_msg: "{{ fail_msg_idrac_password }}"
  86. no_log: true
  87. register: idrac_password_check
  88. - name: Assert docker_username and docker_password
  89. assert:
  90. that:
  91. - docker_username | length > min_length | int - 1
  92. - docker_username | length < max_length | int + 1
  93. - docker_password | length > min_length | int - 1
  94. - docker_password | length < max_length | int + 1
  95. success_msg: "{{ success_msg_docker_credentials }}"
  96. fail_msg: "{{ fail_msg_docker_credentials }}"
  97. when: docker_username or docker_password
  98. no_log: true
  99. - name: Verify ethernet_switch_username and ethernet_switch_password are not empty
  100. assert:
  101. that:
  102. - ethernet_switch_username | length > 0
  103. - ethernet_switch_password | length > 0
  104. success_msg: "{{ ethernet_params_success_msg }}"
  105. fail_msg: "{{ ethernet_params_empty_fail_msg }}"
  106. when: ethernet_switch_support
  107. - name: Assert ethernet_switch_username
  108. assert:
  109. that:
  110. - ethernet_switch_username | length >= min_username_length
  111. - ethernet_switch_username | length < max_length
  112. - '"-" not in ethernet_switch_username '
  113. - '"\\" not in ethernet_switch_username '
  114. - '"\"" not in ethernet_switch_username '
  115. - " \"'\" not in ethernet_switch_username "
  116. success_msg: "{{ success_ethernet_switch_username }}"
  117. fail_msg: "{{ fail_ethernet_switch_username }}"
  118. when: ethernet_switch_support
  119. - name: Assert ethernet_switch_password
  120. assert:
  121. that:
  122. - ethernet_switch_password | length > min_username_length | int - 1
  123. - ethernet_switch_password | length < max_length | int + 1
  124. - '"-" not in ethernet_switch_password '
  125. - '"\\" not in ethernet_switch_password '
  126. - '"\"" not in ethernet_switch_password '
  127. - " \"'\" not in ethernet_switch_password "
  128. success_msg: "{{ success_msg_ethernet_switch_password }}"
  129. fail_msg: "{{ fail_msg_ethernet_switch_password }}"
  130. when: ethernet_switch_support
  131. no_log: true
  132. - name: Verify ib_username and ib_password are not empty
  133. assert:
  134. that:
  135. - ib_username | length > 0
  136. - ib_password | length > 0
  137. success_msg: "{{ ib_params_success_msg }}"
  138. fail_msg: "{{ ib_params_empty_fail_msg }}"
  139. when: ib_switch_support
  140. - name: Assert ib_username
  141. assert:
  142. that:
  143. - ib_username | length >= min_username_length
  144. - ib_username | length < max_length
  145. - '"-" not in ib_username '
  146. - '"\\" not in ib_username '
  147. - '"\"" not in ib_username '
  148. - " \"'\" not in ib_username "
  149. success_msg: "{{ success_ib_username }}"
  150. fail_msg: "{{ fail_ib_username }}"
  151. when: ib_switch_support
  152. - name: Assert ib_password
  153. assert:
  154. that:
  155. - ib_password | length > min_username_length | int - 1
  156. - ib_password | length < max_length | int + 1
  157. - '"-" not in ib_password '
  158. - '"\\" not in ib_password '
  159. - '"\"" not in ib_password '
  160. - " \"'\" not in ib_password "
  161. success_msg: "{{ success_msg_ib_password }}"
  162. fail_msg: "{{ fail_msg_ib_password }}"
  163. when: ib_switch_support
  164. no_log: true
  165. - name: Verify powervault_me4_username and powervault_me4_password are not empty
  166. assert:
  167. that:
  168. - powervault_me4_username | length > 0
  169. - powervault_me4_password | length > 0
  170. success_msg: "{{ pv_params_success_msg }}"
  171. fail_msg: "{{ pv_params_empty_fail_msg }}"
  172. when: powervault_support
  173. - name: Assert powervault_me4_username
  174. assert:
  175. that:
  176. - powervault_me4_username | length >= min_username_length
  177. - powervault_me4_username | length < max_length
  178. - '"-" not in powervault_me4_username '
  179. - '"\\" not in powervault_me4_username '
  180. - '"\"" not in powervault_me4_username '
  181. - " \"'\" not in powervault_me4_username "
  182. success_msg: "{{ success_powervault_me4_username }}"
  183. fail_msg: "{{ fail_powervault_me4_username }}"
  184. when: powervault_support
  185. - name: Assert powervault_me4_password
  186. assert:
  187. that:
  188. - powervault_me4_password | length > min_username_length | int - 1
  189. - powervault_me4_password | length < max_length | int + 1
  190. - '"-" not in powervault_me4_password '
  191. - '"\\" not in powervault_me4_password '
  192. - '"\"" not in powervault_me4_password '
  193. - " \"'\" not in powervault_me4_password "
  194. success_msg: "{{ success_msg_powervault_me4_password }}"
  195. fail_msg: "{{ fail_msg_powervault_me4_password }}"
  196. when: powervault_support
  197. no_log: true
  198. - name: Create ansible vault key
  199. set_fact:
  200. vault_key: "{{ lookup('password', '/dev/null chars=ascii_letters') }}"
  201. when: "'$ANSIBLE_VAULT;' not in config_content.stdout"
  202. - name: Save vault key
  203. copy:
  204. dest: "{{ vault_filename }}"
  205. content: |
  206. {{ vault_key }}
  207. owner: root
  208. force: yes
  209. mode: "{{ vault_file_perm }}"
  210. when: "'$ANSIBLE_VAULT;' not in config_content.stdout"
  211. - name: Encrypt input config file
  212. command: >-
  213. ansible-vault encrypt {{ login_vars_filename }}
  214. --vault-password-file {{ vault_filename }}
  215. changed_when: false