{"id":4239,"date":"2024-05-05T18:28:43","date_gmt":"2024-05-05T22:28:43","guid":{"rendered":"https:\/\/dft.wiki\/?p=4239"},"modified":"2026-06-08T10:36:13","modified_gmt":"2026-06-08T14:36:13","slug":"canonical-landscape","status":"publish","type":"post","link":"https:\/\/dft.wiki\/?p=4239","title":{"rendered":"Canonical Landscape"},"content":{"rendered":"<p><strong>Canonical Landscape<\/strong> is a systems management tool designed to manage Ubuntu Desktop, Server, and Core instances. It provides administrative tools for centralized package updates, machine grouping, script deployment, security audit compliance, and custom software repositories.<\/p>\n<p>Keep in mind that &#8220;running the Landscape client on non-Ubuntu machines is not recommended and not supported.&#8221; It is designed and tested to manage a fleet of Ubuntu machines only.<\/p>\n<hr \/>\n<p><strong>INSTALLATION<\/strong><\/p>\n<pre>sudo apt update &amp;&amp; sudo apt install -y ca-certificates software-properties-common\r\nexport FQDN='landscape.local'\r\nsudo hostnamectl set-hostname \"$FQDN\"\r\nsudo add-apt-repository -y ppa:landscape\/self-hosted-24.04 \r\nsudo apt update &amp;&amp; sudo DEBIAN_FRONTEND=noninteractive apt-get install -y landscape-server-quickstart<\/pre>\n<p>Navigate to the server&#8217;s address to finish setting up the administrative account.<\/p>\n<p>Also consider configuring SMTP to receive notifications when action is required or tasks are completed.<\/p>\n<hr \/>\n<p><strong>FINISHING SETUP<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4270\" src=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-23-47.png\" alt=\"\" width=\"1233\" height=\"924\" srcset=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-23-47.png 1233w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-23-47-300x225.png 300w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-23-47-1024x767.png 1024w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-23-47-768x576.png 768w\" sizes=\"auto, (max-width: 1233px) 100vw, 1233px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4271\" src=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-23-52.png\" alt=\"\" width=\"1233\" height=\"924\" srcset=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-23-52.png 1233w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-23-52-300x225.png 300w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-23-52-1024x767.png 1024w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-23-52-768x576.png 768w\" sizes=\"auto, (max-width: 1233px) 100vw, 1233px\" \/><\/p>\n<p>The setup is straightforward and self-explanatory.<\/p>\n<hr \/>\n<p><strong>JOINING HOSTS<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4272\" src=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-24-50.png\" alt=\"\" width=\"1233\" height=\"1194\" srcset=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-24-50.png 1233w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-24-50-300x291.png 300w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-24-50-1024x992.png 1024w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-24-50-768x744.png 768w\" sizes=\"auto, (max-width: 1233px) 100vw, 1233px\" \/><\/p>\n<p>Copy the command to join the managed hosts. Make sure to replace the server name before executing it.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4273\" src=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-28-02.png\" alt=\"\" width=\"1233\" height=\"889\" srcset=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-28-02.png 1233w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-28-02-300x216.png 300w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-28-02-1024x738.png 1024w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-28-02-768x554.png 768w\" sizes=\"auto, (max-width: 1233px) 100vw, 1233px\" \/><\/p>\n<p>Then click <strong>Pending Computers<\/strong> to approve join requests as they appear.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4274\" src=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-28-10.png\" alt=\"\" width=\"1233\" height=\"889\" srcset=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-28-10.png 1233w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-28-10-300x216.png 300w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-28-10-1024x738.png 1024w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-28-10-768x554.png 768w\" sizes=\"auto, (max-width: 1233px) 100vw, 1233px\" \/><\/p>\n<ul>\n<li>On each managed host, install the Landscape client:<\/li>\n<\/ul>\n<pre>sudo apt update &amp;&amp; sudo apt install landscape-client -y<\/pre>\n<p>Then run the join command copied from the dashboard (the command below is just an example):<\/p>\n<pre>sudo landscape-config --computer-title \"<strong>Ubuntu 23.10 LTS<\/strong>\" --account-name standalone --url https:\/\/10.238.113.159\/message-system --ping-url http:\/\/10.238.113.159\/ping<\/pre>\n<p>If joining fails due to an SSL certificate error (e.g. self-signed), copy <code>\/etc\/ssl\/certs\/landscape_server_ca.crt<\/code> from the Landscape server to each client at the same path with the same permissions.<\/p>\n<ul>\n<li>Back on the Landscape dashboard, refresh the page if needed, then select all pending computers and accept them.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4275\" src=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-45-50.png\" alt=\"\" width=\"1233\" height=\"1106\" srcset=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-45-50.png 1233w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-45-50-300x269.png 300w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-45-50-1024x919.png 1024w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-45-50-768x689.png 768w\" sizes=\"auto, (max-width: 1233px) 100vw, 1233px\" \/><\/p>\n<p>Click the <strong>Computers<\/strong> tab at the top of the page to manage the joined hosts.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4278\" src=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-46-19.png\" alt=\"\" width=\"1233\" height=\"784\" srcset=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-46-19.png 1233w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-46-19-300x191.png 300w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-46-19-1024x651.png 1024w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-46-19-768x488.png 768w\" sizes=\"auto, (max-width: 1233px) 100vw, 1233px\" \/><\/p>\n<p>The main tabs are: <strong>Script<\/strong>, <strong>Processes<\/strong>, <strong>Packages<\/strong>, and <strong>Users<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4279\" src=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-49-24.png\" alt=\"\" width=\"1233\" height=\"1448\" srcset=\"https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-49-24.png 1233w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-49-24-255x300.png 255w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-49-24-872x1024.png 872w, https:\/\/dft.wiki\/wp-content\/uploads\/sites\/15\/2024\/05\/Screenshot-from-2024-05-05-17-49-24-768x902.png 768w\" sizes=\"auto, (max-width: 1233px) 100vw, 1233px\" \/><\/p>\n<hr \/>\n<p><strong>REFLECTION NOTES<\/strong><\/p>\n<p>There is a free license for personal use covering up to 10 servers and 50 containers. For a fleet larger than 10 servers, I would recommend using <strong>Ansible<\/strong> instead of Landscape to manage users, packages, and script deployment, and <strong>Prometheus<\/strong> for system resource monitoring.<\/p>\n<p>This tool allows someone who is not very familiar with Linux (such as a Windows-focused IT professional) to patch and manage a small fleet of Ubuntu machines.<\/p>\n<p>For more thorough security-focused monitoring, see the post about <strong>Wazuh<\/strong> [<a href=\"https:\/\/dft.wiki\/?p=3964\">Link<\/a>].<\/p>\n<p>For compliance, auditing, and configuration management, I would recommend <strong>Rudder<\/strong> [<a href=\"https:\/\/github.com\/Normation\/rudder\">Link<\/a>].<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Canonical Landscape is a systems management tool designed to manage Ubuntu Desktop, Server, and Core [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-4239","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/dft.wiki\/index.php?rest_route=\/wp\/v2\/posts\/4239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dft.wiki\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dft.wiki\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dft.wiki\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dft.wiki\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4239"}],"version-history":[{"count":5,"href":"https:\/\/dft.wiki\/index.php?rest_route=\/wp\/v2\/posts\/4239\/revisions"}],"predecessor-version":[{"id":5622,"href":"https:\/\/dft.wiki\/index.php?rest_route=\/wp\/v2\/posts\/4239\/revisions\/5622"}],"wp:attachment":[{"href":"https:\/\/dft.wiki\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dft.wiki\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dft.wiki\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}