SMS学习笔记(二)

Collections and Queries

SMS使用Collection来对各种资源进行分组管理。因为在系统管理里,你经常遇到对大量机器的统一操作(比如软件分发),你不可能一台台的操作,而会先建立一个机器的Collection,再对整个Collection进行操作。

SMS内置了很多常用的Collection,比如All Systems和All Windows XP Systems。我们可以设定很多查询(Query)条件来约束Collection所包含成员的范围,比如根据操作系统或者内存的大小等等。这样,在进行某些软件分发的时候,我们就可以首先创建一个Collection,比如操作系统为Windows XP,内存要大于512M,然后再对其分发软件。

  • SMS的各种资源其实是以关系数据表的形式保存在SQL Server里的。所以我们可以定义很复杂的,包含任意字段的查询语句,灵活性很强。但是,这样其实也暴露了底层实现的细节,不符合软件模块封装的原则。所以SMS是以WMI的方式对外提供功能的,使用MOF文件来作为对象的描述以隐藏Database Table定义,使用WQL来封装SQL的查询语句,类似其它的O/R Mapping技术。

Collection里包含的成员是动态的,而不是一次性的查询结果。如果有的资源一开始不符合条件没有被包含在Collection里,随后状态发生了改变而符合条件了,就会自动加入Collection里!

 

Collection可以在上级站点进行定义,并自动把Collection的定义(不是Collection包含的成员列表)传播到下级站点。Collection求值(evaluate)的时候是在当前站点的Site Database里进行查询的,所以不包括上级站点。一个站点不能删除由上级站点定义的Collection,只能由创建它的站点删除。次站点因为没有Site Database,所以必须由其上级站点首先查询出包含的成员,再把成员列表传递下来(而不是Collection的定义)。

 

Hardware and Software Inventory

在SMS Client上有一个组件SMS Inventory Agent,负责硬件和软件信息的收集工作,其默认是Disabled的。

在SMS Site Server的Site Setting/Client Agents/Hardware(Software)Inventory Client Agent里可以设置是否允许软硬件信息的收集,收集什么内容以及收集的频度等。SMS Site Server会把这些设置定义成策略,SMS Client定时来更新并参照执行。

如果允许信息收集,客户端的SMS Inventory Agent将变成Enabled,并按照策略的定义收集信息。收集的信息会保存到一个文件里,然后提交给CAP或者MP,后者再转给Site Server进行处理,结果最后保存在Site Database里。如果客户端在信息收集之后无法连接CAP或者MP提交,比如说不在线,则将在重新连线后再自动提交。如果数据量比较大,比如大于50K,Advanced Client还可以使用BITS来进行提交。

SMS Inventory Agent是使用WMI来获取硬件信息的,而具体都要获取哪些信息,则由Site Server上的SMS_def.mof文件规定(该文件会随着策略更新到客户端)。

SMS Inventory Agent是根据Inventory Rule来对软件进行收集的。除了可以从添加删除程序里获得信息之外,也可以对硬盘进行全面的搜索(设置各种查询条件),从而获得软件和文件更详尽的信息,甚至可以把特定文件拷贝到服务器上。

为了减少网络流量,除了首次是全面的收集数据之外,此后只收集上次之后变化的部分。如果出现某些例外情况,也可以重新要求全面收集。


Discovery

除了Inventory,即由客户端主动上报软硬件信息之外。SMS还有另一种发现网络中资源的方式,那就是Discovery。

在Site Setting/Discovery Methods里我们就可以看到以下几种不同的发现模式。

Active Directory System Discovery

Active Directory User Discovery

Heartbeat Discovery

Network Discovery

...

其中Network Discovery就可以从局域网中自动搜索,并可以设置定时和周期性的搜索。


DDR

Inventory和Discovery的结果就是,SMS Site Server上收集了很多资源(Resource)的信息,并都保存在SMS Site Database里。

在SMS里,客户端是以Discovery Data Record(DDR)的方式向服务器提交和更新资源信息的。

DDR描述了资源的属性、值、类型、长度以及各种标志等。比如GUID用于唯一标识资源,Key Properties描述固定不变的特征(比如MAC地址的),以定位到没有GUID的资源。

当收到一个DDR之后,SMS首先查找对应的资源是否存在?如果是,则对其属性进行替换。否则,创新一个新的实例。

可以在DDR里包含新的属性,SMS会自动增加新的属性。你还可以创建新的资源类型,SMS也会自动在数据库表里增加相应的Table?

 

  • DDR是一种比较灵活的资源信息提交方式,你甚至可以在Heartbeat里包含DDR以及时反映最新的资源变化。


SMS SDK里提供了很简单的方式用于提交DDR数据,比如

DDRAddString("SMS Unique Identifier",
             "GUID:12345678-1234-1234-1234-123456789012", 64,
             ADDPROP_GUID | ADDPROP_KEY);

DDRSendToSMS();

Software Distribution

首先你要启用Softeware Distribution Client Agent,这可以在Site Server上设置。


然后你需要指定一个Collection为分发的对象,哪怕只有一台计算机,也要创建一个Collection。前面说了,Collection是动态的,比如你可以指定All Windows XP Systems。

几个名词

  • Package
    要分发的软件包的定义和说明信息。
  • Programe
    要执行的程序名称和命令行。
  • Package Source Files
    要分发的软件的源文件,或者说相关的数据文件,可以没有。文件会传送到DP上供客户端直接执行或下载。
  • Advertisement
    软件分发的通告,包括要执行的Program,目标Collection,发布的时间和过期时间等。

软件分发的过程

  1. 首先创建一个Package,可以从MSI生成,也可以使用SMS Installer来生成。
  2. 指定一个Distribution Point。
  3. 创建Programes。
  4. 创建Advertisement。

Advertisement创建后会自动传播到所有子站点上,以及对应的CAP和MP上。但是Package Source Files不会,你需要手动指定要传播的DP。如果指定了一个下级的DP,Package Source Files会首先以压缩的方式传播到下级的DP所在的Site Server上,再其解压传送给DP,并保留原始的压缩包。再有新的DP被指定的话,再解压传送。为了避免直接访问上级站点DP所带来的压力,可以使用Fan-out特性,自动把所有Package Source Files逐级传播下去(而不需要单独指定DP)。

 

SMS Client的Softeware Distribution Client Agent会定时连接CAP或者MP查询有没有给自己的Advertisement,然后提示用户安装。Assignment是特殊的Advertisement,会自动安装而不允许用户选择。如果Advertisement里的Package包含了Package Source Files,则连接到DP上进行下载(使用BITS)或者直接从网络上运行(比如共享目录)。对于没有Package Source Files的,比如Programe就是本机的程序(或者在某个已经存在的共享目录里),就直接运行了。Softeware Distribution Client Agent会把结果上报给服务器,这样我们就可以在Site Server上看到Advertisement的接收和执行情况。


对于漫游的用户,可以就近选择DP进行软件分发。

 

  • 使用Advertisement来进行软件分发很灵活,比如可在晚上进行自动分发而不影响白天的工作。客户端执行的时间会比较分散,也就降低了服务器的峰值负载。通过级联的DP,也可分散负载。

 

  • 从SMS的软件分发机制我们可以看到,其实时性并不高。所以,还是那句话,因为SMS是配置管理。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值