cfengine(配置引擎)是一种 UNIX 管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易。Cfengine
适用于管理各种环境,从一台主机到上万台主机的机群均可使用。到2.2 版本为止,我们现在所知的用于一般性管理的最大安装机群约为20,000 台。
图-1 是Cfengine 的组成部分的关系图 。
图-1 Cfengine 的组成部分的关系图
基本安装
在任何一种情况下,你都需要两个库:BerkeleyDB,用于内部数据库的使用;和OpenSSL,用于加密方法。这些库都是开放资源,并且如
同cfengine一样可以免费使用。没有这些库,你将无法使用cfengine,你也不能用其他的库来替代这两个库。本文使用的RHEL
5.0已经包括这些库。
#wget
linux
/dag/redhat/el5/en/i386/dag/RPMS/cfengine-2.2.2-1.el5.rf.i386.rpm">ftp://fr.rpmfind.net/
linux
/dag/redhat/el5/en/i386/dag/RPMS/cfengine-2.2.2-1.el5.rf.i386.rpm
#rpm -ivh cfengine-2.2.2-1.el5.rf.i386.rpm
接下来的一步是建立cfengine工作目录树的基本结构:
手动建立Cfengine的工作目录
# mkdir /var/cfengine
# mkdir /var/cfengine/bin
# mkdir /var/cfengine/inputs
接下来,在工作目录bin的子目录下(例如:/var/cfengine/bin)建立cfengine可执行程序的本地副本。实际运行过程中,是这些副本被执行,因此当网络在执行任务期间断掉,也不会对系统产生风险。
步骤3 复制Cfengine二进制代码到工作目录
# cp /usr/local/sbin/cfagent /var/cfengine/bin
# cp /usr/local/sbin/cfexecd /var/cfengine/bin
# cp /usr/local/sbin/cfservd /var/cfengine/bin
# chown -R root:0 /var/cfengine
# chmod -R 755 /var/cfengine
3运行所需的进程
在最简单的安装中,可以通过在每台主机上手动运行cfagent来使用cfengine。但是,如果运行一个或多个守护进程,则会获益良多。
(1)cfexecd守护进程
尽管在理论上可以按需随时运行cfagent,但最好定期自动运行cfagent。这是使用cfexecd
的时间;cfexecd以守护进程的方式运行并按定义、预定义的计划执行cfagent。通过将时间类添加到cfagent.conf的
control块的schedule设置中对此计划进行修改。默认设置是Min00_05,这意味着cfagent将在每个小时的前5分钟运行。要每小时
运行两次,例如,可以将下面的代码放入cfagent.conf的control段中:
schedule=(Min00_05Min30_35)
cfexecd守护进程没有自己的配置文件,但它不在cfagent.conf之外使用此设置。
还可以使用系统的cron守护进程定期运行cfexecd。下列条目可以添加到系统crontab(通常
为/etc/crontab)中以便每小时执行(和报告)cfagent:
0 * * * * root /usr/local/sbin/cfexecd -F
-F选项告诉cfexecd不要进入守护进程模式,因为它正由cron运行。
为获得可靠性,请以守护进程的方式运行cfexecd,还可以从cron运行(可能是每天一次)。
然后,可以在cfagent.conf中检查crontab条目并检查cfexecd守护进程是否正在运行。如果将下面的代码放入cfagent.conf中,请执行这些检查并更正任何问题:
editfiles:
{ /etc/crontab
AppendIfNoSuchLine "0 * ** * root /var/cfengine/bin/cfexecd -F"
}
processes:
"cfexecd" restart "/var/cfengine/bin/cfexecd"
通过此技术,如果一种方法工作不正常,那么另一方法最后会修复它的问题。
(2)cfservd守护进程
cfservd守护进程在所有系统中并非是必需的。它需要运行cfengine文件
服务器
,对我们而言,它只是中心配置
服务器
。它还允许从其他系统远程执行cfagent。如果需要此功能,则需要在每个系统中运行cfservd。在任一情况下,都应始终进行检查,以确保它与cfagent.conf中的下列命令一起运行:
processes:
"cfservd" restart "/var/cfengine/bin/cfservd"
3 查看类标识系统
类是cfengine的核心。每个系统都属于一个或多个类。或者,如果换一种视角思考,许多类都是在每次cfagent运行时基于各种不同种类信
息进行创建。配置文件中的每个操作都仅限于特定的类。因此,任何给定的操作都可以只在一个主机上或运行特定操作系统的多个主机上执行,也可以在每个主机上
执行。要在任意给定的系统中确定定义哪些标准类,请运行下面的命令:
#cfagent -p -v 如图-2 。
图 2查看类标识系统
如您所见,我的系统存在相当数量的预定义类。它们可以划分为如下类别:
操作系统:linux_i686_2_6_18_8_el5xen
体系结构:linux_i686_2_6_18_8_el5xen__1_SMP
主机名:kaybee_orgkaybeeorg
IP地址:10_1_110_1_1_1ipv4_10ipv4_10_1ipv4_10_1_1ipv4_10_1_1_1
日期/时间:May Min15_20 Min19 Q2 Tuesday Yr2008
可以以此使用ps -ef|grep cf 命令和netstat -anlp|grep cfservd 查看进程运行情况的服务占用的端口情况如图 3、4
图 3使用ps -ef|grep cf 命令查看服务进程
使用netstat -anlp|grep cfservd命令查看服务占用的端口
在前面,向大家介绍了在linux服务器如何安装cfengine(配置引擎),下面笔者开始配置cfengine管理Linux服务器。
一、创建基本的配置文件
这些配置文件需要放置在配置服务器上的主配置目录中。这些文件都是公共文件并以最初形式在网络中的每台服务器上使用。
(1) cfservd.conf示例
下面是cfservd守护进程的配置文件。它允许客户机传送主配置文件集合,还允许通过cfrun
远程执行cfagent。显然,只有一个系统允许访问中心配置文件(服务器),但是,允许cfservd访问这些文件不会损害其他系统上的任何文
件(因为它们不复制这些文件)。但是,所有系统都可以从远程执行cfagent中获益,因为它允许从远程系统中按需执行cfagent。因此,可以在所有
系统中使用下列cfservd.conf,这正是我们所需要的功能:
control:
domain = ( mydomain.com )
AllowUsers = ( root )
cfrunCommand = ( "/var/cfagent/bin/cfagent" )
admit:
/usr/local/var/cfengine/inputs *.mydomain.com
/var/cfagent/bin/cfagent *.mydomain.com
Cfrun Command设置指定在接收到来自cfrun的连接时,要执行的cfagent二进制文件的位
置。admit段非常重要,因为它指定哪个主机访问哪个文件。您必须授予对中心配置目录和cfagent二进制文件的访问权。您还需要对客户机需要从此服务器传送的任何其他文件授予访问权。
(2)基本update.conf
update.conf文件必须尽可能地简单并应进行较少的更改。此文件在cfagent.conf之前由
cfagent分析和执行。如果cfagent.conf文件已受损,则在下次客户机执行cfagent时,它们会获得新版本,因为其
update.conf文件仍然有效。损坏的update.conf文件会带来麻烦,因此建议在将文件放入中心配置目录时,对任何更改都要进行彻底的测
试。另外,此文件在每台主机(包括服务器)上运行。cfagent命令很巧妙,在配置服务器上运行时在本地复制文件(而非通过网络)。control段定
义一些变量,然后在copy段使用。可以通过$(var)或${var}序列来完成变量替代。
1 control:
2 actionsequence = ( copy tidy )
3 domain = ( mydomain.com )
4 workdir = ( /var/cfengine )
5 policyhost = ( server.mydomain.com )
6 master_cfinput = ( /usr/local/var/cfengine/inputs )
7 cf_install_dir = ( /usr/local/sbin )
8
9 copy:
10 $(cf_install_dir)/cfagent dest=$(workdir)/bin/cfagent
11 mode=755
12 type=checksum
13
14 $(cf_install_dir)/cfservd dest=$(workdir)/bin/cfservd
15 mode=755
16 type=checksum
17
18 $(cf_install_dir)/cfexecd dest=$(workdir)/bin/cfexecd
19 mode=755
20 type=checksum
21
22 $(master_cfinput) dest=$(workdir)/inputs
23 r=inf
24 mode=644
25 type=binary
26 exclude=*.lst
27 exclude=*~
28 exclude=#*
29 server=$(policyhost)
30 tidy:
31 $(workdir)/outputs pattern=* age=7
注意行号是笔者添加的便于解释参数:
第5行:字符串server.mydomain.com应替换为配置你自己服务器的主机名。
第6行:包含主配置文件的主配置服务器目录。
第7行:每个服务器保存cfengine二进制文件的位置。
第11行:指定了源目录应递归复制到目标目录,递归深度无限制。
第13行:此选项最初会令人误解。它指定任何本地文件应与主副本进行字节比较,以确定
是否需要更新。
第17行:此选项指出从指定的服务器中检索文件。
第31行:位于tidy段的此命令删除outputs/目录中在最后7天尚未访问的所有文件。
每个文件的权限(模式)在每次运行时都要进行检查,即使文件已经存在也是如此。
(3)cfagent.conf的框架
这是cfengine配置的实质。对系统执行的任何更改都有希望通过此文件来完成。这里的示例cfagent.conf非常简单,只用于测试。如
果从cfengine调用脚本并且这些脚本生成任何输出,则输出结果将显示出来(交互式执行时),被记录或通过电子邮件发送(从cfexecd执行时)。
因为通常情况下每个小时执行cfagent,所以如果出现问题或有些内容被更改且需要向管理员发送通知,则任何脚本都应产生输出。
1. control:
2. actionsequence = ( files directories tidy disable processes )
3. domain = ( mydomain.com )
4. timezone = ( CST )
5. access = ( root )
6. #Wherecfexecdsendsreports
7. smtpserve r= ( mail.mydomain.com )
8. sysadm = (
root@mydomain.com
)
9. files:
10. /etc/passwd mode=644 owner=root action=fixall
11. /etc/shadow mode=600 owner=root action=fixall
12. /etc/group mode=644 owner=root action=fixall
13. directories:
14. /tmpmode=1777 owner= root group=root
15. tidy:
16. /tmp recurse=inf age=7 rmdirs=sub
17. disable:
18. /root/.rhosts
19. /etc/hosts.equiv
20. processes:
21. "cfservd" restart "/var/cfengine/bin/cfservd"
22. "cfexecd" restart "/var/cfengine/bin/cfexecd"
第2行:actionsequence命令非常重要,但容易忽略。必须在此变量中列出要处理的每个代码段。如果编写了一个新的代码段,但忘记将其添加到此列表中,则命令不会执行。
第4行:cfengine将确保系统使用此列表中的一个时区进行配置。
第10行:此代码段检查一些重要文件的所有权和权限并更正它发现的任何问题。
第14行:此代码段检查/tmp/目录中的权限并在需要时更正这些权限。如果需要,它还创
建目录。
第16行:此代码段从/tmp/目录中删除过去7天中尚未访问的所有文件。还删除/tmp/的子
目录而非此目录本身。
第17行:出于
安全
原因,禁用这些文件。如果发现这些文件,则这些文件被重命名。如果
这些文件是可执行文件,则可执行的位被取消设置。
第20行:本段验证cfservd和cfexecd守护进程是否正在运行,如果没有运行,则启动它们。
二、创建配置服务器
配置服务器包含cfengine配置文件的主副本。它还像所有客户机系统一样,定期处理此配置文件。服务器必须运行经过正确配置的
cfservd,以便客户机系统可以从系统中检索主配置文件。配置服务器需要特殊位置来保存cfengine主配置文件。在本例中,此位置是/usr
/local/var/cfengine/inputs/。此位置可以是除/var/cfengine/inputs/之外的任何目录,因为重要主机在执
行时与其他主机一样,将文件复制到此目录中。
与所有系统相似,此服务器也应作为守护进程或从cron(最好是两者)运行cfexecd。
下面生成服务器密钥,需要在服务器系统上运行cfkey来创建公钥和私钥文件。这些文件位于/var/cfengine/ppkeys/目录中并
将被命名为localhost.priv和localhost.pub。然后需要将localhost.pub复制到同一目录中的新文件中。此文件应称为
root-10.1.1.1.pub,假定您的IP地址为10.1.1.1。只需让cfrun命令连接到本身即可,但无论如何执行此操作会很有用。
根据下节描述的客户机的IP地址,服务器还需要在适当文件中保存的每个客户机的公钥。
三、准备客户机系统
客户机系统的配置相对简单。一旦安装了实际的cfengine二进制文件,则需要生成和复制适当的公钥(如本节所述)。还需要从主服务器手动复制
update.conf文件,并放在/var/cfengine/inputs/中。在正确的位置保存此文件后,则应手动运行cfagent以
下载
其
余的配置文件并完成系统配置。每个客户机都应以守护进程的方式或从cron运行cfexecd。可能要在每个客户机上运行cfservd并允许使用
cfrun远程执行cfagent。假定已经在服务器上的cfagent.conf文件中完成了配置,则这些守护进程将在第一次手动执行cfagent时
启动。
下面生成客户机密钥,需要在每个客户机系统上运行cfkey。此操作将在/var/cfengine/ppkeys/中创建
localhost.priv和localhost.pub。然后,需要将中心服务器的公钥复制到客户机。如果服务器的IP地址是10.1.1.1,则应
将其公钥复制到客户机上/var/cfengine/ppkeys/目录中的root-10.1.1.1.pub。最后,需要将客户机的公钥
(localhost.pub)复制到服务器的/var/cfengine/ppkeys/目录中。此外,此文件应按照客户机的IP地址进行命名(如果其
IP地址是10.2.2.2,则此文件应在服务器上被命名为root-10.2.2.2.pub)。这可以手动完成,也可以在初始系统配置脚本中自动完
成。
四、使用cfrun
cfrun命令允许在网络上任何数量的系统中执行cfagent。它需要在当前目录中包含名为
cfrun.hosts的配置文件(或通过-f选项指定的文件)。文件的内容应如下所示:
domain=mydomain.com
server.mydomain.com
client1.mydomain.com
client2.mydomain.com
除域设置外,此文件仅是包含每台主机(包括服务器)的一个列表。通过将下列选项添加到
文件顶部,还可以将输出记录到一系列文件中(而非显示在屏幕上):
outputdir=/tmp/cfrun_output
maxchild=10106
上述代码告诉cfrun生成10个进程,并将每台主机的输出保存在指定目录的不同文件中。
通常运行cfrun可以不带参数。如果确实要指定参数,格式如下所示:
cfrunCFRUN_OPTIONSHOSTS--CFAGENT_OPTIONS-CLASSES
CFRUN_OPTIONS是可选的。可为cfrun命令包含任何数量的选项。接着,可以指定主机
名的可选列表。如果已指定了某些主机,则只联系这些主机。如果未指定任何主机,则联系
cfrun.hosts文件中的每个主机。
第一个--之后是在每个远程系统上运行的要传送给实际cfagent命令的任何选项。第二个--
之后是类的可选列表。如果指定了某些类,那么只有与其中某个类匹配的主机将实际执行
cfagent(尽管已联系了每个主机,因为每个主机必须决定它是否匹配其中一个类)。
五、 应用实例:使用cfengine备份数据
如果您已经阅读本文之前的大部分内容,就会知道cfengine非常棒。一旦安装并运行了cfengine,它就可以为您做任何事,包括备份数据。
1、使用cfengine执行本地备份
首先,可以使用cfengine完成文件和目录的复制。cfengine可以执行完美的复制--包括
特殊文件、符号链接以及目录的复制。它还可以保留文件的宿主和权限。下面是一个基本的配置,可以将其放入cfagent.conf文件中(如果已经有了一个copy段,可以在现有的copy段后面直接添加内容):
copy:
/etc dest=/usr/local/backup/etc purge=true r=inf
这样可以让网络中的每台主机都递归地将/etc/目录精确地复制到/usr/local/backup/目录中。purge=true选项可以让复制操作删除那些源目录中没有而目标目录中存在的文件。
每次执行cfagent时都会执行这个复制过程,通常来说这过于频繁了。可以限制每天只执行一次这种操作:
copy:
Hr06.OnTheHour::
/etc dest=/usr/local/backup/etc purge=true r=inf
现在只有在每天06:00运行cfagent时才会执行复制操作。此处假设您在整点时运行cfagent,而且每小时运行一次。如果不这样做,就
应该适当调节示例中的时间设置。此例的问题是每天的备份都会覆盖前一天的备份。因此,您用来判断系统/etc/目录中可能出现的问题的时间只有不到24个
小时。不必担心,我可以增强备份系统的功能,让它保留一周中有价值的备份。
control:
day_of_week = ( ExecResult(/bin/date+%a) )
copy:
Hr06.OnTheHour::
/etc dest=/usr/local/backup/${day_of_week}/etc
purge=truer=inf
现在您可以把有价值的备份数据保留7天,这些备份位于/usr/local/backup/Mon/etc、
/usr/local/backup/Tue/etc等目录中。
2、 在备份时排除文件
如果想在备份时包括或者排除一些文件,可以在copy段中使用3个可选参数。第一个是
ignore参数。可以指定任意多个这种参数,每个参数都提供了一种模式,任何匹配的文件和目录都将被忽略。这是防止对特定目录执行递归操作的惟一方法。
第二个参数是include。可以使用这个参数来指定在复制时应该包括的所有文件列表。可以
指定任意多个include参数,但是即使只有一个include参数,也会导致不匹配的文件在默认情况下被排除在复制操作之外。
最后一个参数是exclude选项。任何匹配这种模式的文件都会被排除在复制操作之外。下
面是一个例子:
copy:
Hr06.OnTheHour::
/home dest=/usr/local/backup/home purge=true r=inf
ignore=cache #Netscapecachedirectory
ignore=Cache #Mozillacachedirectory
exclude=*.tmp
上面的例子表示tmp文件会被排除在备份文件之外。
总结:cfengine 是一种独特的系统管理工具。即使您没有决定使用它,但其概念和执行将对您的工作产生帮助。如果您决定使用它,您将发现 cfengine 无限的灵活性和惊人的用处。
本文来自ChinaUnix博客,如果查看原文请点: http://blog.chinaunix.net/u/12479/showart_1151050.html
相关推荐
ICNN实现入侵检测的思路与源码(CIC-IDS-2017)
基于ICNN实现入侵检测,可用于现实网络
CFEngine CE在Ubuntu 20.04的配置即代码落地实践
配置即代码(GitOps)是现代基础设施治理的核心范式,其本质是将运维逻辑转化为可版本控制、可自动化执行、可审计回滚的声明式策略。CFEngine 作为轻量级自治代理型配置管理工具,依托拉模式架构与本地策略执行机制,天然支持离线环境、边缘节点和高安全隔离场景,显著区别于Ansible推模式或Puppet中心化架构。其核心价值在于将安全基线、服务状态、系统参数等运维经验固化为可复用的代码资产,结合Ubuntu 20.04 LTS的内核稳定性与glibc兼容性保障,实现低开销、高可靠的状态持续合规。本文聚焦CF
Matplotlib字体警告终结者:为什么总提示DejaVu Sans?5种场景解决方案大全
本文深入解析Matplotlib中常见的DejaVu Sans字体警告问题,并提供5种典型场景的完整解决方案。从理解字体系统的三层架构和缓存机制,到解决中文显示、远程服务器部署、TeX渲染、缓存优化及生产环境配置等实际问题,帮助开发者彻底摆脱字体警告困扰,实现稳定可靠的数据可视化。
Cfengine3.5的安装及简单说明和使用
cfengine是一个自动化、集中化管理系统工具,它的宗旨是“让你的系统始终运行在你想要的模式下”。它实现的思想就是制定一些策略,让系统定时运行一个进程,去检查系统当前的状态与策略的要求是否一致,不一致的话,就按策略要求去执行一遍。而这种策略可以在本地定制,也可以在中心策略服务器配置,然后通知客户端去更新策略并执行策略。当你所管理的服务器成一定规模时,使用这个工具,将大大提高工作效率,我也是最近才
Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法
Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法 目录 Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法 一、简单介绍 二、实现原理 三、注意事项 四、效果预览 五、实现步骤 六、关键代码 一、简单介绍 Unity中的一些基础知识点。 本节介绍,Asset Bundle 在 Unity中的使用,入门第一篇,如何AssetBundle标记,如何打包成AssetBundle的操作方法,有不对的地方欢迎指正。...
基于云平台的ATS系统微服务架构方案研究
在当前智慧地铁的升级转型过程中,城市轨道交通ATS系统面临着稳定性差、运维方 式繁琐和故障应急处理效率低等问题。为此,提出一种基于云平台的ATS系统微服务架构方案; 研究了ATS系统在云平台上的微服务总体架构、ATS应用的微服务划分和设计、容器部署方式 及通信交互模式,可实现系统松耦合和易扩展,达到节约计算资源、提高系统稳定性和运营效 率的目的
最值得考虑的Linux自动化工具:CFEngine
如果数据中心使用Linux系统,系统管理员有大量的可供选择的工具。在适当配置后,Linux工具可以在数据中心运营的几乎每个方面提供有效帮助。 Linux数据中心的工具在使用上往往有一定复杂度,但是为此付出额外操作是值得的。因为这些复杂的工具能够提供一系列的具有很大灵活性的功能和服务。本文介绍最值得考虑的Linux自动化工具:CFEngine。 Linux...
BRep实战指南:从理论到文件格式的全面解析
本文全面解析BRep(边界表示法)从基础概念到文件格式的实战应用。详细介绍了BRep的数学定义、工业应用场景,以及STEP、IGES等主流文件格式的对比与使用技巧,帮助读者掌握三维建模核心技术并优化性能。
批量部署管理服务器的成熟方案Puppet,Func,cfengine汇总贴
http://dadloveu.blog.51cto.com/715500/659517 多台linux服务器的集中统一批量布署管理, 用什么工具最好呢? 由Linux系统中文网(Linux521.com)编辑收集整理,除Linux521注明原创文章外,其版权归原作者所有。如果您在学习中遇到问题欢迎在下面的评论中留言,我们会尽全力解答您的问题。 cfengine、 puppet、 func
5张图,搞懂三方支付机构的“备付金账户”体系
本文将详细解析第三方支付机构各类备付金账户的功能定位、所承载的支付业务处理流程以及日常管理。
三模冗余设计
在数字电路设计中,Voter模块(表决器) 和 三模冗余(Triple Modular Redundancy, TMR) 是高可靠性系统的核心设计技术,主要用于容错和抗辐射(如航天、医疗设备等关键领域)。容错机制:若任一模块故障(如SEU,单粒子翻转),其他两个模块仍能保证正确输出。功耗与面积:TMR会显著增加资源占用(约3倍),需权衡可靠性和成本。航天电子:抗辐射芯片(如FPGA)中用于防止单粒子翻转(SEU)。故障检测:可扩展设计以检测并隔离故障模块(如通过BIST)。
cfengine配置
Linux cfengine服务器与客户端的配置 一、cfengine 的概述 cfengine(配置引擎)是一种 UNIX 管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易。它的目标是使系统从任何状态收敛到一种理想状态。依照它的作者 Mark Burgess 所说,cfengine 总是使您的系统更接近于您所定义的配置; 它决不会使系...
选择的 Python 解释器无效,请尝试更改解释器以启用 IntelliSense、Lint 分析和调试等功能。请查看输出,详细了解解释器无效的原因。
摘要:在VS Code中配置Anaconda Python解释器时若出现"解释器无效"错误,可通过修改用户设置解决。具体步骤:1) 按Ctrl+Shift+P打开命令面板;2) 搜索并打开用户设置JSON文件;3) 添加conda路径配置项,示例格式为"python.condaPath": "D:\\Anaconda\\setup\\Scripts\\conda.exe";4) 同时启用环境激活选项"python.terminal.act
多台linux服务器的集中统一批量布署管理
<br />veyron 给出几种思路:1、机器少的话,可参考rsh/openssh、expect、rpm包管理结合,自已写个远程控程工具,很简单2、如果服务器配置、软件比较通用(如常用工具ftp、基本配置),可考虑在服务器分发包中进行定制,这样在服务器系统安排完成后相应软件也齐活。当然对于其它应用如db等,还是需要老老实实编译安装。。3、如果服务器数据级很大(>1000),那需要考虑将工具做成client/sever 多并发了处理了。。脚本效率太低。hutuwormFunc 可以实现。Func 可以让你在
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
帮助Linux管理员简化任务并实现自动化的七大工具
我们在本文中介绍了使日常任务实现自动化,从而为Linux管理员简化工作的几款工具。它们是简化自动化和报告工作的Puppet、Chef、CFEngine、配置管理和IT企业自动化软件Ansible、用于取证分析的开源配置管理工具Foreman、Katello以及自动化和监控工具Nagios。
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
多台linux服务器的集中统一批量布署管理, 用什么工具最好呢?
cfengine、 puppet、 func哪种会好些呢? 我看下网上介绍的这些资料吧 这些之后一一贴上相关的资料 cfengine基本配置 文字太多跳转下面的页面查看 http://holy2010.blog.51cto.com/1086044/418063 配置管理工具Puppet简介、安装 (转) 本文转自:http://...
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
docker 配置文件管理_Docker世界中的配置管理
docker 配置文件管理 任何管理多台服务器的人都可以确认手动执行此任务是浪费时间和风险。 配置管理(CM)已有很长时间了,我没有一个唯一的原因可以想到为什么不使用其中一种工具。 问题不在于是否采用其中之一,而是要选择哪一个。 那些已经拥抱彼此并投入大量时间和金钱的人可能会争辩说,最好的工具就是他们选择的工具。 通常情况下,选择会随着时间而变化,而今天一个选择与另一个选择的理由可能并不相同。...
Linux下自动化工具
一、自动化工具 自动化工具的优势在于可部分地替代人工的过程,能重复不断地执行,能精确判断数值和字符对象。例如,自动地产生数据,自动地打开应用程序,自动地查找控件,自动地输入数据,自动地操作控件,自动地收集测试结果等。 二、用于日常使用的自动化工具 1、Puppet Puppet是一款开源工具,旨
8415



被折叠的 条评论
为什么被折叠?



