Install Ubuntu Landscape Server

Landscape automates security patching, auditing, access management and compliance tasks across your Ubuntu estate. Use it in well-connected or airgapped environments: at sea, in space and everywhere in between. Landscape is available with an Ubuntu Pro subscription.

The following minimum requirements are required to install Landscape Server:
• Operating system: Ubuntu 20.04 LTS (Focal Fossa) or Ubuntu 22.04 LTS (Jammy Jellyfish)
• Hardware: A dual core 2 Ghz processor, 4 GB of RAM, and 1.5 TB GB of disk space
• Networking: An IP address and FQDN with TCP communication allowed for SSH (typically port 22), HTTP (port 80), and HTTPS (port 443)
• If you wish to use LetsEncrypt to obtain an SSL certificate, DNS administration access for the hostname you’ll use to access Landscape

Install landscape server

# Hostnamectl set-hostname landscape.example.com
# sudo apt update && sudo apt install -y ca-certificates software-properties-common
# sudo add-apt-repository ppa:landscape/self-hosted-23.03
# sudo apt-get update
# sudo DEBIAN_FRONTEND=noninteractive apt-get install -y landscape-server-quickstart

Setup SSL certificate

# sudo snap install certbot –classic
# sudo certbot –non-interactive –apache –no-redirect –agree-tos –email example@example.com –domains landscape.example.com

To configure local repositories to be able to install packages from landscape server directly follow bellow.

1-Create the gpg key

# sudo apt-get install rng-tools && sudo rngd -r /dev/urandom
gpg –gen-key

You will be prompted twice for:
Please enter the passphrase to protect your new key
Do not set any password. Choose `<OK>` to continue.
Next, at “Please confirm that you do not want to have any protection on your key” choose:
<Yes, protection is not needed>

Save the output key to file using bellow command

# gpg -a –export-secret-keys A1234B5678C9101112D12141516E17181920FGH0 > mirror-key.asc

Import gpg key to landscape

# landscape-api import-gpg-key mirror-key mirror-key.asc –json

2-Create the distribution,

Create the distribution first:
# landscape-api create-distribution ubuntu

3-create series and pockets

create series for bionic for example ubuntu 18.4.

# landscape-api create-series bionic ubuntu \
–pockets release,updates,security \
–components main,restricted,universe,multiverse \
–architectures amd64,i386 \
–gpg-key mirror-key \
–mirror-uri http://archive.ubuntu.com/ubuntu/ \
–mirror-series bionic

4-Sync pockets

# landscape-api sync-mirror-pocket release bionic ubuntu
# landscape-api sync-mirror-pocket updates bionic ubuntu
# landscape-api sync-mirror-pocket security bionic ubuntu

note: you need to wait for one sync to finish to start with the others

5-Create a repository profile

# landscape-api create-repository-profile \
–description “This profile is for self-hosted Landscape servers.” example-profile \
–json

6-Associate computers with repository profile

In this step you attach above profile with tag you can use when registering ubuntu server to be attach to the right repository

# landscape-api associate-repository-profile \
–tags ubuntu18.4-tag example-profile \
–json

7-Add pockets to the repository profile

In previous steps we did create pockets and profile , and we need to add pockets release, update, security to the profile.

# landscape-api add-pockets-to-repository-profile example-profile release,updates,security bionic ubuntu

8-register servers to this repository

Using the register command from landscape gui you need only to specify tag (ubuntu18.4-tag) to attach the server to the right repository and source.list will be updated.

Note: if you want to create multiple repositories 22.4, 20.4 you need to follow the guide from point 3 to create pockets and profile and sync the pockets.