|
@@ -0,0 +1,278 @@
|
|
|
+# 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.
|
|
|
+---
|
|
|
+
|
|
|
+# Testcase OMNIA_1.2_Grafana_TC_005
|
|
|
+# Test case to Validate syslog.log on grafana loki
|
|
|
+
|
|
|
+- name: OMNIA_1.2_Grafana_TC_005
|
|
|
+ hosts: localhost
|
|
|
+ connection: local
|
|
|
+ tags: TC_005
|
|
|
+ gather_subset:
|
|
|
+ - 'min'
|
|
|
+ vars_files:
|
|
|
+ - ../input_params/base_vars.yml
|
|
|
+ - test_vars/test_grafana_vars.yml
|
|
|
+ tasks:
|
|
|
+ - name: Check login_vars file is encrypted
|
|
|
+ command: cat {{ login_vars_path }}
|
|
|
+ changed_when: false
|
|
|
+ register: config_content
|
|
|
+ no_log: true
|
|
|
+ tags: always
|
|
|
+
|
|
|
+ - name: Validate login file is encypted or not
|
|
|
+ assert:
|
|
|
+ that: "'$ANSIBLE_VAULT;' in config_content.stdout"
|
|
|
+ fail_msg: "{{ login_vars_fail_msg }}"
|
|
|
+ success_msg: "{{ login_vars_success_msg }}"
|
|
|
+
|
|
|
+ - name: Installing jq (JSON Query)
|
|
|
+ package:
|
|
|
+ name: "{{ test_package }}"
|
|
|
+ state: present
|
|
|
+
|
|
|
+ - name: Decrpyt login_vars.yml
|
|
|
+ command: >-
|
|
|
+ ansible-vault decrypt {{ login_vars_path }}
|
|
|
+ --vault-password-file {{ login_vars_vault_path }}
|
|
|
+ changed_when: false
|
|
|
+ when: "'$ANSIBLE_VAULT;' in config_content.stdout"
|
|
|
+ no_log: true
|
|
|
+ tags: always
|
|
|
+
|
|
|
+ - name: Include variable file login_vars.yml
|
|
|
+ include_vars: "{{ login_vars_path }}"
|
|
|
+ no_log: true
|
|
|
+ tags: always
|
|
|
+
|
|
|
+ - name: Get auth string
|
|
|
+ shell: echo -n {{ grafana_username }}_{{ grafana_password }} | sha256sum
|
|
|
+ register: auth_string_output
|
|
|
+ changed_when: false
|
|
|
+ failed_when: false
|
|
|
+ no_log: true
|
|
|
+ tags: always
|
|
|
+
|
|
|
+ - name: Set the grafana username and password
|
|
|
+ set_fact:
|
|
|
+ grafana_username: "{{ grafana_username }}"
|
|
|
+ grafana_password: "{{ grafana_password }}"
|
|
|
+ auth_string: "{{ auth_string_output }}"
|
|
|
+ no_log: true
|
|
|
+ tags: always
|
|
|
+
|
|
|
+ - name: Encypt login file
|
|
|
+ command: >-
|
|
|
+ ansible-vault encrypt {{ login_vars_path }}
|
|
|
+ --vault-password-file {{ login_vars_vault_path }}
|
|
|
+ changed_when: false
|
|
|
+ no_log: true
|
|
|
+ tags: always
|
|
|
+
|
|
|
+ - name: Fetch Grafana Cluster IP
|
|
|
+ shell: |
|
|
|
+ kubectl get svc -n grafana -o json | jq '.items[] | select(.metadata.name == "loki") | "\(.spec.clusterIP)"'
|
|
|
+ register: grafanaloki_ip_info
|
|
|
+
|
|
|
+ - name: Ping the grafana device to validate connectivity
|
|
|
+ command: ping -c1 {{ grafanaloki_ip_info.stdout[1:-1] }}
|
|
|
+ register: validate_grafanaloki
|
|
|
+ changed_when: false
|
|
|
+ failed_when: false
|
|
|
+
|
|
|
+ - name: Validate the Grafana Loki connectivity
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - "'ping' in validate_grafanaloki.stdout"
|
|
|
+ success_msg: "{{ connectivity_success_msg }}"
|
|
|
+ fail_msg: "{{ connectivity_failure_msg }}"
|
|
|
+
|
|
|
+# Testcase OMNIA_1.2_Grafana_TC_005
|
|
|
+# Test case to Validate syslog.log on grafana loki
|
|
|
+
|
|
|
+ - name: Execute get syslog
|
|
|
+ shell: |
|
|
|
+ curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="syslog"}' | jq
|
|
|
+ register: syslog_info
|
|
|
+ when: "'ping' in validate_grafanaloki.stdout"
|
|
|
+
|
|
|
+ - name: Verify if syslog status is success or not
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - syslog_info.stdout.status | regex_search( "{{ success }}" )
|
|
|
+ success_msg: "{{ syslog_success_msg }}"
|
|
|
+ fail_msg: "{{ syslog_fail_msg }}"
|
|
|
+
|
|
|
+# Testcase OMNIA_1.2_Grafana_TC_006
|
|
|
+# Test case to Validate Grafana omnia.log
|
|
|
+
|
|
|
+ - name: Execute get job is omnia
|
|
|
+ shell: |
|
|
|
+ curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="Omnia"}' | jq
|
|
|
+ register: omnia_info
|
|
|
+ when: "'ping' in validate_grafanaloki.stdout"
|
|
|
+
|
|
|
+ - name: Verify if omnia log status is success or not
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - omnia_info.stdout.status | regex_search( "{{ success }}" )
|
|
|
+ success_msg: "{{ omnia_success_msg }}"
|
|
|
+ fail_msg: "{{ omnia_fail_msg }}"
|
|
|
+
|
|
|
+# Testcase OMNIA_1.2_Grafana_TC_007(-)
|
|
|
+# Test case to Validate Rocky OS package log
|
|
|
+
|
|
|
+ - name: Execute get job is Package Rocky
|
|
|
+ shell: |
|
|
|
+ curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="Package Rocky.log"}' | jq
|
|
|
+ register: package_rocky_info
|
|
|
+ when: "'ping' in validate_grafanaloki.stdout"
|
|
|
+
|
|
|
+ - name: Verify if Package Rocky log status is success or not
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - package_rocky_info.stdout.status | regex_search( "{{ success }}" )
|
|
|
+ - package_rocky_info.stdout.data.result != None
|
|
|
+ success_msg: "{{ package_rocky_success_msg }}"
|
|
|
+ fail_msg: "{{ package_rocky_fail_msg }}"
|
|
|
+
|
|
|
+# Testcase OMNIA_1.2_Grafana_TC_007
|
|
|
+# Test case to Validate Rocky OS package log
|
|
|
+
|
|
|
+ - name: Execute get job is Package Rocky
|
|
|
+ shell: |
|
|
|
+ curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="Package Rocky"}' | jq
|
|
|
+ register: package_rocky_info
|
|
|
+ when: "'ping' in validate_grafanaloki.stdout"
|
|
|
+
|
|
|
+ - name: Verify if Package Rocky log status is success or not
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - package_rocky_info.stdout.status | regex_search( "{{ success }}" )
|
|
|
+ success_msg: "{{ package_rocky_success_msg }}"
|
|
|
+ fail_msg: "{{ package_rocky_fail_msg }}"
|
|
|
+
|
|
|
+# Testcase OMNIA_1.2_Grafana_TC_008
|
|
|
+# Test case to Validate K8s pods log
|
|
|
+
|
|
|
+ - name: Execute get job is K8s pods
|
|
|
+ shell: |
|
|
|
+ curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="K8s pods"}' | jq
|
|
|
+ register: k8s_pods_info
|
|
|
+ when: "'ping' in validate_grafanaloki.stdout"
|
|
|
+
|
|
|
+ - name: Verify if k8s pods log status is success or not
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - k8s_pods_info.stdout.status | regex_search( "{{ success }}" )
|
|
|
+ success_msg: "{{ k8s_pods_success_msg }}"
|
|
|
+ fail_msg: "{{ k8s_pods_fail_msg }}"
|
|
|
+
|
|
|
+# Testcase OMNIA_1.2_Grafana_TC_009
|
|
|
+# Test case to Validate cron log
|
|
|
+
|
|
|
+ - name: Execute get job is cron logs
|
|
|
+ shell: |
|
|
|
+ curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="cron"}' | jq
|
|
|
+ register: cron_info
|
|
|
+ when: "'ping' in validate_grafanaloki.stdout"
|
|
|
+
|
|
|
+ - name: Verify if cron log status is success or not
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - cron_info.stdout.status | regex_search( "{{ success }}" )
|
|
|
+ success_msg: "{{ cron_success_msg }}"
|
|
|
+ fail_msg: "{{ cron_fail_msg }}"
|
|
|
+
|
|
|
+# Testcase OMNIA_1.2_Grafana_TC_010
|
|
|
+# Test case to Validate Vars log
|
|
|
+
|
|
|
+ - name: Execute get job is var logs
|
|
|
+ shell: |
|
|
|
+ curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="varlogs"}' | jq
|
|
|
+ register: varlogs_info
|
|
|
+ when: "'ping' in validate_grafanaloki.stdout"
|
|
|
+
|
|
|
+ - name: Verify if var log status is success or not
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - varlogs_info.stdout.status | regex_search( "{{ success }}" )
|
|
|
+ success_msg: "{{ varlogs_success_msg }}"
|
|
|
+ fail_msg: "{{ varlogs_fail_msg }}"
|
|
|
+
|
|
|
+# Testcase OMNIA_1.2_Grafana_TC_011
|
|
|
+# Test case to Validate Secure log
|
|
|
+
|
|
|
+ - name: Execute get job is secure logs
|
|
|
+ shell: |
|
|
|
+ curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="secure"}' | jq
|
|
|
+ register: secure_info
|
|
|
+ when: "'ping' in validate_grafanaloki.stdout"
|
|
|
+
|
|
|
+ - name: Verify if secure log status is success or not
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - secure_info.stdout.status | regex_search( "{{ success }}" )
|
|
|
+ success_msg: "{{ secure_success_msg }}"
|
|
|
+ fail_msg: "{{ secure_fail_msg }}"
|
|
|
+
|
|
|
+# Testcase OMNIA_1.2_Grafana_TC_012
|
|
|
+# Test case to Validate audit log
|
|
|
+
|
|
|
+ - name: Execute get job is audit logs
|
|
|
+ shell: |
|
|
|
+ curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="audit"}' | jq
|
|
|
+ register: audit_info
|
|
|
+ when: "'ping' in validate_grafanaloki.stdout"
|
|
|
+
|
|
|
+ - name: Verify if audit log status is success or not
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - audit_info.stdout.status | regex_search( "{{ success }}" )
|
|
|
+ success_msg: "{{ audit_success_msg }}"
|
|
|
+ fail_msg: "{{ audit_fail_msg }}"
|
|
|
+
|
|
|
+# Testcase OMNIA_1.2_Grafana_TC_013
|
|
|
+# Test case to Validate sssd log
|
|
|
+
|
|
|
+ - name: Execute get job is sssd logs
|
|
|
+ shell: |
|
|
|
+ curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="sssd"}' | jq
|
|
|
+ register: sssd_info
|
|
|
+ when: "'ping' in validate_grafanaloki.stdout"
|
|
|
+
|
|
|
+ - name: Verify if sssd log status is success or not
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - sssd_info.stdout.status | regex_search( "{{ success }}" )
|
|
|
+ success_msg: "{{ sssd_success_msg }}"
|
|
|
+ fail_msg: "{{ sssd_fail_msg }}"
|
|
|
+
|
|
|
+# Testcase OMNIA_1.2_Grafana_TC_014
|
|
|
+# Test case to Validate Grafana - /var/log/omnia.log
|
|
|
+
|
|
|
+ - name: Execute get job is Grafana - /var/log/omnia.log logs
|
|
|
+ shell: |
|
|
|
+ curl -G -s "http://{{ grafanaloki_ip_info.stdout[1:-1] }}:{{ grafana_loki_port }}/loki/api/v1/query" --data-urlencode 'query={job="varlogs",filename="/var/log/omnia.log"}' | jq
|
|
|
+ register: varlog_omnia_info
|
|
|
+ when: "'ping' in validate_grafanaloki.stdout"
|
|
|
+
|
|
|
+ - name: Verify if varlog for file omnio.log status is success or not
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - varlog_omnia_info.stdout.status | regex_search( "{{ success }}" )
|
|
|
+ success_msg: "{{ varlog_omnia_success_msg }}"
|
|
|
+ fail_msg: "{{ varlog_omnia_fail_msg }}"
|