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 服务器上下载

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