check_prerequisites.yml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. # Copyright 2021 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. - name: Initialize variables
  16. set_fact:
  17. cobbler_container_status: false
  18. cobbler_image_status: false
  19. cobbler_config_status: false
  20. backup_map_status: false
  21. new_node_status: false
  22. tags: install
  23. - name: Set centos kickstart file name
  24. set_fact:
  25. cobbler_kickstart_file: "{{ cobbler_centos_ks }}"
  26. when: provision_os == os_supported_centos
  27. - name: Set rocky kickstart file name
  28. set_fact:
  29. cobbler_kickstart_file: "{{ cobbler_rocky_ks }}"
  30. when: provision_os == os_supported_rocky
  31. - name: Set rocky kickstart file name
  32. set_fact:
  33. cobbler_kickstart_file: "{{ cobbler_leap_ks }}"
  34. when: provision_os == os_supported_leap
  35. - name: Check if any backup file exists
  36. block:
  37. - name: Check status of backup file
  38. stat:
  39. path: "{{ role_path }}/files/backup_mapping_file.csv"
  40. register: backup_map
  41. - name: Set status for backup file
  42. set_fact:
  43. backup_map_status: true
  44. when: backup_map.stat.exists
  45. rescue:
  46. - name: Message
  47. debug:
  48. msg: "All nodes are new"
  49. verbosity: 2
  50. - name: Get K8s namespaces
  51. command: kubectl get namespaces
  52. changed_when: false
  53. register: k8s_namespaces
  54. - name: Create namespace network-config
  55. command: kubectl create namespace cobbler
  56. changed_when: true
  57. when: cobbler_namespace not in k8s_namespaces.stdout
  58. - name: Inspect the cobbler image
  59. command: buildah images
  60. register: cobbler_image_result
  61. failed_when: false
  62. changed_when: false
  63. tags: install
  64. - name: Check cobbler pod status on the machine
  65. command: kubectl get pods -n {{ cobbler_namespace }}
  66. register: cobbler_pod_result
  67. failed_when: false
  68. changed_when: false
  69. tags: install
  70. - name: Update cobbler image status
  71. set_fact:
  72. cobbler_image_status: true
  73. when: cobbler_image_name in cobbler_image_result.stdout
  74. tags: install
  75. - name: Update cobbler container status
  76. set_fact:
  77. cobbler_container_status: true
  78. when: "'cobbler' in cobbler_pod_result.stdout"
  79. tags: install
  80. - name: Get cobbler pod name
  81. command: 'kubectl get pod -n {{ cobbler_namespace }} -l app=cobbler -o jsonpath="{.items[0].metadata.name}"'
  82. changed_when: false
  83. register: cobbler_pod_name
  84. when: cobbler_container_status
  85. tags: install
  86. - name: Fetch cobbler profile list
  87. command: "kubectl exec --stdin --tty -n {{ cobbler_namespace }} {{ cobbler_pod_name.stdout }} -- cobbler profile list"
  88. changed_when: false
  89. register: cobbler_profile_list
  90. failed_when: false
  91. when: cobbler_container_status
  92. - name: Check crontab list
  93. command: "kubectl exec --stdin --tty -n {{ cobbler_namespace }} {{ cobbler_pod_name.stdout }} -- crontab -l"
  94. changed_when: false
  95. register: crontab_list
  96. failed_when: false
  97. when: cobbler_container_status
  98. - name: Update cobbler config status
  99. set_fact:
  100. cobbler_config_status: true
  101. when:
  102. - cobbler_container_status
  103. - provision_os in cobbler_profile_list.stdout
  104. - "'* * * * * /usr/bin/ansible-playbook /root/tftp.yml' in crontab_list.stdout"
  105. - "'*/5 * * * * /usr/bin/ansible-playbook /root/inventory_creation.yml' in crontab_list.stdout"