# fk-agent **Repository Path**: oopjava/fk-agent ## Basic Information - **Project Name**: fk-agent - **Description**: Portainer Agent v2.9.x, 适配非容器运行及宿主节点部署 - **Primary Language**: Go - **License**: Zlib - **Default Branch**: sam-custom - **Homepage**: https://github.com/portainer/agent - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-06-11 - **Last Updated**: 2025-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # agent-custom 基于Portainer-EdgeAgent模式做多主机的容器、物理机部署/运维管理。链路层基于chisel(websocket隧道)反向连接,可用于Nat主机、SSH受限环境的远程宿主机/容器的批量管理。 ## 一、快速体验 - 1.Portainer安装: [汉化/定制版] `docker run -it --rm --net=host -v /var/run/docker.sock:/var/run/docker.sock -v /opt/pt-data:/data registry.cn-shenzhen.aliyuncs.com/infrastlabs/portainer-cn` - 2.Agent初始 ```bash # install (预装 agent自注册模式,解压包执行) export EDGE_ID=id-10.0.2.15-$(date +%y%m%d.%H%M%S)-$(hostname) export EDGE_ADDR=https://127.0.0.1:9443 bash service.sh #install as a systemd service # install (脚本注册模式,废弃) export SERVER_URL="http://172.17.0.60:9000" export SERVER_USER="admin" export SERVER_PASS="xxx" curl -s https://gitee.com/g-devops/lang-replacement/raw/dev/static/binary_ins.sh |bash -s #uninstall ``` ## 二、明细说明 - (Feat):适配宿主机部署 - (Alter):去除k8s的支持(用不到,包瘦身:34M> 15M) - (Fix): 宿主机部署模式下,修正宿主机文件浏览、容器Volume文件浏览 - (Feat):新加两个环境变量:EnvKeyDockerBinaryPath, EnvKeyDockerVolumePath - (Feat):宿主机>> 安装脚本binary_ins.sh - (Feat):宿主机>> 远程上传文件、远程执行shell脚本的实现 - (Feat):远程上传>> 大文件接收的支持(已测内网: 1.4G文件 约30s接收完成) - - (Alter):支持无Docker环境的运行(用于物理机节点部署管理) - (Alter):优化Poll链路性能问题,PT端只首次查DB,TODO: agent端做Lock 避免多次调用tunCreate - (Feat):chisel-uds 注册到PT端为UnixSocket,PT适配:相关proxy改取UnixSocket端口 ![](./_deploy/01-容器化.png) ## 三、PSU部署管理 PT客户端:[psu下载](https://gitee.com/g-devops/fk-portainer-stack-utils/releases) windows+linux ```bash # step1: 下载psu(见gitee仓库发行版) # step2: `.psu.yaml` (配置于用户目录下) url: http://localhost:9000 user: admin password: xxx stack: deploy: stack-rpath: /opt/stack-apps #指定部署目录 # step3: stack部署(docker-compose编排容器) psu stack deploy stack13-nux -d ./_ex/stack-minio-sample --endpoint=172.16.0.x # step4: 上传/执行(psu host upload/exec) # $ ./psu host exec --endpoint=172.17.0.194 -c ./t1.sh --color=false time="2022-02-13T14:05:16+08:00" level=info msg="Exec executing" endpoint=172.17.0.194 shell="./t1.sh" time="2022-02-13T14:05:18+08:00" level=info msg="Exec executed" endpoint=172.17.0.194 execRet.Code=0 time="2022-02-13T14:05:18+08:00" level=info msg=" /opt/svr/portainer-agent/agent-172.17.0.194_8130 total 27M -rwxr-xr-x 1 1000 1000 15M Nov 29 17:08 agent" # $ go run . host up --endpoint=172.17.0.194 -d version/ --rname=123.tar INFO[0000] Uploading endpoint=172.17.0.194 rname=123.tar rpath=/tmp .psuignore not exist, skip INFO[0001] Uploaded endpoint=172.17.0.194 execRet.Code=0 INFO[0001] tar-packed remote file: /tmp/123.tar ```