|
@@ -0,0 +1,84 @@
|
|
|
+# Copyright 2021 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: Infiniband Facts
|
|
|
+ hosts: all
|
|
|
+ gather_facts: no
|
|
|
+ connection: local
|
|
|
+ tasks:
|
|
|
+ - name: Set credentials and variables
|
|
|
+ set_fact:
|
|
|
+ username: "{{ lookup('env','ANSIBLE_NET_USERNAME') }}"
|
|
|
+ password: "{{ lookup('env','ANSIBLE_NET_PASSWORD') }}"
|
|
|
+ filtered_dict: {}
|
|
|
+ no_log: true
|
|
|
+
|
|
|
+ - name: Authenticate
|
|
|
+ block:
|
|
|
+ - name: Authenticate to switch- "{{ inventory_hostname }}"
|
|
|
+ uri:
|
|
|
+ url: http://{{ inventory_hostname }}/admin/launch?script=rh&template=login&action=login
|
|
|
+ method: POST
|
|
|
+ body_format: form-urlencoded
|
|
|
+ body:
|
|
|
+ f_user_id: "{{ username }}"
|
|
|
+ f_password: "{{ password }}"
|
|
|
+ enter: Sign in
|
|
|
+ status_code: 302
|
|
|
+ register: login
|
|
|
+ no_log: true
|
|
|
+
|
|
|
+ - name: Verify authentication status
|
|
|
+ fail:
|
|
|
+ msg: "Authentication failed"
|
|
|
+ when: login.set_cookie is undefined
|
|
|
+
|
|
|
+ rescue:
|
|
|
+ - name: Filtered response creation
|
|
|
+ set_fact:
|
|
|
+ filtered_dict: "{{filtered_dict |combine({item.key: item.value})}}"
|
|
|
+ when: item.key not in 'invocation'
|
|
|
+ with_dict: "{{ login }}"
|
|
|
+ no_log: true
|
|
|
+
|
|
|
+ - name: Authentication failure response
|
|
|
+ fail:
|
|
|
+ msg: "{{ filtered_dict }}"
|
|
|
+
|
|
|
+ - name: Fetch facts from- "{{ inventory_hostname }}"
|
|
|
+ uri:
|
|
|
+ url: http://{{ inventory_hostname }}/admin/launch?script=json
|
|
|
+ method: POST
|
|
|
+ body_format: json
|
|
|
+ headers:
|
|
|
+ Cookie: "{{ login.set_cookie.split(';')[0] }}"
|
|
|
+ body:
|
|
|
+ {
|
|
|
+ "commands":
|
|
|
+ [
|
|
|
+ "show running-config",
|
|
|
+ "show version",
|
|
|
+ "show inventory",
|
|
|
+ "show interfaces ib status"
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ register: facts
|
|
|
+
|
|
|
+ - name: Show Facts from- "{{ inventory_hostname }}"
|
|
|
+ debug:
|
|
|
+ msg: "{{ item.data }}"
|
|
|
+ with_items: "{{ facts.json.results }}"
|
|
|
+ loop_control:
|
|
|
+ label: "{{ item.executed_command }}"
|