# iMux Installation -- KICKSTART-File for MX1 GmbH IMUXLAB
# Unknown Server Customer Server Hardware, serial: 
# installing from 185.71.87.60

text
lang de_DE.utf8
keyboard --vckeymap=de --xlayouts='de'
rootpw --plaintext imux
firewall --disabled
selinux --disabled
timezone --utc Europe/Berlin --ntpservers=10.188.17.1,10.186.50.1
reboot --eject
xconfig --startxonboot
eula --agreed
firstboot --disable
cdrom
repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream



########################################################################
# Network interfaces
########################################################################
# no configuration during kickstart phase, they will be set up at the end


########################################################################
# Partions, etc...
########################################################################
bootloader --location=mbr --driveorder=vda
clearpart --linux --drives=vda --initlabel

part /boot/efi --fstype=efi  --size=2000  --ondisk=vda
part /boot     --fstype=ext4 --size=4000  --ondisk=vda 
part pv.4                    --size=60000 --ondisk=vda --grow
volgroup vgsys pv.4
logvol /         --fstype=ext4 --name=root    --vgname=vgsys --size=8000
logvol /var      --fstype=ext4 --name=var     --vgname=vgsys --size=20000
logvol /usr      --fstype=ext4 --name=usr     --vgname=vgsys --size=7000
logvol /tmp      --fstype=ext4 --name=tmp     --vgname=vgsys --size=4000
logvol /home     --fstype=ext4 --name=home    --vgname=vgsys --size=7000
logvol swap      --fstype=swap --name=swap    --vgname=vgsys --size=8000
logvol /var/ftp  --fstype=ext4 --name=varftp  --vgname=vgsys --size=5500 --grow
logvol /var/imux --fstype=ext4 --name=varimux --vgname=vgsys --size=5000 --grow


########################################################################
# Packages
########################################################################
%packages
@^graphical-server-environment
@debugging
@development
@ftp-server
@graphical-admin-tools
@mail-server
@smb-server
acpid
chrony
curl
elfutils-libelf-devel
ftp
genisoimage
gnome-shell-extension-apps-menu
gnome-shell-extension-desktop-icons
gnome-shell-extension-window-list
httpd
i2c-tools
icedtea-web
java-1.8.0-openjdk
java-1.8.0-openjdk-devel
java-1.8.0-openjdk-headless
man-pages
mcelog
mlocate
mod_ssl
nc
net-snmp
net-snmp-utils
net-tools
openssl
php
php-cli
php-gd
php-json
php-ldap
php-mbstring
php-pdo
php-pear
php-pgsql
php-snmp
php-xml
php-xmlrpc
postgresql-jdbc
postgresql-server
samba
samba-client
smartmontools
tar
tcpdump
-cheese
-spamassassin
-systemtap
-systemtap-*
-abrt
-abrt-*
-python3-abrt
-python3-abrt-*
-libvirt-*
-gnome-boxes
-sane-*
-libsane-hpaio
-hplip-libs
-valgrind
-valgrind-devel
-sos
-cockpit
-cockpit-*

%end


########################################################################
########################################################################
# Post installation commands
########################################################################
########################################################################
%post --log=/root/kickstart-post.log


########################################################################
# misc
########################################################################
echo 'exclude=kernel*' >>/etc/yum.conf
cat >>/etc/ssh/sshd_config <<EOF
UseDNS no
EOF
echo 'deltarpm=0' >>/etc/yum.conf
systemctl set-default graphical.target
sed -i '/\[daemon\]/a InitialSetupEnable=false' /etc/gdm/custom.conf
mkdir -p /root/.config
echo "yes" >> /root/.config/gnome-initial-setup-done
systemctl enable acpid


########################################################################
# License
########################################################################
cat <<EOF >"/tmp/imux-regkey"
---------------------------------------------------
Application:        iMux
Registered to:      SES Germany
Serial number:      188
Valid from:         unlimited
Valid to:           unlimited
Support ends:       2023-6-30
Hardware MAC:       24:6e:96:23:07:fc
Services:           5
Inputs:             5

