# Copyright 2022 Dell Inc. or its subsidiaries. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. --- - name: Include security variable file security_vars.yml include_vars: "{{ security_vars_filename }}" no_log: true tags: init - name: Validate input parameters of security vars are not empty fail: msg: "{{ input_security_failure_msg }}" register: input_base_check tags: [ validate, security ] when: - domain_name | length < 1 or realm_name | length < 1 - name: Validate the domain name assert: that: - domain_name is regex("^(?!-)[A-Za-z0-9-]+([\\-\\.]{1}[a-z0-9]+)*\\.[A-Za-z]{2,}$") success_msg: "{{ dom_name_success_msg }}" fail_msg: "{{ dom_name_fail_msg }}" tags: [ validate, security ] - name: Validate the realm name assert: that: - realm_name is regex("^(?!-)[A-Z0-9-]+([\\-\\.]{1}[a-z0-9]+)*\\.[A-Z]{2,}$") - '"." in realm_name' success_msg: "{{ realm_success_msg }}" fail_msg: "{{ realm_fail_msg }}" tags: [ validate, security ] - name: Fetch the short hostname command: hostname -s register: short_hostname changed_when: false tags: [ validate, security ] - name: Verify the hostname is not blank in hostname fail: msg: " {{ hostname_blank_msg }}" when: short_hostname.stdout | length < 1 tags: [ validate, security ] - name: Validate the host name assert: that: - short_hostname.stdout is regex(("^(([a-z]|[a-z][a-z0-9\-]*[a-z0-9])\.)*([a-z]|[a-z][a-z0-9\-]*[a-z0-9])$")) - short_hostname.stdout != "localhost" success_msg: "{{ server_hostname_success }}" fail_msg: "{{ server_hostname_fail }}" tags: [ validate, security ] - name: Fetch the domain name command: hostname -d register: domain_name_set changed_when: false tags: [ validate, security ] - name: Verify the domain name is not blank in hostname fail: msg: " {{ domain_name_blank_msg }}" when: domain_name_set.stdout | length < 1 tags: [ validate, security ] - name: Set fact for the domain name in hostname set_fact: ms_domain_name: "{{ domain_name_set.stdout }}" tags: [ validate, security ] - name: Validate the domain name set on the host assert: that: - domain_name == ms_domain_name success_msg: "{{ server_domain_name_success }}" fail_msg: "{{ server_domain_name_fail }}" tags: [ validate, security ] - name: Get the hostname command: hostname register: machine_hostname changed_when: false tags: [ validate, security ] - name: Add host name in hosts file lineinfile: dest: "{{ hosts_file_path }}" line: "{{ public_ip }} {{ machine_hostname.stdout }}" state: present create: yes mode: "{{ hosts_file_mode }}" tags: [ validate, security ] - name: Validate max_failures assert: that: - max_failures | int == max_failures_default_value success_msg: "{{ max_failures_success_msg }}" fail_msg: "{{ max_failures_fail_msg }}" tags: [ validate, security ] - name: Validate failure_reset_interval assert: that: - failure_reset_interval | int - failure_reset_interval | int <= failure_reset_interval_max_value - failure_reset_interval | int >= failure_reset_interval_min_value success_msg: "{{ failure_reset_interval_success_msg }}" fail_msg: "{{ failure_reset_interval_fail_msg }}" tags: [ validate, security ] - name: Validate lockout_duration assert: that: - lockout_duration | int - lockout_duration | int <= lockout_duration_max_value - lockout_duration | int >= lockout_duration_min_value success_msg: "{{ lockout_duration_success_msg }}" fail_msg: "{{ lockout_duration_fail_msg }}" tags: [ validate, security ] - name: Validate session_timeout assert: that: - session_timeout | int - session_timeout | int <= session_timeout_max_value - session_timeout | int >= session_timeout_min_value success_msg: "{{ session_timeout_success_msg }}" fail_msg: "{{ session_timeout_fail_msg }}" tags: [ validate, security ] - name: Validate alert_email_address assert: that: - email_search_key in alert_email_address - alert_email_address | length < email_max_length success_msg: "{{ alert_email_success_msg }}" fail_msg: "{{ alert_email_fail_msg }}" tags: [ validate, security ] when: alert_email_address | length > 1 - name: Warning - alert_email_address is empty debug: msg: "{{ alert_email_warning_msg }}" tags: security when: alert_email_address | length < 1