123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # 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.
- ---
- - hosts: localhost
- connection: local
- gather_facts: false
- tasks:
- - name: Read dhcp file
- set_fact:
- var: "{{ lookup('file', '/var/lib/dhcp/dhcpd.leases').split()| unique | select| list }}"
- - name: Filter the ip
- set_fact:
- vars_new: "{{ var| ipv4('address')| to_nice_yaml}}"
- - name: Create the static ip
- shell: awk -F',' 'NR >1{print $2}' /root/omnia/control_plane/roles/control_plane_device/files/new_mngmnt_mapping_file.csv > static_hosts.yml
- changed_when: false
- failed_when: false
- - name: Create the dynamic inventory
- shell: |
- echo "{{ vars_new }}" > temp.txt
- egrep -o '[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' temp.txt >>dynamic_hosts.yml
- changed_when: false
- failed_when: false
- - name: Final inventory
- shell: cat dynamic_hosts.yml static_hosts.yml| sort -ur >> omnia/control_plane/roles/collect_device_info/files/mgmt_provisioned_hosts.yml
- changed_when: false
- - name: Temp result
- shell: cat /root/omnia/control_plane/roles/collect_device_info/files/mgmt_provisioned_hosts.yml |sort|uniq
- changed_when: false
- register: inventory
- - name: Final Inventory
- local_action: copy content="{{ inventory.stdout }}" dest=omnia/control_plane/roles/collect_device_info/files/mgmt_provisioned_hosts.yml
- - name: New line at end of file
- shell: echo "">> omnia/control_plane/roles/collect_device_info/files/mgmt_provisioned_hosts.yml
- changed_when: false
- - name: Delete files
- file:
- path: "{{ item }}"
- state: absent
- with_items:
- - "/root/temp.txt"
- - "/root/dynamic_hosts.yml"
|