# 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.
---
- name: Remove old user
file:
path: "{{ role_path }}/files/.users.digest"
state: absent
tags: install
when: not provision_os_change
- name: Create a new user
file:
path: "{{ role_path }}/files/.users.digest"
state: touch
mode: "{{ user_mode }}"
tags: install
when: not provision_os_change
- name: Cobbler UI password
set_fact:
encrypt_password: "{{ cobbler_password | hash('sha3_256') }}"
no_log: true
tags: install
when: not provision_os_change
- name: Copy cobbler password to cobbler config file
shell: printf "%s:%s:%s\n" "{{ username }}" "Cobbler" "{{ encrypt_password }}" > "{{ role_path }}/files/.users.digest"
changed_when: false
no_log: true
tags: install
when: not provision_os_change
- name: Kickstart configuration - centos
block:
- name: Create the kickstart file
copy:
src: "{{ role_path }}/files/temp_centos7.ks"
dest: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
mode: 0775
tags: install
- name: Configure kickstart file - IP
replace:
path: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
regexp: '^url --url http://ip:port/cblr/links/centos-x86_64/'
replace: url --url http://{{ hpc_ip }}:{{ http_port }}/cblr/links/centos-x86_64/
tags: install
- name: Configure kickstart file - nic
lineinfile:
path: "{{ role_path }}/files/{{ cobbler_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: Kickstart configuration - rocky
block:
- name: Create the kickstart file
copy:
src: "{{ role_path }}/files/temp_rocky8.ks"
dest: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
mode: 0775
tags: install
- name: Configure kickstart file - IP
replace:
path: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
regexp: '^url --url http://ip:port/cblr/links/rocky-x86_64/'
replace: url --url http://{{ hpc_ip }}:{{ http_port }}/cblr/links/rocky-x86_64/
tags: install
- name: Configure kickstart file - nic
lineinfile:
path: "{{ role_path }}/files/{{ cobbler_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: Kickstart configuration - leap
block:
- name: Create the kickstart file
copy:
src: "{{ role_path }}/files/temp_leap15.xml"
dest: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
mode: 0775
tags: install
- name: Configure kickstart file - IP
replace:
path: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
regexp: '^ install: http://ip:port/cblr/links/leap-x86_64/'
replace: ' install: http://{{ hpc_ip }}:{{ http_port }}/cblr/links/leap-x86_64/'
tags: install
- name: Configure kickstart file leap - nic
lineinfile:
path: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
insertafter: ' '
line: >4
dhcp
{{ item }}
auto
tags: install
with_items: "{{ centos_host_nic }}"
- name: Remove blank lines
lineinfile:
path: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
regexp: '^\s*$'
state: absent
changed_when: false
tags: install
when: provision_os == os_supported_leap
- name: Random phrase generation
command: openssl rand -base64 12
changed_when: false
register: prompt_random_phrase
tags: install
no_log: true
- name: Set random phrase
set_fact:
random_phrase: "{{ prompt_random_phrase.stdout }}"
tags: install
no_log: true
- name: Login password
command: openssl passwd -1 -salt {{ random_phrase }} {{ provision_password }}
no_log: true
changed_when: false
register: login_pass
tags: install
- name: Assign password
replace:
path: "{{ role_path }}/files/settings.yaml"
regexp: '^default_password_crypted: password'
replace: 'default_password_crypted: {{ login_pass.stdout }}'
no_log: true
tags: install
- name: Configure kickstart file for {{ provision_os }}
block:
- name: Configure kickstart file - Password
replace:
path: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
regexp: '^rootpw --iscrypted ks_password'
replace: 'rootpw --iscrypted {{ login_pass.stdout }}'
no_log: true
tags: install
- name: Configure kickstart file - timezone
replace:
path: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
regexp: '^timezone --utc ks_timezone'
replace: 'timezone --utc {{ timezone }}'
tags: install
- name: Configure kickstart file - language
replace:
path: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
regexp: '^lang ks_language'
replace: 'lang {{ language }}'
tags: install
when:
- provision_os != os_supported_leap
- name: Configure kickstart file for {{ provision_os }}
block:
- name: Configure kickstart file - Password
replace:
path: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
regexp: '^ ks_password'
replace: ' {{ login_pass.stdout }}'
no_log: true
tags: install
- name: Configure kickstart file - timezone
replace:
path: "{{ role_path }}/files/{{ cobbler_kickstart_file }}"
regexp: '^ ks_timezone'
replace: ' {{ timezone }}'
tags: install
when: provision_os == os_supported_leap
- name: Remove ^M characters
command: dos2unix {{ role_path }}/files/{{ cobbler_kickstart_file }}
changed_when: false
failed_when: false