Registration key:
line 1: 0n0b s000 0001 9b94 dub2 61zw 004g a1b4 hs0s 03k5 q306 qb3w 51
line 2: z7n0 x0xd 4eb1 1kiq 2s5x 9gv9 9603 ihdn exv6 7bbp sai4 4e00 61
---------------------------------------------------
EOF


########################################################################
# setup NTP
########################################################################
hwclock --systohc --utc
chronyd -q 'pool pool.ntp.org iburst'
systemctl enable chronyd


########################################################################
# configure FTP
########################################################################
cat <<EOF >>/etc/vsftpd/vsftpd.conf

# disable DNS lookup of FTp clients
reverse_lookup_enable=NO

# only allow users that are explicitly listed in allow_users file
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/allow_users
chroot_local_user=YES
pasv_min_port=10000
pasv_max_port=65000
EOF
touch /etc/vsftpd/allow_users

cp /sbin/nologin /sbin/nologin2
echo /sbin/nologin2 >>/etc/shells



########################################################################
# setup SNMP
########################################################################
systemctl enable snmpd




########################################################################
# Setup user interface
########################################################################
# mozilla prefs
cat <<EOF >/usr/lib64/firefox/defaults/preferences/00-mitxp.js
pref("startup.homepage_override_url",       "http://www.mit-xperts.com");
pref("startup.homepage_welcome_url",        "http://www.mit-xperts.com");
pref("browser.startup.homepage",            "data:text/plain,browser.startup.homepage=http://localhost/");
EOF
cat <<EOF >/usr/lib64/firefox/distribution/policies.json
{
  "policies": {
    "DisplayBookmarksToolbar": false,
    "Bookmarks": [
      {
        "Title": "Launch product",
        "URL": "http://127.0.0.1/",
        "Favicon": "http://127.0.0.1/favicon.ico",
        "Placement": "toolbar",
        "Folder": ""
      },
      {
        "Title": "MIT-xperts",
        "URL": "https://www.mit-xperts.com/",
        "Favicon": "https://www.mit-xperts.com/favicon.ico",
        "Placement": "toolbar",
        "Folder": ""
      }
    ]
  }
}
EOF

# Download desktop background
mkdir -p /usr/share/mitxp
wget --no-check-certificate -a /root/wget.log -O/usr/share/mitxp/mitxp-1280x1024.jpg https://support.mit-xperts.com/trio-mend-fog/download/mitxp-1280x1024.jpg
wget --no-check-certificate -a /root/wget.log -O/usr/share/mitxp/logo-white.png https://support.mit-xperts.com/trio-mend-fog/download/logo-white.png
wget --no-check-certificate -a /root/wget.log -O/usr/share/pixmaps/ekiga.png https://support.mit-xperts.com/trio-mend-fog/download/ekiga.png

echo 'file-db:/usr/share/gdm/greeter-dconf-defaults' >>/etc/dconf/profile/user
chmod 644 /etc/dconf/db/local

cat <<EOF >/etc/dconf/db/local.d/98-favorite-apps
[org/gnome/shell]
favorite-apps=['firefox.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.Terminal.desktop', 'com.mitxp.imux.desktop']
EOF

cat <<EOF >/etc/dconf/db/local.d/99-desktop
[org/gnome/login-screen]
disable-user-list=true
banner-message-enable=true
banner-message-text='MIT-xperts iMux'
logo='/usr/share/mitxp/logo-white.png'

[org/gnome/desktop/background]
picture-uri='file:///usr/share/mitxp/mitxp-1280x1024.jpg'
picture-options='zoom'

[org/gnome/desktop/screensaver]
picture-uri='file:///usr/share/mitxp/mitxp-1280x1024.jpg'
picture-options='zoom'

[org/gnome/shell]
enabled-extensions=['window-list@gnome-shell-extensions.gcampax.github.com', 'desktop-icons@gnome-shell-extensions.gcampax.github.com', 'apps-menu@gnome-shell-extensions.gcampax.github.com']

[org/gnome/desktop/wm/preferences]
button-layout='appmenu:minimize,maximize,close'

[org/gnome/nautilus/preferences]
executable-text-activation='ask'
EOF

cat <<EOF >/etc/dconf/db/local.d/locks/background
/org/gnome/desktop/background/picture-uri
/org/gnome/desktop/background/picture-options
EOF

