The Headache of Scaling Server Numbers
If you are only managing 2-3 VPS, SSHing into each machine to run sudo apt update is still quite “chill.” But when that number hits 20, 50, or 100, things start to spiral out of control. Checking which machine hasn’t patched its kernel, which one is running out of disk space, or which one has a hung service will consume all of your working hours.
I once learned a bitter lesson on a staging system running Ubuntu 22.04. Simply because I forgot to update a security patch on a single node, the system was exploited via an old vulnerability. To completely resolve this state of “forgetfulness,” Canonical Landscape is the optimal solution. This is an official tool from the developers of Ubuntu, specifically designed for large-scale centralized management.
Choosing the Right Tool: What Makes Landscape Different?
Sysadmins often hesitate between various methods. Here is my practical perspective after trying different approaches:
- SSH + Manual Scripts: This method is free but extremely high-risk. Just one typo when running bulk commands, and you could wipe out the data of your entire server fleet in an instant.
- Ansible / Terraform: These two tools are excellent for provisioning. However, they lack an intuitive Dashboard for monitoring system health or managing software packages in real-time for those who prefer to avoid the command line.
- Canonical Landscape: Provides a professional Web interface (GUI). You can command 100 servers to upgrade with just a few clicks, monitor resource graphs, and receive immediate alerts when issues occur.
Pros and Cons of the Self-hosted Version
Pros
- Absolute Compatibility: As an official product, it provides excellent support for Ubuntu LTS versions.
- Hierarchical Management: You can easily group servers into clusters (Web, Database, Mail) to apply specific policies.
- Smart Automation: Schedule automatic security patch installations at 2 AM – the time with the lowest traffic.
- Detailed Inventory: Track every parameter from CPU models to the versions of every package installed on the client machines.
Cons
- Hardware Requirements: Landscape runs many bundled services, so it needs at least 4GB of RAM to operate stably.
- Free Policy: The Self-hosted version allows managing up to 10 machines for free. If you want to manage more, you need to register for Ubuntu Pro (free for individuals up to 5 machines or paid for enterprises).
Why Self-host Instead of Using the Cloud?
Using Canonical’s Cloud version is very convenient, but log data and configurations will reside on their servers. For businesses requiring absolute security, self-hosting Landscape Server within an internal network is the safest choice. This method allows you to manage servers located within internal IP ranges (LAN) that do not have an external Internet connection.
Step-by-Step Implementation Guide
1. Resource Preparation
Prepare a clean Ubuntu Server (22.04 LTS recommended). Suggested configuration:
- CPU: 2 Cores or more.
- RAM: 4GB – 8GB (Landscape carries the entire PostgreSQL, RabbitMQ, and Apache stack, so it is RAM-intensive).
- Disk: 40GB SSD.
- Domain: A subdomain pointing to the server IP (e.g.,
landscape.lab.com).
2. Installing Landscape Server (Quickstart)
To save effort on manually configuring each service, we will use the landscape-server-quickstart package.
# Update repository
sudo apt update && sudo apt upgrade -y
# Add official Landscape PPA
sudo add-apt-repository ppa:landscape/19.10 -y
sudo apt update
# Install quickstart package
sudo apt install landscape-server-quickstart -y
During installation, the system will ask to configure Mail (Postfix). Choose “Internet Site” and enter your domain. This step is important for receiving urgent email notifications when something happens to the server.
3. Creating an Admin Account
After installation, you need to create a user to log into the Dashboard:
sudo lsctl make-user --admin --email="[email protected]" --password="StrongPassword123" --name="SuperAdmin"
Now open your browser and access https://your-domain.com. Since it uses a self-signed certificate, just click Advanced -> Proceed to continue to the administration page.
4. Connecting Satellite Servers (Landscape Client)
On each Ubuntu server you want to manage, install the Landscape Client so it can “report” to the center:
sudo apt update
sudo apt install landscape-client -y
Next, run the command to register the machine with the central server:
sudo landscape-config --computer-title "App-Server-01" --account-name standalone --url https://landscape.yourdomain.com/message-system --ping-url http://landscape.yourdomain.com/ping
The system will ask for permission to send data; simply press Enter to agree to the default settings.
5. Approving Servers on the Dashboard
New servers will not appear immediately for security reasons. You need to:
- Log in to the Landscape Web interface.
- Navigate to “Pending Computers” in the left menu.
- Check the server name, select it, and click “Accept”.
At this point, all parameters regarding RAM, CPU, disk capacity, and the list of missing security patches will be fully displayed.
Real-world Experience: Common Issues
A classic issue that prevents Client machines from connecting is Time Drift. Because Landscape uses strict SSL authentication, if the time on the Client machine is more than 5 minutes off from the Server, the registration command will be rejected. You should install chrony on all machines to synchronize time accurately.
Additionally, if you want to be more professional, use Let’s Encrypt to install a proper SSL certificate for the Dashboard. This helps eliminate annoying security warnings on browsers and increases security when transmitting administrative data.
Conclusion
Deploying Canonical Landscape self-hosted has helped me solve the bulk management problem within a single interface. Instead of spending all Monday morning checking each machine, I only need 5 minutes browsing the Dashboard to know if the system is stable. This is an indispensable tool if you want to upgrade your Linux system operations process.

