AppNode的集群管理功能很实用,我现在就是拿他来做我的探针。但仅支持CentOS,还没有支持debian/ubuntu的计划。
于是我尝试在ubuntu系统上手动强行安装了AppNode,虽然安装后只能使用文件管理、同步、内存监控等基本功能,但已经足够了。
手动安装
环境准备
AppNode使用yum来管理软件包,所以首先就得
apt-get update
apt-get install curl
apt-get install yum yum-utils -y
之后,通过安装rpm包的方式安装AppNode的软件源:
rpm -Uvh --nodeps http://repo.appnode.com/stable/el/7/x86_64/appnode-release-1.1-1.el7.noarch.rpm
rpm -Uvh --nodeps http://dl.appnode.com/stable/centos/7/agent/x86_64/appnode-agent-release-1.2-1.el7.x86_64.rpm
rpm -Uvh --nodeps http://dl.appnode.com/stable/centos/7/agent/x86_64/appnode-extras-release-1.1-1.el7.noarch.rpm
此后便可以安装appnode-agent包了。
安装软件
但当手动安装软件包的时候,会遇到一些问题:
没有依赖项。
由于yum里只有AppNode的软件源,yum会提示缺少所有依赖项:各种.so,内核模块,甚至/bin/sh。
而yum并没有提供跳过找不到的依赖的参数,所以需要使用rpm –nodeps手动安装:
rpm -Uvh --nodeps $(repoquery --location appnode-ccenter)
但这样会跳过所有的依赖项,所以必须手动安装所有依赖:
# yum deplist appnode-agent
Finding dependencies:
package: appnode-agent.x86_64 1.10.10-1.el7
dependency: /bin/sh
Unsatisfied dependency
dependency: appnode-agent-appmarket-db >= 20170409
provider: appnode-agent-appmarket-db.x86_64 20190912-1.el7
dependency: appnode-agent-changelog-db >= 20170424
provider: appnode-agent-changelog-db.noarch 20190910-1.el7
dependency: appnode-agent-release >= 1.2
provider: appnode-agent-release.x86_64 1.2-1.el7
dependency: appnode-app-procmgr >= 1.1.0
provider: appnode-app-procmgr.x86_64 1.1.2-1.el7
dependency: appnode-cli >= 1.1.0
provider: appnode-cli.x86_64 1.1.0-2.el7
dependency: appnode-extras-release >= 1.1
provider: appnode-extras-release.noarch 1.1-1.el7
dependency: appnode-release >= 1.1
provider: appnode-release.noarch 1.1-1.el7
dependency: bzip2
Unsatisfied dependency
dependency: libc.so.6(GLIBC_2.14)(64bit)
Unsatisfied dependency
dependency: libdl.so.2()(64bit)
Unsatisfied dependency
dependency: libdl.so.2(GLIBC_2.2.5)(64bit)
Unsatisfied dependency
dependency: libmagic.so.1()(64bit)
Unsatisfied dependency
dependency: libpthread.so.0()(64bit)
Unsatisfied dependency
dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
Unsatisfied dependency
dependency: libpthread.so.0(GLIBC_2.3.2)(64bit)
Unsatisfied dependency
dependency: pv
provider: pv.x86_64 1.4.6-1.el7
dependency: rtld(GNU_HASH)
Unsatisfied dependency
dependency: socat
Unsatisfied dependency
dependency: unzip
Unsatisfied dependency
dependency: wget
Unsatisfied dependency
dependency: xz
Unsatisfied dependency
dependency: zip
Unsatisfied dependency
将所有存在的依赖项使用上面的命令依次安装,不存在的依赖项用apt安装(事实上一般不需要),即可启动appnode。
需要安装的依赖有:
appnode-agent-appmarket-db
appnode-agent-changelog-db
appnode-app-procmgr
appnode-app-rsyncd
appnode-ccenter-fake
appnode-cli
appnode-extras-release
appnode-release
appnode-agent-release
其中最下方三个release是前面安装过的repo,为了保证软件最新最好也装一下。
配置连接
依次执行以下命令:
#端口
appnode agent config agent_port 9998
#协议
appnode agent config agent_protocol http
#网络连接,而非本地
appnode agent config agent_network tcp
#API Key,这里随机生成
appnode agent config agent_sign_key $(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 30)
#启动agent
appnode agent start
#看看状态
appnode agent status
之后就可以在控制中心按正常流程添加服务器了
其他软件安装
通过此方法安装的AppNode的软件中心是不能使用的,所有插件也必须手动安装。
以安装frp服务器为例:
rpm -Uvh --nodeps $(repoquery --location appnode-app-frps)
rpm -Uvh --nodeps $(repoquery --location frp-server)
然后再到软件中心点击安装,更新缓存。
bug
通过此法安装的插件不会在AppNode的桌面显示,但可以从软件中心打开。
偷懒
上面命令不方便记忆,为了日后使用可以给它一个别名,如yumm:
echo '#!/bin/bash' >/sbin/yumm
echo 'rpm -Uvh --nodeps $(repoquery --location $1)' >> /sbin/yumm
chmod +x /sbin/yumm
这样安装frp服务器就变成了
yumm appnode-app-frps
yumm frp-server
一键脚本
将上面的手动安装步骤进行整合,就会得到下面的脚本:
#!/bin/bash
apt-get install yum -y
apt-get install yum-utils -y
rpm -Uvh --nodeps http://repo.appnode.com/stable/el/7/x86_64/appnode-release-1.1-1.el7.noarch.rpm
rpm -Uvh --nodeps http://dl.appnode.com/stable/centos/7/agent/x86_64/appnode-agent-release-1.2-1.el7.x86_64.rpm
rpm -Uvh --nodeps http://dl.appnode.com/stable/centos/7/agent/x86_64/appnode-extras-release-1.1-1.el7.noarch.rpm
yum makecache
echo '#!/bin/bash' >/sbin/yumm
echo 'rpm -Uvh --nodeps $(repoquery --location $1)' >> /sbin/yumm
chmod +x /sbin/yumm
yumm appnode-extras-release
yumm appnode-release
yumm appnode-agent-release
yum makecache
yum update
yumm appnode-agent-appmarket-db
yumm appnode-agent-changelog-db
yumm appnode-app-procmgr
yumm appnode-app-rsyncd
yumm appnode-ccenter-fake
yumm appnode-cli
yumm appnode-agent
yumm pv
appnode agent config agent_port 9998
appnode agent config agent_protocol http
appnode agent config agent_network tcp
appnode agent config agent_sign_key $(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 30)
appnode agent start
appnode agent config
执行之后如果在shell里看到了appnode agent config
的输出(即配置信息),就可以尝试用控制中心连接了。
测试结果及已知问题
已知问题
- 强制安装的插件不会在AppNode的桌面显示,但可以从软件中心打开。
- 进程管理无法使用
- Ubuntu会在控制中心显示图标,但是pve-debian不会
至少我本人需要的文件管理和对传功能可以正常使用,已经达到我的要求了OωO
测试结果
Ubuntu16.04.6
ProxmoxVE6(Debian)
版权属于:寒夜方舟
本文链接:https://www.wnark.com/archives/44.html
本站所有原创文章采用署名-非商业性使用 4.0 国际 (CC BY-NC 4.0)。 您可以自由地转载和修改,但请注明引用文章来源和不可用于商业目的。声明:本博客完全禁止任何商业类网站转载,包括但不限于CSDN,51CTO,百度文库,360DOC,AcFun,哔哩哔哩等网站。
1 条评论
支持楼主。