dconf update

# Avoid SSL ssl problems with EPEL
yum -y update yum openssl ca-certificates



########################################################################
# Web Index
########################################################################
mkdir -p /var/www/html >/dev/null 2>&1
wget --no-check-certificate -a /root/wget.log -O/var/www/html/index.php https://support.mit-xperts.com/trio-mend-fog/download/webindex.php



########################################################################
# Download and install MIT-xperts Software
########################################################################
cd /root
wget --no-check-certificate -a wget.log -Oimux-2023.1.0-rhel8a.64.iso https://support.mit-xperts.com/trio-mend-fog/download

mount -o loop imux-2023.1.0-rhel8a.64.iso /mnt
cd /mnt

mkdir -p /root/Desktop

mkdir -p /var/imux/admin
/bin/sh /mnt/installdata/create-dummyvid.sh PRE
cd

# run after reboot
cat <<EOF >/etc/systemd/system/mitxpinstall.service
[Unit]
Description=MITxp product installation

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/root/mitxp-install.sh

[Install]
WantedBy=multi-user.target
EOF
chmod +x /etc/systemd/system/mitxpinstall.service
cat <<EOF >/root/mitxp-install.sh
#!/bin/sh
mount -o loop /root/imux-2023.1.0-rhel8a.64.iso /mnt
cd /mnt/
export AUTOINSTALL=1
./setup.sh >/root/lateinstall.log 2>&1
systemctl daemon-reload
/bin/sh installdata/create-dummyvid.sh POST >>/root/lateinstall.log 2>&1
systemctl restart imux
systemctl restart httpd
systemctl restart snmpd

cd /root
systemctl disable mitxpinstall
rm /etc/systemd/system/mitxpinstall.service
rm /root/mitxp-install.sh
rm -rf /root/imux-2023.1.0-rhel8a.64.iso
dconf update

if [ -f /root/mitxp-xtra.sh ]; then
  chmod a+rx /root/mitxp-xtra.sh
  bash /root/mitxp-xtra.sh >>/root/lateinstall.log 2>&1
  rm /root/mitxp-xtra.sh
fi
umount /mnt
curl --silent --show-error --insecure --form file=@lateinstall.log https://support.mit-xperts.com/trio-mend-fog/store_log_curl/lateinstall.log
curl --silent --show-error --insecure --form file=@kickstart-post.log https://support.mit-xperts.com/trio-mend-fog/store_log_curl/kickstart-post.log
EOF
chmod +x /root/mitxp-install.sh
systemctl enable mitxpinstall






########################################################################
# Setup RDP
########################################################################
yum -y install epel-release
yum -y install screen

yum install -y tigervnc-server xrdp
wget --no-check-certificate -a /root/wget.log -O/usr/share/mitxp/logo_rdp.bmp https://support.mit-xperts.com/trio-mend-fog/download/logo_rdp.bmp
sed -i -e 's#ls_logo_filename=.*#ls_logo_filename=/usr/share/mitxp/logo_rdp.bmp#' /etc/xrdp/xrdp.ini

# we need openjdk-11 for xrdp
yum install -y java-11-openjdk

# prepare setup for console VNC server
cat <<EOF > /etc/systemd/system/vncserver@:1.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
Environment=HOME=/root

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver -localhost %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

EOF
cat <<EOF >>/etc/xrdp/xrdp.ini

# to enable, uncomment, then call
# systemctl enable vncserver@:1.service
# sed -i -e 's/#WaylandEnable.*/WaylandEnable=false/' /etc/gdm/custom.conf
#[console]
#name=console
#lib=libvnc.so
#ip=127.0.0.1
#port=5901
#username=na
#password=ask

EOF


mkdir -p /root/.vnc
echo -n "Q2AxLXQKnBY=" |base64 -d > /root/.vnc/passwd
chmod 600 /root/.vnc/passwd




########################################################################
# Networking
########################################################################
find_if() {
    cd /sys/class/net
    for i in *; do
        if [ i != 'lo' -a x`cat $i/address` == x$1 ]; then echo $i; break; fi
    done
}

