Open Source Alternatives to Canonical Landscape for Ubuntu System Management


10 views

When managing multiple Ubuntu servers, Landscape from Canonical provides excellent centralized management capabilities. However, its proprietary nature and licensing costs make it inaccessible for many open-source enthusiasts and budget-conscious teams. The situation becomes more complex when managing heterogeneous environments with both Red Hat and Debian-based systems.

1. Foreman

Foreman is arguably the most robust open-source alternative, offering:

  • Lifecycle management (provisioning, configuration, monitoring)
  • Support for Ubuntu via Puppet modules
  • API-driven architecture

Example provisioning command:

foreman-rake puppet:import:hosts_and_facts RAILS_ENV=production

2. Cockpit Project

Red Hat's lightweight web-based interface now supports Ubuntu:

sudo apt install cockpit
sudo systemctl enable --now cockpit.socket

For environments mixing RHEL and Ubuntu, consider:

Ansible AWX (the open-source version of Ansible Tower):


- name: Ensure packages are installed
  apt:
    name: "{{ item }}"
    state: present
  with_items:
    - nginx
    - postgresql
  when: ansible_os_family == "Debian"

- name: Same for RHEL
  yum:
    name: "{{ item }}"
    state: present
  with_items:
    - nginx
    - postgresql
  when: ansible_os_family == "RedHat"

MAAS (Metal-as-a-Service)

Canonical's own open-source provisioning system:

sudo apt install maas
sudo maas init region+rack --maas-url http://localhost:5240/MAAS

For Landscape's monitoring capabilities:

  • Prometheus + Grafana stack
  • Zabbix with Ubuntu templates
  • Nagios Core with NRPE plugins

Example Prometheus alert rule for Ubuntu:

groups:
- name: Ubuntu alerts
  rules:
  - alert: HighMemoryUsage
    expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes > 0.9
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "High memory usage on {{ $labels.instance }}"

When moving from Landscape:

  1. Export existing configurations via Landscape API
  2. Plan phased migration to avoid service disruption
  3. Test package management alternatives thoroughly

For teams needing both Ubuntu and RHEL management, the Ansible AWX + Foreman combination provides the most comprehensive solution, while Cockpit offers the simplest transition for basic needs.


When managing multiple Ubuntu machines in production environments, Canonical's Landscape provides excellent monitoring and system management capabilities through its web interface. However, its proprietary nature and licensing costs make open source alternatives particularly valuable for developers and system administrators.

Here are the most viable open source alternatives that support both Debian/Ubuntu and RHEL/CentOS systems:

  • Foreman + Katello: Ruby-based infrastructure management with Puppet integration
  • AWX (Ansible Tower Open Source): Python-based automation platform
  • Cockpit Project: Red Hat's lightweight web-based interface
  • Webmin/Virtualmin: Perl-based system configuration tool

Here's how to install Foreman on Ubuntu for Landscape-like functionality:

# Add Foreman repository
echo "deb http://deb.theforeman.org/ focal 3.0" | sudo tee /etc/apt/sources.list.d/foreman.list
echo "deb http://deb.theforeman.org/ plugins 3.0" | sudo tee /etc/apt/sources.list.d/foreman-plugins.list

# Install Foreman
sudo apt-get update && sudo apt-get install -y foreman-installer
sudo foreman-installer

For organizations managing heterogeneous environments, Ansible provides the most seamless cross-platform solution. Here's a sample playbook that works on both Ubuntu and RHEL:

---
- name: Common system setup
  hosts: all
  become: yes
  tasks:
    - name: Install common packages
      package:
        name:
          - curl
          - wget
          - vim
        state: present
      when: ansible_os_family == 'Debian' or ansible_os_family == 'RedHat'

For Landscape-like monitoring capabilities, consider these open source options:

# Prometheus Node Exporter installation (works on both platforms)
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar xvfz node_exporter-* 
cd node_exporter-*
./node_exporter &

The most challenging aspect is package management. Here's how to handle it programmatically:

# Python script to handle cross-platform package installation
import subprocess
import platform

def install_package(pkg_name):
    distro = platform.linux_distribution()[0]
    if 'Ubuntu' in distro or 'Debian' in distro:
        subprocess.run(['apt-get', 'install', '-y', pkg_name])
    elif 'Red Hat' in distro or 'CentOS' in distro:
        subprocess.run(['yum', 'install', '-y', pkg_name])

For those needing a web UI similar to Landscape, these projects offer compelling alternatives:

  • phpSysInfo - Lightweight PHP-based system information
  • Linux-Dash - Node.js implementation with minimal requirements
  • Zabbix - Comprehensive monitoring with web interface