inventory_creation.yml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # Copyright 2022 Dell Inc. or its subsidiaries. All Rights Reserved.
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. ---
  15. - hosts: localhost
  16. connection: local
  17. gather_facts: false
  18. tasks:
  19. - name: Read dhcp file
  20. set_fact:
  21. var: "{{ lookup('file', '/var/lib/dhcp/dhcpd.leases').split()| unique | select| list }}"
  22. - name: Filter the ip
  23. set_fact:
  24. vars_new: "{{ var| ipv4('address')| to_nice_yaml}}"
  25. - name: Create the static ip
  26. shell: awk -F',' 'NR >1{print $2}' /root/omnia/control_plane/roles/control_plane_device/files/new_mngmnt_mapping_file.csv > static_hosts.yml
  27. changed_when: false
  28. failed_when: false
  29. - name: Create the dynamic inventory
  30. shell: |
  31. echo "{{ vars_new }}" > temp.txt
  32. egrep -o '[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' temp.txt >>dynamic_hosts.yml
  33. changed_when: false
  34. failed_when: false
  35. - name: Final inventory
  36. shell: cat dynamic_hosts.yml static_hosts.yml| sort -ur >> omnia/control_plane/roles/collect_device_info/files/mgmt_provisioned_hosts.yml
  37. changed_when: false
  38. - name: Temp result
  39. shell: cat /root/omnia/control_plane/roles/collect_device_info/files/mgmt_provisioned_hosts.yml |sort|uniq
  40. changed_when: false
  41. register: inventory
  42. - name: Final Inventory
  43. local_action: copy content="{{ inventory.stdout }}" dest=omnia/control_plane/roles/collect_device_info/files/mgmt_provisioned_hosts.yml
  44. - name: New line at end of file
  45. shell: echo "">> omnia/control_plane/roles/collect_device_info/files/mgmt_provisioned_hosts.yml
  46. changed_when: false
  47. - name: Delete files
  48. file:
  49. path: "{{ item }}"
  50. state: absent
  51. with_items:
  52. - "/root/temp.txt"
  53. - "/root/dynamic_hosts.yml"