Landscape安装配置速记 ( 10楼改库增加License )

前情提要

啥是Landscape

我也是今天才开始接触和玩,看起来就是一个类似Cockpit的运维工具。

与Cockpit不同的是,官方介绍说 除了免费额度,如果自托管的Landscape上的机器超过10台时,则需要Ubuntu Pro订阅服务 所以还能额外多管5台Pro的机器,即最多能管15台。

官方介绍

像管理一台机器那样轻松地管理数千台Ubuntu机器

Landscape是支持和管理大型且不断增长的桌面、服务器和云主机的最具成本效益的方式。其减少了您的团队在日常Linux服务器管理和桌面管理方面的工作量。

检查最低要求

以下内容摘自官方文档机翻,实际刚安装完并没有消耗这么多资源,但仍不建议在小鸡上做主控

  • 操作系统:Ubuntu 20.04 LTS (Focal Fossa) 或 Ubuntu 22.04 LTS (Jammy Jellyfish)
  • 硬件:双核 2 GHz 处理器、4 GB RAM 和 20 GB 磁盘空间
  • 网络:IP 地址和 FQDN,以及允许 SSH(通常为端口 22)、HTTP(端口 80)和 HTTPS(端口 443)的 TCP 通信
  • 如果您希望使用 LetsEncrypt 来获取 SSL 证书、用于访问 Landscape 的主机名的 DNS 管理访问权限

安装服务端(主控)

# tips: 如果使用fish终端,由于语法差异,以下操作应该切换到Bash终端

# 安装依赖
sudo apt update && sudo apt install -y ca-certificates software-properties-common

## 设置环境变量(Bash终端)
HOST_NAME="oci-xx" # The host name you’re using for the Landscape installation
DOMAIN="xxxxxxx.com" # The host name you’re using for the Landscape installation
FQDN=$HOST_NAME.$DOMAIN

# 设置主机名(跳过此步骤,我不愿意改)
# sudo hostnamectl set-hostname "$FQDN"

# 添加 Landscape PPA
sudo add-apt-repository -y ppa:landscape/self-hosted-23.03

# 如果安装过cockpit(即便已经卸载),安装过程中也会报错,处理方法是打开/var/lib/dpkg/statoverride,删除cockpit-wsinstance的行

# 安装 Landscape
## 此步骤会安装一大堆依赖,如apache2、postgres、rabbitmq和python库等
sudo apt update && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y landscape-server-quickstart

修复端口冲突

# TIPS: 因为需要安装apache2,会与nginx冲突80/443端口导致无法启动
# TIPS: 由于不想更改主机名,不得不手动修正一些错误的配置
# TIPS: 以下实操是以80->10080和443->10443为例

# 先自动替换一波
sudo sed -i 's/oci-xx:443/xx.xxxxxxx.com:10443/g' /etc/apache2/sites-available/oci-xx.conf # 文件名与HOST_NAME同名

# 再逐一检查和替换配置中的80/443端口,由于安装时是手动修改的,所以没有笔记
vim /etc/apache2/ports.conf
vim /etc/apache2/sites-available/default-ssl.conf
vim /etc/apache2/sites-available/oci-xx.conf

配置 SSL

# 已经提前使用amce.sh生成了nginx用的证书,此处直接复用
vim /etc/apache2/sites-available/oci-xx.conf

