# 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: Include control_plane_common vars include_vars: ../../control_plane_common/vars/main.yml - name: Include provision_cobbler vars include_vars: ../../provision_cobbler/vars/main.yml - name: Copy files to tmp folder command: cp -r {{ iso_mount_path }} /tmp/ changed_when: true tags: install - name: Set centos kickstart file name set_fact: idrac_kickstart_file: "{{ idrac_centos_ks }}" when: provision_os == os_supported_centos - name: Set rocky kickstart file name set_fact: idrac_kickstart_file: "{{ idrac_rocky_ks }}" when: provision_os == os_supported_rocky - name: Edit isolinux.cfg replace: path: "{{ tmp_iso_dir }}{{ isolinux_cfg_path }}" regexp: "{{ item.regexp }}" replace: "{{ item.replace }}" with_items: - { regexp: "append initrd=initrd.img", replace: "append initrd=initrd.img ks=cdrom:/{{ idrac_kickstart_file }}" } - { regexp: "rd.live.check quiet", replace: "" } tags: install - name: Edit grub.cfg replace: path: "{{ tmp_iso_dir }}{{ grub_cfg_path }}" regexp: "{{ item.regexp }}" replace: "{{ item.replace }}" with_items: - { regexp: "timeout=60", replace: "timeout=5" } - { regexp: "kernel /images/pxeboot/vmlinuz", replace: "kernel /images/pxeboot/vmlinuz ks=cdrom:/{{ idrac_kickstart_file }}" } - { regexp: "linuxefi /images/pxeboot/vmlinuz", replace: "linuxefi /images/pxeboot/vmlinuz ks=cdrom:/{{ idrac_kickstart_file }}" } - { regexp: "rd.live.check quiet", replace: "" } tags: install - name: Remove the kickstart file if exists file: path: "{{ role_path }}/files/{{ idrac_kickstart_file }}" state: absent tags: install - name: Create the centos kickstart file copy: src: "{{ role_path }}/files/temp_centos7.cfg" dest: "{{ role_path }}/files/{{ idrac_kickstart_file }}" mode: "{{ file_permission }}" tags: install when: provision_os == os_supported_centos - name: Create the rocky kickstart file copy: src: "{{ role_path }}/files/temp_rocky8.cfg" dest: "{{ role_path }}/files/{{ idrac_kickstart_file }}" mode: "{{ file_permission }}" tags: install when: provision_os == os_supported_rocky - name: Random phrase generation command: openssl rand -base64 12 changed_when: false register: generate_random_phrase tags: install no_log: true - name: Encrypt login password command: openssl passwd -1 -salt {{ generate_random_phrase.stdout }} {{ provision_password }} no_log: true changed_when: false register: encrypt_login_pass tags: install - name: Configure kickstart file - Password replace: path: "{{ role_path }}/files/{{ idrac_kickstart_file }}" regexp: '^rootpw --iscrypted ks_password' replace: 'rootpw --iscrypted {{ encrypt_login_pass.stdout }}' no_log: true tags: install - name: Configure kickstart file centos - nic lineinfile: path: "{{ role_path }}/files/{{ idrac_kickstart_file }}" insertafter: '^network --bootproto=dhcp --device=link --onboot=on --activate' line: 'network --bootproto=dhcp --device={{ item }} --onboot=on --activate' tags: install with_items: "{{ centos_host_nic }}" when: provision_os == os_supported_centos - name: Configure kickstart file rocky - nic lineinfile: path: "{{ role_path }}/files/{{ idrac_kickstart_file }}" insertafter: '^network --bootproto=dhcp --device=link --onboot=on --activate' line: 'network --bootproto=dhcp --device={{ item }} --onboot=on --activate' tags: install with_items: "{{ rocky_host_nic }}" when: provision_os == os_supported_rocky - name: Configure kickstart file - timezone replace: path: "{{ role_path }}/files/{{ idrac_kickstart_file }}" regexp: '^timezone --utc ks_timezone' replace: 'timezone --utc {{ timezone }}' tags: install - name: Configure kickstart file - language replace: path: "{{ role_path }}/files/{{ idrac_kickstart_file }}" regexp: '^lang ks_language' replace: 'lang {{ language }}' tags: install - name: Copy kickstart file to iso mount path copy: src: "{{ role_path }}/files/{{ idrac_kickstart_file }}" dest: "{{ tmp_iso_dir }}{{ idrac_kickstart_file }}" mode: preserve tags: install - name: Remove ^M characters command: dos2unix {{ tmp_iso_dir }}{{ idrac_kickstart_file }} changed_when: false failed_when: false