
上周有个用户反馈他们公司准备把之前在 EPM 上配置的 Windows 首选服务器替换成 Linux 服务器,问我是否可行,我个人感觉理论上来说是可行的,但是没有测试过,于是我问了一下群里的大佬,大佬说不可以,有点小失望
我自己上官网搜了一下,发现在 2015 年的时候有人求助过是否能用 Linux 作为首选服务器,官方回复没有测试过,但是理论上来说客户端只要能通过 UNC 路径获取到程序包,不管什么系统应该都是能实现的

感觉有戏,因为仅仅是首选服务器的话,应该能行,但是复制器必须要是要 Windows 操作系统,于是用之前本地的一台 CentOS 7 搭建 Samba 测试
首选服务器是 EPM 分发程序包的时候,可以按照子网划分让客户端去找首选服务器下载程序包,而不是从核心下载,从而减少核心的网络带宽
- 环境介绍
| Machine | IP Address |
|---|---|
| 核心服务器 | 192.168.80.160 |
| 首选服务器 | 192.168.80.134 |
| 客户机 | 192.168.80.128 |
# Samba 配置
登录到 Centos 服务器,下载 Samba
yum install samba -y

添加一个新用户用于存放共享目录,我这边就不给这个用户设置密码了,直接禁止该用户登录 shell , 在用户家目录添加一个共享目录,由于我目前是用 root 用户登录创建的,所以还需要给目录添加用户 owner 权限
-
useradd -s /sbin/nologin bob -
mkdir /home/bob/SoftwarePackage -
chown -R bob:bob /home/user/SoftwarePackage

然后把该用户添加到 samba 用户并设置访问密码
pdbedit -a bobpdbedit -L// 查看是否添加成功

备份 smb 配置文件
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
编辑 smb.conf 配置文件,在尾部添加共享信息
vi /etc/samba/smb.conf
[share] //共享名称必须和服务器共享一致 | |
path = /home/bob/SoftwarePackage | |
valid users = bob | |
read only = yes |

启动 samba 服务并添加开机启动
systemctl start smb && systemctl enable smb

为了方便测试,我直接关闭防火墙和 selinux
-
systemctl stop firewalld && systemctl disable firewalld -
sed -i 's/=enforcing/=disable/' /etc/sysconfig/selinux

完成后重启服务器,一定要重启服务器,不重启服务器的情况下,不管如何重启 smb 服务,客户端访问共享目录都会提示没有权限,我当时一直以为是自己的配置有问题,最后快到下班就关机不管了,结果第二天上班开机就发现访问目录正常了,卧槽
后面为了验证自己猜想,我把服务器还原了,重新配置好 samba 服务,从客户端访问依然是提示没有权限,然后我直接重启服务器,重启后客户端访问就正常了🙄
# EPM 配置
Samba 服务配置好后,接下来就是在 EPM 控制台里配置首选服务器,这个就很简单了,在内容复制功能里面选择首选服务器,然后添加
填写 Samba 服务器的凭证信息,然后测试凭证,如果凭证不通过请检查是否无法解析 Samba 服务器计算名

凭证通过后,就是配置 IP 地址范围,让这些 IP 段在收到分发任务的时候去找首选服务器下载

填好配置和 IP 地址完后,其它的不需要配置了,直接保存即可
# 客户端配置
客户端这边也比较简单,首选如果客户端之前有配置过其它的首先服务器的话,需要先在 C:\Program Files (x86)\LANDesk\LDClient\sdmcache 目录下删除 preferredservers.dat 文件和 C:\Program Files (x86)\LANDesk\LDClient\sdmcache\LDCacheInfo 目录下的 preferredservers.dat.info 文件,然后执行一次安全扫描,让客户端重新向服务器更新配置即可,最后再确认一下 preferredservers.dat 文件是否包含首选服务器的信息

这里必须要确认客户端的 DNS 能够解析 Samba 服务器的计算机名,否则下载分发包失败
# 下载测试
先把需要测试程序包拷贝到 Samba 服务器,然后在 EPM 创建一个分发程序包任务,为了方便测试,我用 fsutil 命令创建了一个超大的 exe 文件用于任务下发,创建好后拷贝一份到 Samba 文件服务器

在 EPM 控制台上创建可执行文件包

创建任务并添加目标设备,然后执行任务,如果客户端是从 Samba 服务器下载的话就证明我们的配置都是正常的

在 Samba 服务器上用 iftop 查看数据包流量,如果你的服务器上没有该命令请自行安装

从 iftop 流量界面可以看到 Samba 服务器和客户端有大量的传输数据, 足以说明当前客户端的程序包是从 Samba 服务器上下载
好了,到这整个测试到此结束