|
85 | 85 |
|
86 | 86 | # Admin Password |
87 | 87 | - name: Prompt User for a password if not provided in config or vault |
88 | | - when: admin_password is undefined or admin_password | length < 4 |
| 88 | + when: admin_password is undefined or admin_password | length < 2 |
89 | 89 | block: |
90 | 90 | - name: Prompt User for Password if not supplied |
91 | | - when: admin_password is undefined |
92 | 91 | no_log: true |
93 | 92 | pause: |
94 | | - prompt: "No admin password found in profile.yml or extra_vars, please provide a Password" |
| 93 | + prompt: "No admin password found in profile.yml or extra_vars, or provided password too short; please provide a Password" |
95 | 94 | register: __user_input_password |
96 | 95 |
|
97 | 96 | - name: Set Admin password |
|
105 | 104 | quiet: yes |
106 | 105 | that: |
107 | 106 | - admin_password is defined |
108 | | - - admin_password | length > 3 |
109 | | - fail_msg: "You must supply an Admin Password" |
| 107 | + - admin_password | length > 2 |
| 108 | + fail_msg: "You must supply an Admin Password of at least 2 chars" |
110 | 109 |
|
111 | 110 | # Handle Definition File |
112 | 111 | - name: Seek Definition files in Definition Path |
|
165 | 164 | vars: |
166 | 165 | user_config: |
167 | 166 | name_prefix: "{{ name_prefix | default(default_name_prefix) }}" |
168 | | - admin_password: "{{ admin_password }}" |
169 | 167 | tags: "{{ tags | default(omit) }}" |
170 | 168 | region: "{{ infra_region | default(default_infra_region) }}" |
171 | 169 | infra_type: "{{ infra_type | default(default_infra_type) }}" |
|
343 | 341 | msg: "{{ globals }}" |
344 | 342 | verbosity: 3 |
345 | 343 |
|
| 344 | +- name: Determine if Cloud Roles should be called |
| 345 | + ansible.builtin.set_fact: |
| 346 | + init__call_cloud_role: "{{ infra is defined or env is defined or ml is defined or de is defined or datahub is defined or opdb is defined or dw is defined | default(False) }}" |
| 347 | + init__call_cdp_public: "{{ env is defined or ml is defined or de is defined or datahub is defined or opdb is defined or dw is defined | default(False) }}" |
| 348 | + |
| 349 | +- name: Check Admin Password is CDP Public compliant when calling CDP Public |
| 350 | + when: init__call_cdp_public | bool |
| 351 | + ansible.builtin.assert: |
| 352 | + that: |
| 353 | + - admin_password is match('^(?=.*[A-Za-z])(?=.*\\d)(?=.*[@$!%*#?&])[A-Za-z\\d@$!%*#?&]{8,64}$') |
| 354 | + fail_msg: >- |
| 355 | + Admin Password must comply with CDP Public requirements: 1 Upper, 1 Special, 1 Number, 8-64 chars. |
| 356 | + quiet: yes |
| 357 | + |
346 | 358 | - name: Add no_log variables to globals at end of init |
347 | 359 | no_log: true |
348 | 360 | ansible.builtin.set_fact: |
349 | 361 | globals: "{{ globals | default({}) | combine(__no_log_globals, recursive=True) }}" |
350 | 362 | vars: |
351 | 363 | __no_log_globals: |
352 | 364 | admin_password: "{{ admin_password | mandatory }}" |
353 | | - |
354 | | -- name: Determine if Cloud Roles should be called |
355 | | - ansible.builtin.set_fact: |
356 | | - init__call_cloud_role: "{{ infra is defined or env is defined or ml is defined or de is defined or datahub is defined or opdb is defined or dw is defined | default(False) }}" |
|
0 commit comments