Oracle Linux 9
Overview
Oracle Linux 9 is the latest major release of Oracle's enterprise Linux distribution. It offers modern kernel features, enhanced security and improved performance for cloud workloads. This guide covers deploying and configuring Oracle Enterprise Linux 9 on AWS from the SecureAnyCloud AMI on AWS Marketplace.
What you get:
- Available versions: Oracle Linux 9.0, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6 and 9.7, each as a separate AMI on AWS Marketplace
- Oracle Enterprise Linux 9 with the latest security patches
- AWS CLI 2.7.7 for AWS service management
- AWS CloudWatch Agent 1.247352.0b251908 for monitoring and log collection
- AWS Systems Manager Agent 3.1.1476.0 for remote management
- Cloud Init 22.1 for instance initialization
- An OS package update script that keeps the system current
- 24/7 SecureAnyCloud support with guaranteed 24 hour response SLA
Prerequisites
Before you launch the AMI, make sure you have:
- An active AWS account
- An active subscription to your chosen Oracle Linux 9 version on AWS Marketplace
- An EC2 key pair for SSH access
- Familiarity with EC2 instance management and SSH
Recommended instance type: t3.small (2 vCPU, 2 GB RAM) or larger. The minimum requirements are 1 vCPU, 1 GB RAM and 20 GB of disk space.
Launch the AMI
- Go to AWS Marketplace and search for "Oracle Linux 9 SecureAnyCloud".
- Select the minor version you need (9.0 through 9.7).
- Click Continue to Subscribe, accept the terms, then click Continue to Configuration.
- Select your preferred Region and Software Version.
- Click Continue to Launch.
- Choose Launch through EC2 for full control over the instance configuration.
- Select your instance type (
t3.smallrecommended). - Configure storage: 20 GB gp3 minimum.
- Configure your Security Group with this inbound rule:
- 22 (TCP), source your IP: SSH access
- Select your EC2 key pair and launch the instance.
Connect via SSH
When your instance is running and has passed both status checks (2/2), connect over SSH:
ssh -i your-key.pem ec2-user@<public-ip-address>To switch to the root user, run:
sudo su -Verify the System
Check the OS version:
cat /etc/oracle-releaseCheck the kernel version:
uname -rUsing AWS CLI
The AWS CLI comes preinstalled. Check the version:
aws --versionConfigure credentials with aws configure or attach an IAM role to the instance.
Configuring CloudWatch Agent
Run the configuration wizard as root:
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizardStart the agent:
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.jsonCheck the status:
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a statusUsing Systems Manager
Check SSM Agent status:
systemctl status amazon-ssm-agentMake sure the instance has an IAM role with the AmazonSSMManagedInstanceCore policy.
Configuring Cloud Init
To change the Cloud Init configuration, edit this file:
vi /etc/cloud/cloud.cfgServer Components
The image includes these components:
- AWS CLI 2.7.7: /usr/local/aws-cli
- AWS CloudWatch Agent 1.247352.0b251908: /opt/aws/amazon-cloudwatch-agent
- AWS Systems Manager Agent 3.1.1476.0: /usr/bin/amazon-ssm-agent
- Cloud Init 22.1: /etc/cloud
Filesystem Layout
The image uses these mount points:
- / (38 GB): root filesystem (NVMe)
- /boot (2 GB): operating system kernel files
Note: Oracle Linux 9 uses NVMe storage devices on supported instance types.
Scripts and Log Files
Scripts and logs, with their locations:
- initial_boot_update.sh (/stage/scripts): updates the OS with the latest packages on first boot
- initial_boot_update.log (/stage/scripts): output log for the boot update script
On Startup
An OS package update script runs on first boot. To disable it, run:
rm -f /stage/scripts/initial_boot_update.sh crontab -e
# Delete the @reboot line, save and exitCommon Administration Tasks
Update all packages:
dnf update -yInstall a package:
dnf install -y package-nameSearch for packages:
dnf search keywordManage services:
systemctl start service-name
systemctl stop service-name
systemctl enable service-name
systemctl status service-nameView system logs:
journalctl -fCheck listening ports:
ss -tlnpOracle Linux Specific Features
Unbreakable Enterprise Kernel (UEK)
Oracle Linux includes the Unbreakable Enterprise Kernel (UEK), Oracle's own optimized kernel for enterprise workloads. UEK 7 is the default kernel on Oracle Linux 9. Compared with the Red Hat Compatible Kernel (RHCK), it provides enhanced performance, advanced diagnostics and improved hardware support.
Verify which kernel is running:
uname -rIf the output contains uek, you are running the Unbreakable Enterprise Kernel. If it contains el9, you are running the RHCK.
To switch between kernels:
# List installed kernels grubby --info=ALL | grep title
# Set the default kernel (example for RHCK)
sudo grubby --set-default /boot/vmlinuz-<rhck-version>
# Reboot to apply
sudo rebootUEK 7 highlights:
- Based on Linux 5.15 LTS with Oracle enhancements
- Optimized for Oracle Database and middleware workloads
- DTrace tracing framework for advanced diagnostics
- Enhanced Btrfs filesystem support
- Improved NVMe, RDMA and network driver performance
- Virtio and cloud platform optimizations
Ksplice zero-downtime patching
Oracle Linux includes Ksplice, a technology that applies critical kernel security patches without a reboot. This suits production database servers, where uptime is critical.
Check the Ksplice status:
sudo ksplice kernel showApply available patches without a reboot:
sudo ksplice kernel upgradeNote: Ksplice requires an Oracle Linux Premier Support subscription for full functionality. The AMI includes the Ksplice tools preinstalled.
Oracle Database compatibility
Oracle Linux 9 is Oracle's recommended operating system for the latest Oracle Database deployments, including 19c, 21c, 23ai and 26ai. Key advantages:
- Prevalidated and certified for all current Oracle Database versions
- Required Oracle prerequisite packages available through
oracle-database-preinstallRPMs - Automatic Storage Management (ASM) kernel driver support through UEK
- Optimized huge pages and shared memory configuration for database workloads
Install the Oracle Database prerequisites:
sudo dnf install -y oracle-database-preinstall-23aiThis command configures the kernel parameters, user accounts and resource limits that Oracle Database installation requires.
Troubleshooting
You cannot connect over SSH
- Verify that the instance has passed 2/2 status checks.
- Check that your security group allows port 22 from your IP.
- Make sure you are using the correct key pair and username (
ec2-user).
dnf update fails
- Verify internet access (public subnet or NAT gateway).
- Check DNS resolution:
nslookup yum.oracle.com - Check disk space:
df -h
The CloudWatch Agent is not working
- Verify the agent status with the
amazon-cloudwatch-agent-ctlcommand. - Check that the IAM role has
CloudWatchAgentServerPolicy. - Review the logs:
tail -f /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
Security Recommendations
- Restrict SSH access. Allow port 22 only from trusted IP addresses.
- Use IAM roles for AWS API access instead of access keys.
- Keep the system updated. Run
dnf updateregularly. - Enable SELinux. Verify it with
getenforce. - Configure firewalld for host-level security.
- Monitor with CloudWatch for CPU, memory and disk alerts.
- Use SSM Session Manager for secure, auditable remote access.
- Harden the SSH configuration. Disable password authentication and use key-based authentication only.
Support
If you have any issues with this product, contact SecureAnyCloud support:
- Email: sales@secureanycloud.com
- Website: secureanycloud.com
- Support hours: 24/7 with guaranteed 24 hour response SLA
Deploy on AWS
Launch Oracle Linux 9 with 24/7 support from SecureAnyCloud.
View on Marketplace
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com
Deploy on AWS
Launch Oracle Linux 9 with 24/7 support from SecureAnyCloud.
View on Marketplace
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com
Videos
Overview: Oracle Linux 9 on Azure: overview (watch on YouTube)
Launch and log in: Oracle Linux 9 on Azure: launch and log in (watch on YouTube)
Overview
Oracle Linux 9 on Azure is a preconfigured virtual machine image from the Azure Marketplace. This guide covers deploying and configuring Oracle Enterprise Linux 9 on Microsoft Azure from the SecureAnyCloud image.
What you get:
- Oracle Enterprise Linux 9.7 with Unbreakable Enterprise Kernel (UEK) 6.12
- LVM partitioning for flexible disk management
- Azure Linux Agent (waagent) for cloud integration
- Chronyd for NTP time synchronization
- SELinux in enforcing mode
- Gen2 Hyper-V virtual machine support
- 24/7 SecureAnyCloud support
- Platform: Microsoft Azure (Gen2 Hyper-V)
- Default user:
azureuser
Prerequisites
Before you deploy the image, make sure you have:
- An active Microsoft Azure subscription
- Access to the Azure Portal or Azure CLI
- An SSH key pair for Linux VM access
- Familiarity with Azure VM management
Recommended VM size: Standard_B2s (2 vCPU, 4 GB RAM) or larger.
Deploy the Virtual Machine
Option A: Azure Portal
- Go to Azure Marketplace and search for "Oracle Linux 9 on Azure SecureAnyCloud".
- Select the image and click Create.
- Configure the basics:
- Subscription: select your Azure subscription.
- Resource Group: create a new one or select an existing one.
- Virtual Machine Name: enter a name for your VM.
- Region: select your preferred Azure region.
- Size:
Standard_B2srecommended.
- Under Administrator Account, select SSH public key and enter your key.
- Under Inbound Port Rules, allow SSH (port 22).
- Click Review + Create, then click Create.
Option B: Azure CLI
az vm image terms accept --urn sac1647283583153:oracle-linux-9:default:latest
az vm create \
--resource-group myResourceGroup \
--name my-oracle-linux-9-azure-vm \
--image sac1647283583153:oracle-linux-9:default:latest \
--size Standard_B2s \
--admin-username azureuser \
--generate-ssh-keys \
--public-ip-sku StandardConnect via SSH
When your VM is running, connect over SSH:
ssh azureuser@<public-ip-address>To find your VM's public IP, run:
az vm show --resource-group myResourceGroup --name my-oracle-linux-9-azure-vm --show-details --query publicIps -o tsvVerify the Installation
After you connect, verify the operating system:
cat /etc/os-release uname -rCheck disk space and memory:
df -h free -hVerify the Azure Linux Agent is running:
systemctl status waagentUpdate the System
Apply the latest security patches to keep your system up to date:
sudo dnf update -yConfigure the firewall (optional)
The Azure Network Security Group (NSG) controls inbound and outbound traffic. You can also configure the local firewall. List the current rules:
sudo firewall-cmd --list-allTo allow more ports, run:
sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reloadCommon Use Cases
- Oracle Database hosting (19c, 21c, 23ai, 26ai)
- Oracle WebLogic application server
- Enterprise Java application deployments
- Cloud-native and containerized workloads
Troubleshooting
You cannot connect over SSH
- Verify that the VM is in the Running state in the Azure Portal.
- Check that the Network Security Group allows port 22.
- Make sure you are using the correct username:
azureuser - Verify that your SSH key matches the one you configured during deployment.
The Azure agent is not running
Start and enable the agent:
sudo systemctl start waagent
sudo systemctl enable waagentPackage manager issues
Run the update again:
sudo dnf update -yIf the repositories are unreachable, check DNS resolution:
nslookup google.comSupport
For help with this image, contact SecureAnyCloud support:
- Website: secureanycloud.com
- Product catalog: secureanycloud.com/products
- User guides: secureanycloud.com/guides
- SLA: 24 hour response guaranteed
Deploy on Azure
Launch Oracle Linux 9 on Azure with 24/7 support from SecureAnyCloud.
View this image
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com