# Installation on RHEL 9 ## Pre-requisites RHEL 9 pre-requisites : - RHEL 9 is installed - The Red Hat repositories **baseos** and **appstream** are reachable Microshift pre-requisites : - RHEL 9.2 or 9.3 - LVM volume group (VG) with unused space ## Install Pre-requisites ```sh sudo subscription-manager register --username $RHN_LOGIN --auto-attach sudo subscription-manager attach --pool=$RHN_POOL_ID sudo dnf install -y osbuild-composer composer-cli cockpit-composer sudo systemctl enable --now osbuild-composer.socket sudo systemctl enable --now cockpit.socket sudo systemctl restart osbuild-composer sudo usermod -a -G weldr "$(id -un)" ``` Check that **os-composer** is working. ``` $ source /etc/bash_completion.d/composer-cli $ composer-cli status show API server status: Database version: 0 Database supported: true Schema version: 0 API version: 1 Backend: osbuild-composer Build: NEVRA:osbuild-composer-88.3-1.el9_3.x86_64 $ composer-cli sources list appstream baseos ``` ## Clone this repository ```sh git clone https://github.com/nmasse-itix/red-hat-kiosk.git cd red-hat-kiosk export GIT_REPO_CLONE="$PWD" ``` ## Nginx configuration ```sh sudo dnf install -y nginx sudo systemctl enable --now nginx.service sudo firewall-cmd --permanent --add-port={80/tcp,443/tcp} sudo firewall-cmd --reload sudo mkdir -p /var/www sudo restorecon -Rv /var/www sudo sed -i.bak 's|/usr/share/nginx/html|/var/www|g' /etc/nginx/nginx.conf sudo systemctl restart nginx.service ``` ## Rebuild of Google Chrome ```sh sudo dnf install -y git rpm-build sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm sudo dnf install -y rpmrebuild cd "$GIT_REPO_CLONE/chrome_repackage" curl -s -Lo google-chrome-stable_current_x86_64.rpm https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm rpmrebuild -s google-chrome-stable.spec -p google-chrome-stable_current_x86_64.rpm rpm2cpio google-chrome-stable_current_x86_64.rpm | cpio -idmv mv opt/google/ usr/bin/ cd usr/bin/ rm -f google-chrome-stable ln -s google/chrome/google-chrome google-chrome-stable ln -s google/chrome/google-chrome chrome cd ../.. RPM=$(rpm -q google-chrome-stable_current_x86_64.rpm) mkdir -p $HOME/rpmbuild/BUILDROOT/$RPM/ for i in etc usr; do cp -r $i $HOME/rpmbuild/BUILDROOT/$RPM/; done sed -i.bak 's|/opt/google|/usr/bin/google|g' google-chrome-stable.spec rpmbuild -bb google-chrome-stable.spec ls -l $HOME/rpmbuild/RPMS/x86_64/ ``` ## Repository Creation Customize the desired location of the RPM repository: ```sh REPO_LOCATION="/opt/custom-rpms/" ``` Create the custom RPM repository: ```sh sudo dnf install -y createrepo sudo mkdir -p "$REPO_LOCATION" sudo cp $HOME/rpmbuild/RPMS/x86_64/* "$REPO_LOCATION" sudo createrepo "$REPO_LOCATION" sudo tee /etc/yum.repos.d/custom.repo <