openEuler 24.03 LTS
Overview
openEuler is a community operating system incubated and operated by the OpenAtom Foundation. It is an enterprise-grade server distribution in the RHEL/CentOS lineage. It uses RPM packages, the dnf package manager (DNF4) and a familiar Red Hat-style layout. 24.03 is a Long-Term Support (LTS) release.
This guide covers deploying and configuring openEuler 24.03 LTS on Microsoft Azure with SecureAnyCloud's preconfigured virtual machine image from the Azure Marketplace. The image is built from the 24.03 LTS maintenance level SP4 and is fully patched to its capture date.
SecureAnyCloud is not affiliated with, endorsed by, or sponsored by the openEuler community or the OpenAtom Foundation. "openEuler" is used here only to identify the operating system this image contains.
What you get
- openEuler 24.03 LTS (24.03-LTS-SP4 maintenance level), x86-64
- A standard (non-LVM) ext4 root. The OS disk is GPT: partition 1 is a 1 MiB
bios_grubpartition that holds the BIOS bootloader, partition 2 is the FAT/bootpartition and partition 3 is the ext4 root - Every available 24.03-LTS-SP4 package applied at build time, so the image is fully patched to its capture date
- The official openEuler repositories, served from the official openEuler mirror at
mirrors.ocf.berkeley.edu(withmirrors.xtom.deandrepo.openeuler.orgas fallbacks), sodnfrefreshes quickly on Azure (see Package mirror) - Azure Linux Agent (WALinuxAgent 2.10) injected and enabled for Azure provisioning
dnf-automaticarmed, so the machine keeps applying updates unattended- Serial console enabled (
console=ttyS0) for Azure out-of-band recovery - Gen1 Hyper-V virtual machine support (BIOS boot)
- 24/7 SecureAnyCloud support
Platform: Microsoft Azure (Gen1 Hyper-V). Default user: azureuser. Open ports: TCP 22 (SSH) only.
Security posture
This image ships with no known credential. It has no default password and no baked-in SSH key.
- The root account password is locked, so no one can log in as root with a password.
- SSH password login follows the authentication type you choose when you create the VM. Choose SSH public key and only your key works. Choose Password and the password you set works for that user. The image pins no
PasswordAuthenticationvalue that would override your choice. PermitRootLoginis set toprohibit-password.- With key authentication, the only key that works is the public key you supply when you create the virtual machine. The Azure Linux Agent injects it into
azureuserat first boot, so no two machines you launch share a secret. - The machine identity (
/etc/machine-id) and the SSH host keys are regenerated on every instance, so two VMs launched from this image are cryptographically distinct. - The unused
rpcbindlistener on port 111 is disabled. Re-enable it withsystemctl enable --now rpcbind.socketif you need NFSv3. - The only externally bound listener is SSH on port 22.
Provisioning agent and SELinux
- The Azure Linux Agent (WALinuxAgent) handles provisioning, not cloud-init. openEuler's generic-cloud image does not ship cloud-init, so this image uses waagent to create
azureuser, inject your SSH key and regenerate a per-VM SSH host key on first boot. Azure supports this model, but it means custom-data and cloud-init user-data are not consumed. - SELinux is not enforced in this image. openEuler's generic-cloud image ships without a SELinux targeted policy, and SecureAnyCloud keeps that upstream default rather than force-enabling SELinux on the imported image. If your workload requires SELinux, install the policy (dnf install selinux-policy-targeted policycoreutils), set SELINUX=enforcing in /etc/selinux/config, touch /.autorelabel, and reboot.
Licence
openEuler is free and open source. Its own components are licensed under the Mulan Permissive Software License v2 (Mulan PSL v2). The distribution is assembled from thousands of independently packaged upstream components, each with its own terms (GPL, LGPL, MIT, BSD, Apache-2.0, MPL and more). You can read the terms per package with rpm -qi <pkg> and under /usr/share/licenses/. No paid subscription, licence key or support contract is required.
Prerequisites
Before you deploy this 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
Deployment
Create the VM (Azure CLI)
# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:openeuler:default:latest
az vm create \
--resource-group my-resource-group \
--name my-openeuler-vm \
--image sac1647283583153:openeuler:default:latest \
--size Standard_B2s \
--admin-username azureuser \
--ssh-key-values ~/.ssh/id_ed25519.pub \
--public-ip-sku StandardThis is a Gen1 (BIOS) image, so choose a VM size that supports Gen1, such as the Standard_B, D_v5/Ds_v5 or F-series. Only your SSH public key is injected.
Connect over SSH
ssh azureuser@<public-ip>You are signed in as azureuser, a member of the sudo/wheel group. Use sudo for administrative tasks.
First steps after login
Confirm the release:
cat /etc/openEuler-release
# openEuler release 24.03 (LTS-SP4)
cat /etc/os-release | grep -E '^(NAME|VERSION|ID)='Apply any updates published since the image was captured:
sudo dnf -y upgradednf-automatic is already armed, so the machine also applies updates on a timer:
systemctl status dnf-automatic.timer cat /etc/dnf/automatic.conf
# upgrade_type=default, apply_updates=yesPackage management
openEuler uses dnf (DNF4) with RPM packages. Confirm the enabled repositories and the release package:
dnf repolist rpm -q openEuler-release
dnf --versionThe enabled repositories (OS, everything, EPOL, update and others) are the official openEuler 24.03-LTS-SP4 repositories, fetched from an official mirror (see below). The EPOL (Extra Packages for openEuler) repository is enabled, which gives you a wider package set.
Day-to-day usage follows the usual dnf verbs. Run sudo dnf install <package> to install, sudo dnf remove <package> to remove and dnf search <keyword> to search.
Package mirror
openEuler's main repository server, repo.openeuler.org, is in Hong Kong and is slow to reach from most Azure regions. Refreshing its metadata alone can take more than 15 minutes. This image therefore fetches packages from https://mirrors.ocf.berkeley.edu/openeuler, an official openEuler mirror that is listed on openEuler's mirror list and kept in sync with repo.openeuler.org. Measured from Azure East US and North Europe, a full metadata refresh takes under a minute and a typical update run takes about two minutes.
The mirror is set in one place, the dnf variable file /etc/dnf/vars/oemirror. Every repository in /etc/yum.repos.d/openEuler.repo uses it as its first baseurl. mirrors.xtom.de and repo.openeuler.org follow as automatic fallbacks:
cat /etc/dnf/vars/oemirror
# https://mirrors.ocf.berkeley.edu/openeuler grep -A3 '^\[update\]' /etc/yum.repos.d/openEuler.repo
# baseurl=$oemirror/openEuler-24.03-LTS-SP4/update/$basearch/
# https://mirrors.xtom.de/openeuler/openEuler-24.03-LTS-SP4/update/$basearch/
# https://repo.openeuler.org/openEuler-24.03-LTS-SP4/update/$basearch/To switch to another mirror, write its base URL into that file and refresh the cache. Use the directory that contains openEuler-24.03-LTS-SP4/, with no trailing slash. For example, pick a mirror closer to your region from the official list at openeuler.org/en/mirror/list, or use a private mirror:
echo 'https://mirror.accum.se/mirror/openeuler.org' | sudo tee /etc/dnf/vars/oemirror
sudo dnf clean all && sudo dnf makecacheTo go back to openEuler's own server, run echo 'https://repo.openeuler.org' | sudo tee /etc/dnf/vars/oemirror.
Changing the mirror does not weaken package verification. gpgcheck=1 stays on for every repository. Whichever server a package comes from, it is verified against the openEuler signing key shipped in the image at /etc/pki/rpm-gpg/RPM-GPG-KEY-openEuler (fingerprint 8AA1 6BF9 F2CA 5244 010D CA96 3B47 7C60 B675 600B). You can check the fingerprint yourself:
gpg --show-keys --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-openEuleropenEuler.repo is a protected configuration file. When the openEuler-repos package is updated, your copy is kept and the new upstream default is written alongside it as openEuler.repo.rpmnew. A routine dnf upgrade therefore never switches you back to the slower server.
Managing services
openEuler uses systemd. List the running services:
systemctl list-units --type=service --state=running --no-legend | headTo manage a specific unit, use sudo systemctl start <service>, sudo systemctl enable <service> (start at boot) and sudo systemctl status <service>. Use journalctl -u <service> to view its logs.
Networking and the firewall
The Azure Network Security Group controls inbound and outbound traffic. It is the first place to open a port, and usually the only one. The image advertises a single inbound port, SSH on 22. Confirm what is listening before you open anything:
ss -tlnpThe only externally reachable listener is sshd on port 22. The rpcbind listener on port 111 is disabled. Re-enable it with sudo systemctl enable --now rpcbind.socket if you need NFSv3.
The image does not install a host firewall daemon (firewalld) by default, because the openEuler generic-cloud image does not ship one. Port control is handled at the Azure NSG. If your policy also requires a host firewall, install and enable firewalld with sudo dnf install -y firewalld && sudo systemctl enable --now firewalld. Add the SSH service first (sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload) so you do not lock yourself out.
The Azure serial console
The image enables the kernel serial console (console=ttyS0). If you lose SSH access, open the Serial console blade in the Azure Portal for out-of-band recovery.
Support
SecureAnyCloud provides 24/7 support for this image. For help with deployment or configuration, contact support through the Azure Marketplace listing.
For openEuler documentation and community resources, see the openEuler community website and documentation.
Deploy on Azure
Launch openEuler 24.03 LTS on Azure with 24/7 support from SecureAnyCloud.
View this image
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com