upload successful

上周有个用户反馈他们公司准备把之前在 EPM 上配置的 Windows 首选服务器替换成 Linux 服务器,问我是否可行,我个人感觉理论上来说是可行的,但是没有测试过,于是我问了一下群里的大佬,大佬说不可以,有点小失望

我自己上官网搜了一下,发现在 2015 年的时候有人求助过是否能用 Linux 作为首选服务器,官方回复没有测试过,但是理论上来说客户端只要能通过 UNC 路径获取到程序包,不管什么系统应该都是能实现的

upload successfu

感觉有戏,因为仅仅是首选服务器的话,应该能行,但是复制器必须要是要 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

upload successful

添加一个新用户用于存放共享目录,我这边就不给这个用户设置密码了,直接禁止该用户登录 shell , 在用户家目录添加一个共享目录,由于我目前是用 root 用户登录创建的,所以还需要给目录添加用户 owner 权限

  • useradd -s /sbin/nologin bob

  • mkdir /home/bob/SoftwarePackage

  • chown -R bob:bob /home/user/SoftwarePackage

upload successful

然后把该用户添加到 samba 用户并设置访问密码

  • pdbedit -a bob
  • pdbedit -L // 查看是否添加成功

upload successful

备份 smb 配置文件

  • cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

编辑 smb.conf 配置文件,在尾部添加共享信息

  • vi /etc/samba/smb.conf
l
[share]	//共享名称必须和服务器共享一致
        path = /home/bob/SoftwarePackage
        valid users = bob
        read only = yes

upload successful

启动 samba 服务并添加开机启动

  • systemctl start smb && systemctl enable smb

upload successful

为了方便测试,我直接关闭防火墙和 selinux

  • systemctl stop firewalld && systemctl disable firewalld

  • sed -i 's/=enforcing/=disable/' /etc/sysconfig/selinux

upload successful

完成后重启服务器,一定要重启服务器,不重启服务器的情况下,不管如何重启 smb 服务,客户端访问共享目录都会提示没有权限,我当时一直以为是自己的配置有问题,最后快到下班就关机不管了,结果第二天上班开机就发现访问目录正常了,卧槽

后面为了验证自己猜想,我把服务器还原了,重新配置好 samba 服务,从客户端访问依然是提示没有权限,然后我直接重启服务器,重启后客户端访问就正常了🙄

# EPM 配置

Samba 服务配置好后,接下来就是在 EPM 控制台里配置首选服务器,这个就很简单了,在内容复制功能里面选择首选服务器,然后添加

填写 Samba 服务器的凭证信息,然后测试凭证,如果凭证不通过请检查是否无法解析 Samba 服务器计算名

upload successful

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

upload successful

填好配置和 IP 地址完后,其它的不需要配置了,直接保存即可

# 客户端配置

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

upload successful

这里必须要确认客户端的 DNS 能够解析 Samba 服务器的计算机名,否则下载分发包失败

# 下载测试

先把需要测试程序包拷贝到 Samba 服务器,然后在 EPM 创建一个分发程序包任务,为了方便测试,我用 fsutil 命令创建了一个超大的 exe 文件用于任务下发,创建好后拷贝一份到 Samba 文件服务器

upload successful

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

upload successful

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

upload successful

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

upload successful

从 iftop 流量界面可以看到 Samba 服务器和客户端有大量的传输数据, 足以说明当前客户端的程序包是从 Samba 服务器上下载

好了,到这整个测试到此结束