# 修改证书路径
#   SSLCertificateFile /etc/ssl/certs/landscape_server.pem
#   SSLCertificateKeyFile /etc/ssl/private/landscape_server.key
   SSLCertificateFile /root/.acme.sh/*.xxxxxxx.com_ecc/fullchain.cer
   SSLCertificateKeyFile /root/.acme.sh/*.xxxxxxx.com_ecc/*.xxxxxxx.com.key
# 往下几行,找到并修改
#   SSLCertificateChainFile /etc/ssl/certs/landscape_server_ca.crt
   SSLCertificateChainFile /root/.acme.sh/*.xxxxxxx.com_ecc/fullchain.cer

# 重启apache服务生效
systemctl restart apache2

创建管理账号

  • 访问 https://xx.xxxxxxx.com:10443/
  • 创建账号并登录
  • 登录后进入Settings,将Ping URL设置为 http://xx.xxxxxxx.com:10080/ping (我也不懂为啥,ping不能用https,只能是http)

安装客户端(被控端/Agent)

# 添加 Landscape PPA(否则安装的版本比较旧,19.x->23.x的差距)
sudo add-apt-repository -y ppa:landscape/self-hosted-23.03

# 安装客户端
sudo apt update && sudo apt install -y landscape-client

# 配置客户端
sudo landscape-config --computer-title $(hostname) --account-name standalone --url https://xxx.xxxxxxx.com:10443/message-system --ping-url http://xx.xxxxxxx.com:10080/ping

# 如果安装过cockpit(即便已经卸载),安装过程中也会报错,处理方法是打开/var/lib/dpkg/statoverride,删除cockpit-wsinstance的行

## Start Landscape client on boot? [Y/n]:选Y开机自启动,其他要Y的地方Y,其他回车或按自身需要配置

# 手动更改配置
vim /etc/landscape/client.conf

参考资料

https://ubuntu.com/landscape/docs/quickstart-deployment

使用 script 功能批量执行脚本

脚本可以保存,定期重复执行,例如将acme.sh生成的ssl证书批量发送到远程服务器

以下是demo,上传的文件保存路径是$LANDSCAPE_ATTACHMENTS

截图看看其他功能











4 个赞

Pro有管理机器上限吗?

2 个赞

插眼

1 个赞

Landscape号称能1台管4万台

我刚好11台主机,1台主10台从机,恰恰好好的用满了license,所以没办法试白嫖的Pro许可证能不能扩容

1 个赞

运维岗狂喜

1 个赞

突然发现佬是五十台,莫非是ubuntu membership

1 个赞
以下信息是过程,可以忽略不看,直接去楼下看结论

Ubuntu Pro Free这台是我的主控机

另外10台服务器中,有个七八台我是已经attach到pro了,在ubuntu里使用没问题,在landscape中没有识别到他们的pro,设置上我再研究研究

我使用apt直接安装的客户端(Version: 19.12-0ubuntu13),而没有选择用PPA提供的23.03,我换过去试试看再说

Question #708326 “Landscape not picking up Ubuntu Pro Entitlemen...” : Questions : Landscape Client

从现有的情况看,我的理解是,成功开启pro的机器似乎不会去占用10个免费的额度,那么所有pro的都应该是可以放进来管理

有进一步情报我再来补充

2 个赞

问题验证过了,apt默认安装的版本19.x,解决方案

# 添加 Landscape PPA(否则安装的版本比较旧,19.x->23.x的差距)
sudo add-apt-repository -y ppa:landscape/self-hosted-23.03

# 安装客户端
sudo apt update && sudo apt install -y landscape-client

但是C不动,虽然我给9台机器都安装了Pro(2个邮箱x5个免费),但是Landscape聪明的将Ubuntu Pro Free限定在5个,也就是最大能管15个机器(10个机器+5个Pro订阅)=、=


1 个赞

进来学习一下

破解方面,小小的尝试一下,尚未长期测试

第一步 获取数据库的连接密码

vim /etc/landscape/service.conf
查到的信息中,用base64解密得到连接密码

[stores]
user = landscape
password = b64:这是base64后的密码
host = localhost
main = landscape-standalone-main
account-1 = landscape-standalone-account-1
resource-1 = landscape-standalone-resource-1
package = landscape-standalone-package
session = landscape-standalone-session
session-autocommit = landscape-standalone-session?isolation=autocommit
knowledge = landscape-standalone-knowledge

第二步 创建一个可以访问数据库的环境

方法很多,用psql命令行操作也行,各显神通,我使用的是ssh端口转发,将远程5432映射到本机16666

修改数据库中的许可证

找到landscape-standalone-main库,license表


image
image

刚改的,不知道会不会复位,感兴趣的兄弟们可以玩一下

直接改库,真是良心。

1 个赞

兄弟们谁有小鸡多,连到我这里让我多测试测试?安装客户端时只要不给我执行script权限,就只能收集信息(能收集到的信息就是1楼最后的贴图),不威胁安全,不具备控制权