From 1a6590578c7f81606c3c646e48c6cd219b827157 Mon Sep 17 00:00:00 2001 From: Frank Brehm Date: Wed, 16 Aug 2023 18:08:56 +0200 Subject: [PATCH] Current state of snippets and templates from test-cobbler --- keys/auth_keys_pp_betrieb | 4 +- kickstart/profile.rhel-9.2.develop.ks | 63 +++++++++++++-- snippets/tpl.001.basics.sh | 21 +++++ snippets/tpl.005.update_resolvconf.sh | 48 ++++++++++++ snippets/tpl.040.network.sh | 109 +++++++++++++++++--------- snippets/tpl.100.clear_repos.sh | 2 +- snippets/tpl.220.locales-centos8.sh | 26 ++++++ snippets/tpl.240.pkgs-el7.sh | 39 +++++++++ 8 files changed, 264 insertions(+), 48 deletions(-) create mode 100644 snippets/tpl.005.update_resolvconf.sh create mode 100644 snippets/tpl.220.locales-centos8.sh create mode 100644 snippets/tpl.240.pkgs-el7.sh diff --git a/keys/auth_keys_pp_betrieb b/keys/auth_keys_pp_betrieb index 6004b44..de32e82 100644 --- a/keys/auth_keys_pp_betrieb +++ b/keys/auth_keys_pp_betrieb @@ -41,4 +41,6 @@ ssh-dss AAAAB3NzaC1kc3MAAACBAKDLJjA6G2vfqM55xaDspJetd/IUqWWExh3wyrroHY1+wUCF39Qj ####################### ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCpHkhAXqfHPrDPCZf1M8CxNz/6o7x3feNst5MRIQ04v4K7va35rdqIoXvskxdjAu2H/z/3qNKJg5y9oBxPEdVroST+ADibnGFaIfETYkQxNHTCGPI/HX0oxkGkIUb04Elojmswmrq/YlEYIDVGD+K2v4zkVmrOiPIyXNIKuVUC1lGBIIhR1DoUB36ejpICf5HY4+EiCO8mIFniUP/jnilHq/ZGYd+JfcD3//JxXFPEk6bMLr2jxBm3LM8FNdDH1uKcPUdrf0fkAS+Kb74s4obSyKamX6mDvvUZmuVaQsNNiZL1iCI3SNx2YxM5P/xv9Pk7E0lu3MTnOX2n/fIW/Rj/nckHr+hmlA1gGuJUGw/9BbR9KmlR8+yIN6Fl3euD2Yto0j4E94elnnxk0FqEgN8wP+Nhcmsjxt2V1a00hivqNF1FZgfb5ZhrA5Rq1BM91yDXzHL1he0jZfOBLt3RsJueAKdIJKv4DR7Zkx9bmJwHJFnE18asIaZNgdW3y7wN4acwHqCdUUKUQ0wurGURZKCdRDzxwOfEQI9HnnTa+q6/XXcRp/REKyRQ8ZTwoAqnmva7unXqwuvZwZM8B+hSPXkGF7lkh5U/mMXJu45WcxV3IBWP4VBYEbh4hAU/9MjMv7EYcjpjvgdrcWQbqiCgw0P9rKopSeCph98CzU5izvVjSQ== Vasko Mihaylov ####################### -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC1h6cZc9uhuw4/B8e06ARMyJF/37ESRG3jJSIMUfdJpVTN0ZTNTvUnqov+s0TYglSvMQ8nPAp3qc7UDIiyaFyoiOZtE0jGZOQwVhWWZF39vfxfAI9EI8yDo01ek4hnlm2vxsx5bzrtgQWocW1WVCJ9z20W9/iVhRrNuBGUg5KoKxr/beQ73O7l9Z8zElwWm6k+PTJjN9C9D+j3FGTjeLPHvELFZiCMuVvhEPuiZABrq7x5HDt67zF38au7ZWu8sYOaJ1zGZNVVVT4ICiow8R6UJir7/iS04KkIBl4q5w2mytQQ8j2XoihcaD0BsSz596Iwmoz9AyWsvrFTGClyHwP6k+t26+L4Li/51C4n/MXcl5wGCXL1Am67Tmpc9JbkBaOtGDOyGaTPGZ+XWWOem3hhJa35EgcbzgkSm+/rdo+cuVz1TJ0oR7HDm9Grrkmj7seAphovnvPPgtFGC5tIPPq7xD/vb/d1eR9UlXMAaIUF5cIu5DJHrOm4SCW9aa1NV2c= Mladen Uzunov +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC1h6cZc9uhuw4/B8e06ARMyJF/37ESRG3jJSIMUfdJpVTN0ZTNTvUnqov+s0TYglSvMQ8nPAp3qc7UDIiyaFyoiOZtE0jGZOQwVhWWZF39vfxfAI9EI8yDo01ek4hnlm2vxsx5bzrtgQWocW1WVCJ9z20W9/iVhRrNuBGUg5KoKxr/beQ73O7l9Z8zElwWm6k+PTJjN9C9D+j3FGTjeLPHvELFZiCMuVvhEPuiZABrq7x5HDt67zF38au7ZWu8sYOaJ1zGZNVVVT4ICiow8R6UJir7/iS04KkIBl4q5w2mytQQ8j2XoihcaD0BsSz596Iwmoz9AyWsvrFTGClyHwP6k+t26+L4Li/51C4n/MXcl5wGCXL1Am67Tmpc9JbkBaOtGDOyGaTPGZ+XWWOem3hhJa35EgcbzgkSm+/rdo+cuVz1TJ0oR7HDm9Grrkmj7seAphovnvPPgtFGC5tIPPq7xD/vb/d1eR9UlXMAaIUF5cIu5DJHrOm4SCW9aa1NV2c= Mladen Uzunov +####################### +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDy5AED/vNxx1aLyQEKGfgU93SDrcIZ41j5nyCDISWbBjdX7pIi4vOw5V7wDtbelWWwFLoD2vUNFjCQIhYLYPEl+IBcIWsurhPZC+W3wVxRn0q7SDw4DWDrL+WFBMJutNZVoVlBOJud6rNFGFzyNZaFGWD0eImGNVwwYgzTKWqboX2lkRA+A9Tbsr5HZzjmKe5x/VtDhYMX2bQ+sJZa+XLgPO4CU+B6K1cROu/3gnTb9sTmfhrBRqXIgCVetl+xdJU3kIMSegNC7dT2WJ8B0B6qSkOU3IBQ9ene4/s7RmqJttw2hTCYz9VnokV3Dk7BEaCfcaucSDBZyqN5h6PUmWpttdFWxosJhlFZBeHzFOcCBbMuBaUvr9DNJQ3e5S8C1fUcrE1KkyZaTUjsiHUz9++8gLUp5+vmqX8AwW1+yAJtzz1Et/cKi2LNz4Ph1duryckTFNGcRiWRzC/0qI4DW9y20G8+KLqeRynA6xrmzh0lHZM4htyO4ouTmIyunFOQ39U= Andon Zhuglov diff --git a/kickstart/profile.rhel-9.2.develop.ks b/kickstart/profile.rhel-9.2.develop.ks index e363b2f..262d158 100644 --- a/kickstart/profile.rhel-9.2.develop.ks +++ b/kickstart/profile.rhel-9.2.develop.ks @@ -100,14 +100,6 @@ logvol /home --vgname=vgroot --name=home --fstype=xfs --size=1024 logvol /var --vgname=vgroot --name=var --fstype=xfs --size=4096 --grow logvol /var/log --vgname=vgroot --name=log --fstype=xfs --size=2048 -########################################## -# Repositories - -repo --name=baseos --install --noverifyssl --baseurl=https://test-cobbler01.pixelpark.com/cobbler/distro_mirror/RHEL-9.2/BaseOS -repo --name=appstream --install --noverifyssl --baseurl=https://test-cobbler01.pixelpark.com/cobbler/distro_mirror/RHEL-9.2/AppStream -repo --name=pixelpark --install --noverifyssl --baseurl=https://repo02.pixelpark.com/Linux/yum/pixelpark/9/ -repo --name=puppet --install --noverifyssl --baseurl=https://repo02.pixelpark.com/Linux/yum/puppetlabs/puppet7/el/8/x86_64 - ########################################## # Packages @@ -151,6 +143,21 @@ yum-utils %pre --interpreter=/bin/bash --log=/var/log/ks-pre.log #raw echo "[$( date --rfc-3339=seconds )]: Hier get's los ..." +echo +if grep '^nameserver' /etc/resolv.conf >/dev/null ; then + echo "Nameservers are defined in /etc/resolv.conf:" + grep '^nameserver' /etc/resolv.conf +else + echo "Adding nameservers 93.188.109.11, 93.188.109.12 and 93.188.109.13 to /etc/resolv.conf ..." + echo "nameserver 93.188.109.11" >>/etc/resolv.conf + echo "nameserver 93.188.109.12" >>/etc/resolv.conf + echo "nameserver 93.188.109.13" >>/etc/resolv.conf +fi + +echo +echo "Used /etc/resolv.conf:" +cat /etc/resolv.conf + #end raw %end @@ -263,6 +270,11 @@ echo echo "Using snippet $this_snippet" $SNIPPET($this_snippet) +#set $this_snippet= "per_status/" + $SYSTEM_STATUS + "/tpl.005.update_resolvconf.sh" +echo +echo "Using snippet $this_snippet" +$SNIPPET($this_snippet) + #set $this_snippet= "per_status/" + $SYSTEM_STATUS + "/tpl.010.authkeys.sh" echo echo "Using snippet $this_snippet" @@ -288,6 +300,41 @@ echo echo "Using snippet $this_snippet" $SNIPPET($this_snippet) +#set $this_snippet= "per_status/" + $SYSTEM_STATUS + "/tpl.080.rsyslogd-el8.sh" +echo +echo "Using snippet $this_snippet" +$SNIPPET($this_snippet) + +#set $this_snippet= "per_status/" + $SYSTEM_STATUS + "/tpl.085.disable-ipv6.sh" +echo +echo "Using snippet $this_snippet" +$SNIPPET($this_snippet) + +#set $this_snippet= "per_status/" + $SYSTEM_STATUS + "/tpl.100.clear_repos.sh" +echo +echo "Using snippet $this_snippet" +$SNIPPET($this_snippet) + +#set $this_snippet= "per_status/" + $SYSTEM_STATUS + "/tpl.195.repos_el9.sh" +echo +echo "Using snippet $this_snippet" +$SNIPPET($this_snippet) + +#set $this_snippet= "per_status/" + $SYSTEM_STATUS + "/tpl.211.bashrc-el9.sh" +echo +echo "Using snippet $this_snippet" +$SNIPPET($this_snippet) + +#set $this_snippet= "per_status/" + $SYSTEM_STATUS + "/tpl.220.locales-el9.sh" +echo +echo "Using snippet $this_snippet" +$SNIPPET($this_snippet) + +#set $this_snippet= "per_status/" + $SYSTEM_STATUS + "/tpl.320.root-ssh-login.sh" +echo +echo "Using snippet $this_snippet" +$SNIPPET($this_snippet) + # ########################### # Seems to be finished diff --git a/snippets/tpl.001.basics.sh b/snippets/tpl.001.basics.sh index ccde790..a22be45 100644 --- a/snippets/tpl.001.basics.sh +++ b/snippets/tpl.001.basics.sh @@ -98,6 +98,19 @@ POSTFIX_RELAYHOST='[mx.pixelpark.com]' ERROR_POINTER="/root/postinst-error.txt" +declare -a NAMESERVERS=() +declare -a NS_SEARCH_DOMAINS=() +#end raw + +#for $ns in $name_servers +NAMESERVERS+=( "$ns" ) +#end for + +#for $domain in $name_servers_search +NS_SEARCH_DOMAINS+=( "$domain" ) +#end for + +#raw echo echo "Some information:" echo " \$hostname: $hostname" @@ -113,6 +126,14 @@ echo " \$NETMASK_ETH0: $NETMASK_ETH0" echo " \$SIMPLE_HOSTNAME: $SIMPLE_HOSTNAME" echo " \$DOMAIN: $DOMAIN" echo " \$cobbler_url: $cobbler_url" +echo " \$NAMESERVERS:" +for ns in "${NAMESERVERS[@]}" ; do + echo " * '${ns}'" +done +echo " \$NS_SEARCH_DOMAINS:" +for domain in "${NS_SEARCH_DOMAINS[@]}" ; do + echo " * '${domain}'" +done #----------------------------------------------------------- log() { diff --git a/snippets/tpl.005.update_resolvconf.sh b/snippets/tpl.005.update_resolvconf.sh new file mode 100644 index 0000000..3f3d540 --- /dev/null +++ b/snippets/tpl.005.update_resolvconf.sh @@ -0,0 +1,48 @@ +## !/bin/bash +#raw + +#----------------------------------------------------------- +update_resolv_conf() { + + echo -e "\e[0Ksection_start:$( date +%s ):ks_update_resolvconf[collapsed=true]\r\e[0KUpdating /etc/resolv.conf ..." + echo + echo "${HASH_LINE}" + echo + log "Updating /etc/resolv.conf ..." + + if grep '^nameserver' /etc/resolv.conf >/dev/null ; then + echo "Nameservers are already defined in /etc/resolv.conf." + else + for ns in "${NAMESERVERS[@]}" ; do + echo "nameserver ${ns}" >>/etc/resolv.conf + done + fi + + if grep '^search' /etc/resolv.conf >/dev/null ; then + echo "Search domains are already defined in /etc/resolv.conf." + else + echo "search ${NS_SEARCH_DOMAINS[*]}" >>/etc/resolv.conf + fi + + if grep '^options' /etc/resolv.conf >/dev/null ; then + echo "Removing existing options in /etc/resolv.conf ..." + grep -v '^options' /etc/resolv.conf >/etc/resolv.conf.new + mv -v /etc/resolv.conf.new /etc/resolv.conf + fi + echo "Setting options in /etc/resolv.conf ..." + echo 'options timeout:1 attempts:1' >>/etc/resolv.conf + + echo + echo "Using /etc/resolv.conf:" + echo "----" + cat /etc/resolv.conf + echo "----" + echo + + echo -e "\e[0Ksection_end:$( date +%s ):ks_update_resolvconf\r\e[0K" +} + +update_resolv_conf + +#end raw +## vim: ts=4 et list diff --git a/snippets/tpl.040.network.sh b/snippets/tpl.040.network.sh index a6cd1d2..2f41757 100644 --- a/snippets/tpl.040.network.sh +++ b/snippets/tpl.040.network.sh @@ -14,12 +14,15 @@ create_networkconfig() { local tmp_nw_cfg="${temp_dir}/network" local tmp_nw_script_dir="${temp_dir}/network-scripts" local nw_script_dir="/etc/sysconfig/network-scripts" - local old_dir="${nw_script_dir}/.old" + local nw_old_dir="${nw_script_dir}/.old" + local nm_cfg_dir='/etc/NetworkManager/system-connections' + local nm_old_dir="${nm_cfg_dir}/.old" local ifcfg_file= local if_uuid=$( uuidgen -r ) mkdir -pv "${tmp_nw_script_dir}" - mkdir -pv "${old_dir}" + mkdir -pv "${nw_old_dir}" + mkdir -pv "${nm_old_dir}" echo "Generating /etc/sysconfig/network ..." @@ -45,60 +48,90 @@ create_networkconfig() { cat '/etc/hosts' | true echo - local dev_file="${tmp_nw_script_dir}/ifcfg-${mgmt_interface}" + for ifcfg_file in ${nw_script_dir}/ifcfg-* ; do + if [[ ! -f "${ifcfg_file}" ]] ; then + continue + fi + local bname=$(basename "${ifcfg_file}" ) + if [[ "${bname}" == "ifcfg-lo" ]] ; then + continue + fi + mv -v "${ifcfg_file}" "${nw_old_dir}" + done + + for ifcfg_file in ${nm_cfg_dir}/*.nmconnection ; do + if [[ ! -f "${ifcfg_file}" ]] ; then + continue + fi + local bname=$( basename "${ifcfg_file}" .nmconnection ) + if [[ "${bname}" == "lo" ]] ; then + continue + fi + mv -v "${ifcfg_file}" "${nm_old_dir}" + done + + local dev_basename="${mgmt_interface}.nmconnection" + local dev_file="${tmp_nw_script_dir}/${dev_basename}" echo "Generating '${dev_file}' ..." cat <<-EOF >"${dev_file}" - NAME="${mgmt_interface}" - DEVICE="${mgmt_interface}" - ONBOOT=yes - NETBOOT=yes - UUID="${if_uuid}" - IPV6INIT=yes - BOOTPROTO=none - TYPE=Ethernet - USERCTL=no - IPADDR=${IP_ADDRESS_ETH0} - NETMASK=${NETMASK_ETH0} - PREFIX=${NETMASK_INT_ETH0} - IPV4_FAILURE_FATAL=no - PEERDNS=no + [connection] + id=${mgmt_interface} + uuid=${if_uuid} + type=ethernet + interface-name=${mgmt_interface} + + [ethernet] + + [ipv4] + method=manual + address1=${IP_ADDRESS_ETH0}/${NETMASK_INT_ETH0},${gateway} EOF local i=1 + local nameservers= + local searchdomains= local ns= + local domain= - for ns in $( cat /etc/resolv.conf | grep '^nameserver' | awk '{print $2}' ) ; do - echo "DNS${i}=${ns}" >>"${dev_file}" - i=$(( $i + 1 )) - done + if [[ "${#NAMESERVERS[*]}" -gt 0 ]] ; then + for ns in "${NAMESERVERS[@]}" ; do + nameservers+="${ns};" + done + echo "dns=${nameservers}" >>"${dev_file}" + fi - if grep '^search' /etc/resolv.conf >/dev/null ; then - local search=$( grep '^search' /etc/resolv.conf | sed -e 's/^search[ ][ ]*//' ) - echo "DOMAIN=\"${search}\"" >>"${dev_file}" + if [[ "${#NS_SEARCH_DOMAINS[*]}" -gt 0 ]] ; then + for domain in "${NS_SEARCH_DOMAINS[@]}" ; do + searchdomains+="${domain};" + done + echo "dns-search=${searchdomains}" >>"${dev_file}" fi - echo "RES_OPTIONS=\"timeout:1 attempts:2\"" >>"${dev_file}" - echo >>"${dev_file}" + cat <<-EOF >>"${dev_file}" + dns-options=timeout:1,attempts:2 + + [ipv6] + addr-gen-mode=eui64 + method=auto + + [proxy] + + EOF + + chmod -v 0600 "${dev_file}" + mv -v "${dev_file}" "${nm_cfg_dir}" - for ifcfg_file in ${nw_script_dir}/ifcfg-* ; do - local bname=$(basename "${ifcfg_file}" ) - if [[ "${bname}" == "ifcfg-lo" ]] ; then - continue - fi - mv -v "${ifcfg_file}" "${old_dir}" - done - mv -v "${dev_file}" "${nw_script_dir}" rm -vrf "${temp_dir}" - echo "Generated ${nw_script_dir}/ifcfg-${mgmt_interface}:" - cat "${nw_script_dir}/ifcfg-${mgmt_interface}" || true + echo "Generated NM configfile '${nm_cfg_dir}/${dev_basename}'" + cat "${nm_cfg_dir}/${dev_basename}" || true echo echo echo "${HASH_LINE}" - echo "Inhalt von /etc/sysconfig/network-scripts ..." - ls -lA /etc/sysconfig/network-scripts + echo "Content of ${nm_cfg_dir} ..." + ls -lA "${nm_cfg_dir}" echo -e "\e[0Ksection_end:$( date +%s ):ks_create_networkconfig\r\e[0K" } diff --git a/snippets/tpl.100.clear_repos.sh b/snippets/tpl.100.clear_repos.sh index 4468a37..2f9e9cd 100644 --- a/snippets/tpl.100.clear_repos.sh +++ b/snippets/tpl.100.clear_repos.sh @@ -8,7 +8,7 @@ clear_all_repo_files() { echo echo "${HASH_LINE}" echo - log "Cleaning all exiting repo files ..." + log "Cleaning all existing repo files ..." local repo_dir="/etc/yum.repos.d" local old_dir="${repo_dir}/.old" diff --git a/snippets/tpl.220.locales-centos8.sh b/snippets/tpl.220.locales-centos8.sh new file mode 100644 index 0000000..5b66d39 --- /dev/null +++ b/snippets/tpl.220.locales-centos8.sh @@ -0,0 +1,26 @@ +## !/bin/bash +#raw + +#----------------------------------------------------------- +set_locales_centos8() { + + echo -e "\e[0Ksection_start:$( date +%s ):ks_set_locales_centos8[collapsed=true]\r\e[0KInstalling german locales ..." + echo + echo "${HASH_LINE}" + echo "Calling set_locales_centos8() ..." + echo + + log "Installing german locales (langpacks-de) ..." + if yum install -y "langpacks-de" ; then + : + else + echo "[$(date)]: Could not install german locales (langpacks-de)" | tee -a "${ERROR_POINTER}" + fi + + echo -e "\e[0Ksection_end:$( date +%s ):ks_set_locales_centos8\r\e[0K" +} + +set_locales_centos8 + +#end raw +## vim: ts=4 et list diff --git a/snippets/tpl.240.pkgs-el7.sh b/snippets/tpl.240.pkgs-el7.sh new file mode 100644 index 0000000..80129e7 --- /dev/null +++ b/snippets/tpl.240.pkgs-el7.sh @@ -0,0 +1,39 @@ +## !/bin/bash +#raw + +#----------------------------------------------------------- +install_pkgs_el7() { + + echo -e "\e[0Ksection_start:$( date +%s ):ks_install_pkgs_el7[collapsed=true]\r\e[0KInstalling additional packages ..." + echo + echo "${HASH_LINE}" + echo "Calling install_pkgs_el7() ..." + echo + echo + log "Installing additional packages ..." + echo + + local -a pkgs_add=('colordiff' 'p7zip' 'screen') + local -a pkgs_remove=('nfs*' 'rpcbind') + + echo "Installing packages: ${pkgs_add[*]}" + yum install -y "${pkgs_add[@]}" + + echo + echo "Removing packages: ${pkgs_remove[*]}" + yum remove -y "${pkgs_remove[@]}" + + echo + echo "Creating /etc/gitconfig ..." + cat <<-EOF >/etc/gitconfig + [color] + ui = true + EOF + + echo -e "\e[0Ksection_end:$( date +%s ):ks_install_pkgs_el7\r\e[0K" +} + +install_pkgs_el7 + +#end raw +## vim: ts=4 et list -- 2.39.5