<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Rhel on Panic! At The Terminal</title>
    <link>https://blog.nousiainen.xyz/tags/rhel/</link>
    <description>Recent content in Rhel on Panic! At The Terminal</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 24 Jul 2025 21:14:40 +0300</lastBuildDate>
    <atom:link href="https://blog.nousiainen.xyz/tags/rhel/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>In-Place Upgrade from RHEL 9 to RHEL 10 Using Leapp</title>
      <link>https://blog.nousiainen.xyz/docs/rhel9-to-rhel10-upgrade/</link>
      <pubDate>Thu, 24 Jul 2025 12:00:00 +0200</pubDate>
      <guid>https://blog.nousiainen.xyz/docs/rhel9-to-rhel10-upgrade/</guid>
      <description>&lt;h1 id=&#34;in-place-upgrade-from-rhel-9-to-rhel-10-using-leapp&#34;&gt;&#xA;  In-Place Upgrade from RHEL 9 to RHEL 10 Using Leapp&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#in-place-upgrade-from-rhel-9-to-rhel-10-using-leapp&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;This guide walks through the process of upgrading from RHEL 9 to RHEL 10 in place, without requiring a complete system reinstallation.&lt;/p&gt;&#xA;&lt;h2 id=&#34;current-system-status&#34;&gt;&#xA;  Current System Status&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#current-system-status&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s what my lab&amp;rsquo;s test VM looks like:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;user@test ~&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;$ hostnamectl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Static hostname: test.home.arpa&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       Icon name: computer-vm&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         Chassis: vm 🖴&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      Machine ID: dec9d730df4f4e629ba20d02aed02f03&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         Boot ID: 67e690ef7fbe45edb112a82dcdf72a97&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Virtualization: kvm&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Operating System: Red Hat Enterprise Linux 9.6 &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;Plow&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     CPE OS Name: cpe:/o:redhat:enterprise_linux:9::baseos&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          Kernel: Linux 5.14.0-570.28.1.el9_6.x86_64&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Architecture: x86-64&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Hardware Vendor: Red Hat&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Hardware Model: KVM&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Firmware Version: 1.16.3-4.el9&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We can see we&amp;rsquo;re currently running RHEL 9.6 on a KVM virtual machine.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SELinux Troubleshooting</title>
      <link>https://blog.nousiainen.xyz/docs/selinux-comprehensive-guide/</link>
      <pubDate>Wed, 23 Jul 2025 10:00:00 +0200</pubDate>
      <guid>https://blog.nousiainen.xyz/docs/selinux-comprehensive-guide/</guid>
      <description>&lt;h1 id=&#34;selinux-troubleshooting&#34;&gt;&#xA;  SELinux Troubleshooting&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#selinux-troubleshooting&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a little guide on how to find if SELinux is blocking something and how to add an exception to the policy.&lt;/p&gt;&#xA;&lt;h2 id=&#34;selinux-modes&#34;&gt;&#xA;  SELinux Modes&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#selinux-modes&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;SELinux operates in three modes:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Check SELinux status and mode&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sestatus&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;understanding-the-three-modes&#34;&gt;&#xA;  Understanding the Three Modes&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#understanding-the-three-modes&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Enforcing: SELinux policy is enforced&lt;/li&gt;&#xA;&lt;li&gt;Permissive: SELinux policy violations are logged but not blocked&lt;/li&gt;&#xA;&lt;li&gt;Disabled: SELinux is completely disabled&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;check-if-selinux-is-the-problem&#34;&gt;&#xA;  Check if SELinux is the problem&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#check-if-selinux-is-the-problem&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Temporarily set to permissive mode and test&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;setenforce &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Test your application&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# If it works now, SELinux was blocking it&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;setenforce &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;troubleshooting-workflow&#34;&gt;&#xA;  Troubleshooting Workflow&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#troubleshooting-workflow&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;When an application fails and you are certain that SELinux is blocking it, e.g. you turned SELinux off or into permissive mode and the application worked, you can do the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Optimizing KVM Virtual Machines with Tuned Profiles</title>
      <link>https://blog.nousiainen.xyz/docs/kvm-vm-tuning-ansible/</link>
      <pubDate>Mon, 07 Jul 2025 12:00:00 +0300</pubDate>
      <guid>https://blog.nousiainen.xyz/docs/kvm-vm-tuning-ansible/</guid>
      <description>&lt;h1 id=&#34;optimizing-kvm-virtual-machines-with-tuned-profiles&#34;&gt;&#xA;  Optimizing KVM Virtual Machines with Tuned Profiles&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#optimizing-kvm-virtual-machines-with-tuned-profiles&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;code&gt;tuned&lt;/code&gt; service on Red Hat-based systems provides pre-configured performance profiles that can significantly improve your VM performance with minimal effort.&lt;/p&gt;&#xA;&lt;p&gt;In this post, I&amp;rsquo;ll show you how to optimize your KVM VMs using tuned profiles and automate the entire process with Ansible.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-playbook&#34;&gt;&#xA;  The Playbook&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#the-playbook&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Since I manage dozens of VMs in my homelab, doing this manually would be tedious. Instead, I use this Ansible playbook to apply tuned optimization to all my VMs:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automating RHEL Server Updates with Ansible</title>
      <link>https://blog.nousiainen.xyz/docs/rhel-server-updates-ansible/</link>
      <pubDate>Sat, 05 Jul 2025 16:00:00 +0300</pubDate>
      <guid>https://blog.nousiainen.xyz/docs/rhel-server-updates-ansible/</guid>
      <description>&lt;h1 id=&#34;automating-rhel-server-updates-with-ansible&#34;&gt;&#xA;  Automating RHEL Server Updates with Ansible&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#automating-rhel-server-updates-with-ansible&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;&#xA;  Introduction&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#introduction&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;I hate updating my servers manually so I&amp;rsquo;ve set up this playbook to run updates. This was probably the first playbook I ever wrote for my home lab, and it&amp;rsquo;s been running automatically for years now on a weekly schedule every Friday night through AAP (Ansible Automation Platform).&lt;/p&gt;&#xA;&lt;p&gt;This guide shows you how to automate RHEL (and other yum/dnf based distros like Fedora, CentOS etc.) server updates using Ansible, including proper reboot handling.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
