#!/usr/bin/env bash # # Create a base CentOS Docker image. # # This script is useful on systems with yum installed (e.g., building # a CentOS image on CentOS). See contrib/mkimage-rinse.sh for a way # to build CentOS images on other systems. yum_config=$1 target=$2 projectdir=$3 profile_id=$4 if [ $profile_id != "TSG-X-NXR620G40-R01-P1403" ];then kernel_version="5.4.159-1.el7.elrepo.x86_64" fi set -ex package_to_install_CentOS7="@base @core @debugging @directory-client @guest-agents @hardware-monitoring @network-file-system-client @performance @remote-system-management grub2 epel-release efibootmgr ansible yum-utils ipmitool docker-ce docker-ce-cli containerd.io lrzsz python3 vconfig watchdog pcm git tmux fish" package_to_install_RockyLinux85="@base @core @debugging @anaconda-tools @additional-devel @guest-agents @system-tools @hardware-monitoring @network-file-system-client @performance @remote-system-management adcli certmonger ipa-client clevis-dracut clevis-udisks2 krb5-pkinit krb5-workstation sssd-polkit-rules krb5-pkinit luksmeta nscd nss-pam-ldapd grub2 epel-release efibootmgr ansible yum-utils ipmitool OpenIPMI docker-ce docker-ce-cli containerd.io lrzsz python3 watchdog pcm git tmux fish kernel kernel-devel kernel-tools-libs kernel-modules kernel-tools kernel-core rpm-build libtool kernel-rpm-macros python36-devel tcsh kernel-modules-extra gcc-gfortran" if [ $profile_id != "TSG-X-NXR620G40-R01-P1403" ];then locak_package_to_install_CentOS7="$projectdir/package/kernel-lt-$kernel_version.rpm $projectdir/package/kernel-lt-devel-$kernel_version.rpm" fi kernel_package_to_install="kernel-3.10.0-1160.59.1.el7.x86_64 kernel-devel-3.10.0-1160.59.1.el7.x86_64" setopt="group_package_types=mandatory,default,optional" yum -c "$yum_config" --installroot="$target" -y makecache if [ $profile_id != "TSG-X-NXR620G40-R01-P1403" ];then yum -c "$yum_config" --installroot="$target" -y --setopt=$setopt install $package_to_install_CentOS7 yum -c "$yum_config" --installroot="$target" -y --setopt=$setopt localinstall $locak_package_to_install_CentOS7 else yum -c "$yum_config" --installroot="$target" -y --setopt=$setopt install $package_to_install_RockyLinux85 fi if [ $profile_id == "TSG-X-NXR620G40-R01-P1403" ];then kernel_version=$(ls $target/boot/vmlinuz-*.x86_64 | grep -oP "^$target/boot/vmlinuz-\K.*") fi #git clone --depth 1 https://github.com/brendangregg/FlameGraph.git /opt/tools/FlameGraph/ #git clone --depth 1 https://github.com/brendangregg/perf-tools.git /opt/tools/perf-tools/ test -d "$target"/opt/tools/ || mkdir -p "$target"/opt/tools/ tar -zxf $projectdir/tools/FlameGraph.tar.gz -C "$target"/opt/tools/ tar -zxf $projectdir/tools/perf-tools.tar.gz -C "$target"/opt/tools/ cp $projectdir/tools/run_flamegrah.sh "$target"/opt/tools/ cat > "$target"/etc/sysconfig/network <> $target/etc/pam.d/system-auth-local echo "session required pam_tty_audit.so enable=*" >> $target/etc/pam.d/password-auth-local ln -vfs --relative $target/etc/pam.d/system-auth-local $target/etc/pam.d/system-auth ln -vfs --relative $target/etc/pam.d/password-auth-local $target/etc/pam.d/password-auth cp -rf $projectdir/rootconf/sysroot-usr/target/* $target/usr/lib/systemd/system mkdir -p $target/usr/lib/systemd/system/workload.target.wants # ansible-playbook -i tsg-9140-scripts/install_config/tsg_9140_host tsg-9140-scripts/tsg_9140_deploy.yml yum -c "$yum_config" --installroot="$target" -y --setopt=$setopt clean all rm -rf $target/tmp/* rm -rf $target/core.* # tar --numeric-owner -c -C centos_mkroot/ . | pbzip2 -p9 > input/centos-7-chroot.tar.bz2 #rm -rf "$target"