#Ignore carrier (link detection) and always set static IP
cat <<EOF >/etc/NetworkManager/conf.d/ignore-carrier.conf
[device]
match-device=*
ignore-carrier=1

EOF

# resolving
#echo 10.91.2.88 imuxlab1.ux.a-p-s.biz >>/etc/hosts

echo imuxlab1.ux.a-p-s.biz >/etc/hostname


###########################################
# configure network interfaced with teaming
###########################################



##############################################
# configure network interfaces without teaming
##############################################
DEVNAME=`find_if 24:6e:96:23:07:fc`
if [ "x" != "x$DEVNAME" ]; then
  DEVFILE=/etc/sysconfig/network-scripts/ifcfg-$DEVNAME
  DEVUUID=`grep UUID "$DEVFILE" |sed -e 's/.*=//' -e 's/"//g' -e 's/ //g'`
  cat <<EOF >"$DEVFILE"
TYPE="Ethernet"
DEVICE="$DEVNAME"
NAME="$DEVNAME"
IPADDR=10.91.2.88
NETMASK=255.255.255.0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
GATEWAY=10.91.2.254
DEFROUTE=yes
PEERDNS=yes
DNS1=10.185.130.72
DNS2=10.185.130.76
HOSTNAME=imuxlab1.ux.a-p-s.biz
IPV6INIT=no
EOF
  if [ "x" != "x$DEVUUID" ]; then
    echo "UUID=\"$DEVUUID\"" >>"$DEVFILE"
  fi
fi


umount /mnt # from SW install

########################################################################
# OS update
########################################################################
yum -y update --skip-broken --nobest
yum -y update

sed -i 's/SELINUX *=.*/SELINUX=disabled/' /etc/selinux/config


########################################################################
# Upload log files
########################################################################
cd /root
/bin/rpm -qa > packages.txt
/usr/sbin/dmidecode >DMIdecode.txt
sync
curl --silent --show-error --insecure --form file=@install.log https://support.mit-xperts.com/trio-mend-fog/store_log_curl/install.log
curl --silent --show-error --insecure --form file=@install.log.syslog https://support.mit-xperts.com/trio-mend-fog/store_log_curl/install.log.syslog
curl --silent --show-error --insecure --form file=@anaconda-ks.cfg https://support.mit-xperts.com/trio-mend-fog/store_log_curl/anaconda-ks.cfg
curl --silent --show-error --insecure --form file=@wget.log https://support.mit-xperts.com/trio-mend-fog/store_log_curl/wget.log
curl --silent --show-error --insecure --form file=@packages.txt https://support.mit-xperts.com/trio-mend-fog/store_log_curl/packages.txt
curl --silent --show-error --insecure --form file=@DMIdecode.txt https://support.mit-xperts.com/trio-mend-fog/store_log_curl/DMIdecode.txt
curl --silent --show-error --insecure --form file=@original-ks.cfg https://support.mit-xperts.com/trio-mend-fog/store_log_curl/original-ks.cfg
rm packages.txt DMIdecode.txt
sync


########################################################################
# Make sure power button shuts down server
########################################################################
perl -pi -e 's/#*HandlePowerKey=.*/HandlePowerKey=poweroff/' /etc/systemd/logind.conf
perl -pi -e 's/#*PowerKeyIgnoreInhibited=.*/PowerKeyIgnoreInhibited=no/' /etc/systemd/logind.conf
hostnamectl set-chassis vm
gsettings set org.gnome.settings-daemon.plugins.power power-button-action shutdown
cat <<EOF >/etc/acpi/actions/power.sh
#!/bin/sh
/usr/sbin/shutdown -h now
EOF



########################################################################
# send success message to server
########################################################################
wget --no-check-certificate -O /dev/null https://support.mit-xperts.com/trio-mend-fog/kickstart_success


########################################################################
# setup DNS
########################################################################
cat <<EOF >/etc/resolv.conf
nameserver 10.185.130.72
nameserver 10.185.130.76
search ux.a-p-s.biz
EOF


########################################################################
# Cleanup
########################################################################
cd /root
rm -f install.log install.log.syslog anaconda-ks.cfg wget.log original-ks.cfg


%end
