puppet最经典中文手册资料2010

puppet最经典中文手册资料2010
puppet最经典中文手册资料2010

puppet入门huangmingyou@https://www.360docs.net/doc/cd3572188.html, October11,2010

目录

1puppet简介3

1.1puppet是什么 (3)

1.2Hello world (4)

2puppet安装5

2.1debian系发行版安装puppet (5)

2.2redhat系发行版安装puppet (5)

2.3源代码安装puppet (6)

2.4配置c/s模式的puppet试验环境 (6)

3puppet语法8

3.1资源 (8)

3.2类和函数 (10)

3.3节点 (11)

3.4变量和数组 (12)

3.5模块 (13)

4几个常用的资源14

4.1file资源 (14)

4.2package资源 (15)

4.3service资源 (15)

4.4exec资源 (16)

5puppet高级内容17 6FAQ18

第0章2

前言

随着数据中心服务器的增加,传统的系统维护方法有点捉襟见肘,于是出现了配置管理软件,利用配置管理,可以把整个数据中心的服务器的所有配置内容管理起来,方便大规模的管理以及快速的部署。配置管理软件有很多,最出名的是cfengine,但是cfengine的语法比较晦涩,于是出现了puppet。puppet 的语法简单,对管理内容的抽象很好,很容易理解代码,因此最近正迅速的流行开来。puppet是免费开源软件。可以自由使用,现在google正使用puppet管理超过6000台的mac桌面电脑。这还是07年的数据。另外很多世界知名的it企业也在使用puppet,开源社区的fedora也使用puppet。国内的大公司也在准备从cfengine转移到puppet上面。

撰写本文的目的是让初学者对puppet有一个简单的认识能快速的入门,因为是利用空余时间完成,时间和精力有限,因此只讲解了最基本的内容,高级的内容都没讲解,如果你需要深入学习可以参考国内的中文wiki以及官方的文档。

本文欢迎转载,但是请保留作者信息。

第1章puppet简介

滚滚长江东逝水,浪花淘尽英雄。是非成败转头空。

青山依旧在,几度夕阳红。

白发渔樵江渚上,惯看秋月春风。一壶浊酒喜相逢。

古今多少事,都付笑谈中。1

1.1puppet是什么

puppet2是一个为实现数据库中心自动化管理而设计的配置管理软件。基于c/s 架构。puppet的服务器端保存着所有的对客户端服务器的配置代码,在puppet里面叫做manifest.客户端下载manifest之后,可以根据manifest对服务器进行配置,例如软件包管理,用户管理和文件管理等等。

这样就把日常的系统管理任务代码化了,代码化的好处是可以分享,保存,避免重复劳动,也可以快速恢复以及快速的大规模部署服务器。同时,manifest 可以的根据客户端服务器的配置情况(硬件和软件)来动态生成。

Figure1.1:puppet structure

1

puppet被认为是下一代的cfengine,cfengine是一个老牌的配置管理软件

2

最开始是由luke开发的开源软件,现在开始公司化运作,但是软件依然是开源和免费的

第1章puppet简介4

在Unix/Linux系统管理的内容上面,通常就是管理软件包,用户,文件内容以及crontab等。在puppet的世界里面,这些内容都被看作是”资源“,每种资源都有对应的属性,例如软件包有安装和不安装的属性,文件有权限属性。puppet 的代码主要就是由这些资源和资源的属性构成。

为了快速的开始入门,建议你手上有一个可以随时使用的debian或者ubuntu 系统,方便快速安装puppet软件。装一个虚拟机是一个不错的选择。

1.2Hello world

puppet有两种执行模式,一是直接运行puppet file.manifest二是puppetd--server https://www.360docs.net/doc/cd3572188.html,;前面一种是直接读取file.mainfest文件进行配置,后一种是从服务端下载manifest进行配置。为了先对puppet的资源概念有一个简单的认识,下面将给出一个直接执行manifest的例子,看看manifest怎么去写。首先通过执行apt-get puppet在系统上面安装好puppet客户端软件。然后编写一个manifest文件/tmp/1.pp,内容如下:

f i l e{

"/tmp/t e s t":

content=>"hello\n",

mode=>0644;

}

然后执行puppet/tmp/1.pp;执行完成以后,将会在/tmp目录下面生成一个文件test,文件内容是"hello";第一行的file表明是什么类型的资源,第二行的"/tmp/test"叫做这个资源的title;用来代表这个资源,后面两行设置这个资源的属性。

再来看一个例子:

package{

["gcc","make"]:

ensure=>i n s t a l l e d;

}

这是配置一个包资源,包是gcc和make,第三行是指定这两个包的属性,在这里是installed,表示要安装这两个软件包。再次提醒:不同的资源有不同的属性,但是又有一些属性是所有资源都共有的,例如tag,这种属性叫做元属性。

第2章puppet安装

兵马未动,粮草先行

本章介绍puppet在各个linux发行版的安装,puppet的安装可以从源代码安装,也可以从二进制发行包安装,还可以从ruby的gem安装。下面分别介绍各种linux系统上最便捷的安装方法。顺便说一句,ruby1是puppet的开发语言。

2.1debian系发行版安装puppet

debian或者ubuntu的软件仓库已经包含了puppet软件,(注:软件包的名字可能会因为系统升级而变化,请先用apt-cache搜索一下),在安装软件之前先设置好主机名,因为puppet要使用ssl证书,证书包含主机名,修改主机名2首先编辑/etc/hostname,然后执行hostname-F/etc/hostname;主机名修改后重新登录系统。用下面的命令安装puppet。

apt?get i n s t a l l puppet puppetmaster

这样就安装好了客户端和服务器端的软件。

2.2redhat系发行版安装puppet

centos的官方软件库里面不包含puppet包,但是在epel项目里面有包含puppet包.epel是一个对rhel软件仓库的扩展,把一些有用的,但是rhel库没包含的软件收集在一起做成的一个软件仓库.因此首先在centos上面安装epel,以32位的centos5举例,其他版本以此类推rpm?Uvh https://www.360docs.net/doc/cd3572188.html,/pub/epel/5/i386/epel ?release?5?3.noarch.rpm

安装好epel库以后,就可以用下面的命令安装puppet了

yum i n s t a l l puppet

因为rhel没有yum包管理系统,因此需要先安装yum软件,再按照上面的方法安装puppet,不在赘述.

1

puppet的作者说当初选择了很多种开发语言,最后选择ruby是因为可以快速的开发并且满足他的需求

2

其他linux系统修改的方法可能会不一样

2.3源代码安装puppet

首先从https://www.360docs.net/doc/cd3572188.html,/projects/puppet/wiki/Downloading_Puppet下载最新的puppet稳定(stable)版本和facter稳定版。同时安装下面的依赖包

base64

cgi

digest/md5

etc

f i l e u t i l s

ipaddr

openssl

strscan

syslog

u r i

webrick

webrick/https

xmlrpc

然后先安装facter

t a r zxf facter?1.5.7.t a r.gz

cd facter?1.5.7

ruby i n s t a l l.rb

再安装puppet

t a r zxf puppet?0.25.4.t a r.gz

cd puppet?0.25.4

ruby i n s t a l l.rb

2.4配置c/s模式的puppet试验环境

工欲善其事,必先利其器!本节讲解如何配置c/s结构的puppet测试环境,生产环境也这样配置。首先准备两台虚拟主机,安装debian或者ubuntu系统。两台主机的主机名分别设置成https://www.360docs.net/doc/cd3572188.html,和https://www.360docs.net/doc/cd3572188.html,,参考前面的方法设置好主机名以后再安装puppet软件。以后用https://www.360docs.net/doc/cd3572188.html,代表客户端,用https://www.360docs.net/doc/cd3572188.html,代表服务器端。

请参考下面的步骤操作,这里选用debian和规定好主机名,是尽量减少初学者的麻烦。debian版本是5.1。

首先,在客户端安装puppet软件

apt?get i n s t a l l puppet

然后在服务器端安装puppetmaster软件

apt?get i n s t a l l puppetmaster

在客户端的/etc/hosts里面添加服务器的解析,例如:

echo"192.168.0.10?https://www.360docs.net/doc/cd3572188.html,">>/etc/hosts

puppet的客户端和服务器是通过ssl链接的,在服务器有一个自签名的根证书,在安装软件的时候自动生成。注意:要在安装软件以前先设置主机名,因为生成证书的时候要把主机名写入证书,如果证书生成好了再改主机名,就连不上,这是很多初学者遇到的问题。每个客户端的证书要经过根证书签名才能和服务器连接。所以首先要在客户端执行下面的命令来请求服务器签名证书。

puppetd??t e s t??server https://www.360docs.net/doc/cd3572188.html,

执行上面的命令,客户端将生成证书,并且把证书签名请求发到服务器端。登录到服务器端,执行下面的命令查看是否有客户端的证书请求:

pupetca??l i s t

如果看到了客户端的证书请求,用下面的命令对所有证书请求签名:

pupetca?s?a

这样,客户端和服务器端就配置好了,可以在服务器端配置好测试manifest代码进行测试。puppetmaster的第一个执行的代码是在/etc/puppet/manifest/site.pp因此这个文件必须存在,而且其他的代码也要通过代码来调用.现在,建立一个最简单的site.pp文件,内容如下node default{

f i l e{"/tmp/temp1.t x t":

content=>"hello";}

}

上面的代码对默认连入的puppet客户端执行一个操作,在/tmp目录生成一个temp1.txt文件,内容是hello,first puppet manifest.回到客户端,执行下面的命令:

pupetd??t e s t??server https://www.360docs.net/doc/cd3572188.html,

这样,客户端将会从服务器下载默认的执行代码,在/tmp目录下生成叫做temp1.txt的文件。

第3章puppet语法

磨刀不误砍柴功

本章简单介绍puppet的语法,因为puppet是用ruby编写的,因此puppet的语法也和ruby类似,都是很简单的面对对象的高级语言。再次强调,puppet把需要管理的内容抽象成为资源,每种资源有不同的属性,因此puppet语言就是描述这些资源的属性以及资源之间关系的语言。

3.1资源

定义一个资源,需要指定资源的类型和资源的title。看一个例子:

f i l e{

"/etc/passwd":

name=>"/etc/passd",

owner=>root,

group=>root,

mode=>644;

}

上面的代码让/etc/passwd的权限保持644,并且属于root用户和root用户组,file是指定资源的类型是"file"类型,第二行的"/etc/passwd"是资源的title,title的作用是让puppet能唯一标识这个资源。第三行的name指定了要对那个文件操作,默认情况下,name都等于title,所以很多时候name是可以省略的。这点要注意。看下面的例子:

f i l e{

"sshdconfig":

name=>$operatingsystem?{

s o l a r i s=>"/usr/l o c a l/etc/ssh/sshd_config",

default=>"/etc/ssh/sshd_config",

},

owner=>root,

group=>root,

mode=>644,

}

资源的title是sshdconfig,但是name却可以通过判定操作系统自己选择合适的值。这样,当其他的资源要依赖sshdconfig的时候,只需要说明依赖sshdconfig就行,不需要关心文件到底在什么路径下面。例如下面的代码:

service{"sshd":

subscribe=>F i l e[sshdconfig],

}

指定了一个sshd的服务,这个服务如果发现文件资源sshdconfig有变动,就会自己reload 配置文件。是不是很方便呢?注意上面的subscribe后面的File,第一个字母要大写,定义资源关系的时候,这里的字母要大写。

通常,在puppet代码里面可能会定义很多相同的资源,可以用[]把所有资源的title写在一起,例如:

f i l e{

["/etc/passwd","/etc/hosts"]:

owner=>root,

group=>root,

mode=>644;

}

你可能已经发现了,每次定义文件的时候如果都输入mode,owner,group会很繁琐,因此你可以在puppet的site.pp的开头定义资源的默认值。定义资源的默认值需要把资源的第一个资源大写。例如下面的代码让所有的file资源的mode是644,owner是root。

F i l e{owner=>root,mode=>644;}

默认值可以被后面的设置覆盖。

在puppet里面可以定义资源之间的关系,例如前面提到的,如果sshdconfig文件如果有修改,sshd服务就重启。puppet里面还有另一个资源关系,依赖。例如资源A依赖资源B,如果资源B不存在,资源A就不被执行。定义资源依赖的属性是requre。例如:

f i l e{

"/etc/apache2/port.conf":

content=>"80",

require=>Package["apache2"];

}

package{

"apache2":

ensure=>i n s t a l l e d;

}

file资源设置port.conf的内容为80,但是在设置file资源之前,要求apache2这个软件包配置好了。

3.2类和函数

类的作用是把一组资源收集在一个盒子里面,一起使用,例如把sshd和他的配置文件做成一个ssh类,其他的地方要用到就直接包含ssh类就可以了,方便写出更简洁的代码,便于维护。类可以继承。看一个具体的例子:

c l a s s ssh{

f i l e{

"/etc/ssh/sshd_config":

source=>"puppet://$f i l e s e r v e r/ssh/sshd_config

.cfg";

}

package{

"ssh":

ensure=>i n s t a l l e d;

}

service{

"ssh":

ensure=>running;

}

}

这里,file/etc/ssh/sshd_config的内容是从puppet服务器上面下载的,file资源的内容可以从别的url得到,也可以erb模板生成,erb模板是很强大的工具,这个后面会说到。package 资源安装ssh软件,service资源保证ssh服务在运行状态。类的继承这里就不讲了,因为是入门手册,另外用的不多。

puppet的官方文档里面是没有puppet函数这一说法的,而是叫做define;这里我写做函数,是因为define实现的功能其实和函数一样,而且在ruby里面也是用define来定义一个函数。这里写做函数,便于理解。

具体来看一个例子:

define svn_repo($path){

exec{

"/usr/bin/svnadmin?create?$path/$t i t l e":

unless=>"/bin/t e s t??d?$path",

}

}

svn_repo{

puppet_repo:

path=>"/var/svn_puppet"}

svn_repo{

other_repo:

path=>"/var/svn_other"}

首先用define定义了一个svn_repo函数,并且带了一个参数1。这个参数可以在函数里面的资源使用,在这里,exec资源根据提供的参数创建svn仓库。函数定义好以后,后面的两行就用定义好的函数创建了两个svn库。相信聪明的你已经完全明白了类和函数怎么用了吧2,那就不在赘述。

3.3节点

puppet如何区分不同的客户端,并且给不同的服务端分配manifest呢?puppet使用叫做node的语法来做这个事情,node后面跟客户端的主机名3,例如下面的例子:

node'https://www.360docs.net/doc/cd3572188.html,'{

include ssh

}

node'https://www.360docs.net/doc/cd3572188.html,'{

include apache,mysql,php

}

当主机https://www.360docs.net/doc/cd3572188.html,来连服务端时,只会执行node'https://www.360docs.net/doc/cd3572188.html,'里面的代码,不会执行node https://www.360docs.net/doc/cd3572188.html,里面的代码。正如前面所说,可以定义一个default 结点。比如没有针对host3的node配置,host3就用default的配置了。在这里include的意思是include类。同样,节点也支持继承,同样,也不打算深入。

使用节点的时候,尽量把所有的配置写成类,节点里面定义好变量和包含相应的类就可以了。保证代码的简洁。例如:

1

因为可以带参数,所以我觉得翻译成函数更好

2

注意看函数的使用语法,是不是和使用资源一样,path可以看作是属性

3

主机名在puppet里面很重要

node'https://www.360docs.net/doc/cd3572188.html,'{

$networktype="t e l e"

$nagioscheckport="80,22,3306"

include ssh,apache,mysql

}

3.4变量和数组

puppet也和其他语言一样,支持变量和数组,puppet用$符号定义变量,变量的内容用双引号括起来。例如:

$test="hello,guys"

f i l e{

"/tmp/t e s t":

content=>$test;

}

puppet可以使用由facter提交的变量,facter在客户端收集系统信息整理成不同的变量提交给puppet服务器端,服务器端的代码可以使用这些变量实现高级的功能,例如不同的硬件配置生成不同的应用软件配置文件。运行facter命令可以看到很多变量的输出,这些变量可以在puppet代码里面直接使用。

puppet利用方括号来定义数组,数组的内容由逗号分割,例如下面的例子:["apache2","httpd","ssh"]

数组可以用在资源定义里面,例如前面提到的例子。也可以用在函数里面,例如:

define php::pear(){

package{"`php?${name}":ensure=>i n s t a l l e d}

}

php::pear{['ldap','mysql','ps','snmp','s q l i t e','tidy',' xmlrpc']:}

变量也有有效范围,同其他语言一样分为局部和全局变量,简单说来,就是在里面定义的变量的使用范围就限制在里面。同时,puppet还简单的支持if...eles语法,但是用的不多,不在深入。

3.5模块

简单来说,一个模块就是一个/etc/puppet/modues目录下面的一个目录和它的子目录,在puppet的主文件site.pp里面用import modulename可以插入模块。新版本的puppet可以自动插入/etc/puppet/modues目录下的模块。引入模块,可以结构化代码,便于分享和管理。例如关于apache的所有配置都写到apache模块下面。一个模块目录下面通常包括三个目录,files,manifests,templates。manifests里面必须要包括一个init.pp的文件,这是该模块的初始文件,导入一个模块的时候,会从init.pp开始执行。可以把所有的代码都写到init.pp里面,也可以分成多个pp文件,init再去包含其他文件。

files目录是该模块的文件发布目录,puppet提供一个文件分发机制,类似rsync的模块,后面详细介绍。templates目录包含erb模型文件,这个和file资源的template属性有关,后面详细介绍。

puppet安装好以后,modules目录是没有的,自己建立一个就行,然后在里面可以新增加你的模块。请养成使用模块的习惯。

第4章几个常用的资源

不入虎穴,焉得虎子

puppet提供了很多资源类型,但是常用的就那么几个。在讲解具体的内容之前,先了解一下provider这个概念,puppet管理不同的资源,是利用不同的provider来管理的。例如管理package资源,在debian上面是用的apt-get,在redhat上面是用的yum。在这里,apt,yum就是provider。在定义资源的时候,可以明确指定provider。但是通常都是由puppet自己探测。因为不同的provider功能不一样,所以在不同的操作系统上面,有些资源能实现的功能也不一样,例如在linux上面设置user资源的时候,不能设置密码(新的puppet或许已经支持),需要用其他辅助手段来完成,但是设置ldap用户的时候是可以设置密码的。

4.1file资源

file资源在puppet里面用的挺多,属性包括大家已经属性的owner,group,mode,content 等等。file还有两个重要的命令,。source和template.通常,一个文件的内容可以由content 属性来包含固定的内容,但是也可以用source命令来从其他url复制文件内容。目前puppet只支持puppet这个url,表示从puppet的fileserver去下载文件内容。例如:

source=>"puppet://${f i l e s e r v e r}/l v s/${corp}.${idc}.keepalived .conf"

其中fileserver后面的lvs表示是lvs模块的files目录这个路径。正如前面提到的一样。用source就可以把很多配置文件放到puppet服务器端统一管理。

file资源的另一个template命令是一个功能强大的命令。利用template,可以通过erb模板生成文件内容,erb模板可以使用变量。而且还可以对变量进行计算和操作。这是puppet 强大的地方,举一个例子,你配置两台squid服务器,两台服务器的内存不一样,那么在squid.conf里面有关内存的配置命令就要根据硬件配置来设置。在过去,你只能手工去判定和修改,现在puppet自己搞定。看下面的代码:

f i l e{

"/etc/squid/squid.conf":

mode=>0644,

content=>template("squid/squid.conf.erb");

}

这里的template里面的"squid/squid.conf.erb"表示的路径是squid模块下面templates目录下的squid.conf.erb这个路径。看看squid.conf.erb里面的部分内容1

cache_mem<%=Integer(vmx_memsize.t o_i*0.45)?%>M B

visible_hostname<%=fqdn%>

在这里,cache_mem设置成总内存的45%大小,visible_hostname设置成主机名。更多有趣的功能也可以实现。

4.2package资源

package资源管理系统的软件包安装,该资源的主要属性是ensure;设置该软件包应该在什么状态.installed表示要安装该软件,也可以写成present;absent表示反安装该软件,pureged表示干净的移除该软件,latest表示安装软件包的最新版本.例如:

package{

["vim","iproute","x?window?system"]:

ensure=>i n s t a l l e d;

["pppoe","pppoe?conf"]:

ensure=>absent;

}

安装vim等包,删除pppoe,pppoe-conf包。如果你的系统安装的是编译的软件包,建议你打包成操作系统的包格式,建立你自己的软件仓库。

4.3service资源

service资源表示保证/etc/init.d目录下的服务执行脚本执行什么命令,例如:

service{

"ssh":

ensure=>running;

"nfs":

ensure=>stoped;

1

vmx_memsize和fqdn是facter提交的变量,表示内存和主机名

}

puppet只保证服务会运行或者停止,但是不保证开机启动的服务的初始状态,既不会去管理/etc/rcX.d目录下的服务的链接。service可以通过start,retart,status命令来指定这些命令的路径。如果不指定restart路径,当执行重启的时候就是先stop再start服务。另外你还可以用pattern属性来设置搜索进程列表的匹配字符串,用于不支持init脚本的系统.当要停止一个服务的时候,通过查看进程运行列表来判断.

4.4exec资源

exec资源在不到万不得已的时候不要去用,简单说来exec资源就是在执行puppet的时候,调用shell执行一条shell语句,例如:

exec{

"delete?config":

path=>"/bin:/usr/bin",

command=>"rm?/etc/ssh/ssh_config";

}

exec可以用path指定命令执行的预搜索路径,create属性表明该exec将创建一个文件,当下一次puppet执行的时候,如果发现了这个文件,就不再执行这个exec资源。

exec资源是不太好掌控的资源,如果能用脚本实现,尽量写成脚本通过file资源分发到服务器上面。然后用其他的方式来调用脚本。例如crontab。说来crontab资源,罗嗦一句,虽然puppet提供了crontab资源,但是你完全可以用file资源来把crontab任务放到/etc/ cron.d目录下来实现crontab资源的管理。使用puppet的时候,尽量用最简单的语法,越是花哨的语法也越容易出错。

第5章puppet高级内容

欲穷千里目,更上一层楼

puppet在大规模的生成环境中,如果只有一台puppetmaster,会忙不过来的,因为puppet是用ruby写的,ruby是解析型语言,每个客户端来访问,都要解析一次,当客户端多了就忙不过来,所以需要扩展成一个服务器组。puppetmaster可以看作一个web服务器,实际上也是由ruby提供的web服务器模块来做的。因此可以利用web代理软件来配合puppetmaster做集群设置。这方面的资料在官方网站有详细介绍,例如puppet+nagix等等。

puppet后台运行的时候,默认是半小时执行一次,不是很方便修改。可以考虑让puppetd不运行在后台,而使用crontab来调用,执行完毕就退出,这样可以精确的控制所有的puppetd客户端的执行时间,分散执行时间也可以减轻puppetmaster服务器的压力。

puppet还支持外部资源,所谓外部资源,就是发布在客户端以外的资源,所有客户端都可以共享这些资源。

最后来看看puppet的工作细节,分为下面几个步骤:

一.客户端puppetd调用facter,facter探测出主机的一些变量,例如主机名,内存大小,ip地址等。pupppetd把这些信息通过ssl连接发送到服务器端。

二.服务器端的puppetmaster检测客户端的主机名,然后找到manifest里面对应的node 配置,然后对该部分内容进行解析,facter送过来的信息可以作为变量处理,node牵涉到的代码才解析,其他没牵涉的代码不解析。解析分为几个阶段,语法检查,如果语法错误就报错。

如果语法没错,就继续解析,解析的结果生成一个中间的“伪代码”,然后把伪代码发给客户端。

三.客户端接收到“伪代码”,并且执行,客户端把执行结果发送给服务器。

四.务器端把客户端的执行结果写入日志。

第6章FAQ

Q:puppet的证书机制

A:puppet证书问题是初学者最容易遇到的问题,这里讲一下怎么处理.puppet服务器端在安装或者首次启动的时候,会自动生产一个根证书和服务器证书,证书和主机名相关,因此如果证书生成后友改了主机名,那就会出问题.puppet客户端在首次启动的时候,也会自动生成证书;但是这个证书需要得到puppet服务器端的签名才行,因此;puppet客户端第一次连接服务器的时候,会发送一个证书请求;服务器端需要对这个证书进行签名.puppet客户端在下次连接服务器的时候就会下载签名好的证书.

Q:debian下面的证书出错,怎么解决?

A:本方法是提供给初学者的测试环境,生成环境不建议这么做.首先在puppetmaster(服务器端)删除/var/lib/puppet/ssl目录;然后启动puppetmasterd;然后在客户端也删除/var/lib/ puppet/ssl目录.把puppetmaster机器的主机名和对应的ip地址写入客户端机器的/etc/hosts.然后执行

puppetd??t e s t??server https://www.360docs.net/doc/cd3572188.html,#发送证书请求

把https://www.360docs.net/doc/cd3572188.html,替换成你自己的服务器主机名.执行这个命令,会有提示信息,不用理会.

然后登录到puppetmaster服务器机器,执行

puppetca??l i s t#列出所有证书请求

命令,看看是否有客户端的证书请求;如果没有,请检查前面的步骤是执行正确,以及网络连接是否正常.如果puppetca--list能看到请求,那么执行

puppetca?s?a#签名所有证书

命令;对所有的证书请求签名.

最后回到puppet客户端机器,执行

puppetd??t e s t??server https://www.360docs.net/doc/cd3572188.html,#得到证书

就能建立连接了,如果你的site.pp写好了.就可以测试puppet了.

Q:redhat下面的证书问题如何解决?

A:同debian;ssl目录也是在/var/lib/puppet/ssl

Q:源代码安装的puppet如何解决证书问题?

A:同debian,但是ssl目录在/etc/puppet/ssl

第6章FAQ19

后记

本着学习tex,以及整理资料,推广puppet的目的,利用空余时间编写该入门文章,内容简单,水平有限,如果发现错误和错字请提醒我更改。

使用puppet也有点时间了,但是一直没有发现有好的中文资料,因此2010年年初建立了https://www.360docs.net/doc/cd3572188.html,的免费的wiki,翻译puppet的中文文档,还是因为英语水平有限,所以水准不高,所以有兴趣的朋友可以加入翻译。现在wiki已经列入了官方的wiki 目录。目前puppet的其他语言翻译只有中文和日文。本文可以自由转发,请不要用于商业目的,对于该行为我表示强烈抗议,并且保留动手的权利。

在翻译的过程中,下列网友也加入了翻译,排名不分先后(wiki加入时间)。

huangmingyou

houqp

frostynova

aaniao999

kuuyee

edison7500

min xu

270175100

douzl

Daniel Ho

unline

wtoppp

xw2014

chifeng

dywer

Liu Nan

alphacam使用教程 (1)

alphacam使用教程 第一章档案操作命令 1.1.1功能设置绘图环境,创建一个新的图形文件。 2.输入方法 (1)下拉菜单档案开新档案 (2)工具栏标准按钮 1.1.2开起旧档 1.功能打开一个已存在的图形文件。 2.输入方法 (1)下拉菜单档案开旧档案 (2)工具栏标准按钮 1.1.3插入图档 1.功能插入一个已经存在的图形 2.输入方法 (1)下拉菜单档案插入档案 (2)工具栏标准按钮 3.命令及提示执行该命令后,屏幕上弹出“打开”对话框,如下图所示。可以从中选择正确的路径和文件名,打开一张原有的图形进行操作。 1.1.4保存档案 1.存储档案 (1)功能保存当前的图形文件 (2)输入方法 1)下拉菜单档案存储档案 2)工具栏标准按钮 2.另存新档 1.1.5插入CAD 1.功能从其他软件中输入一些图形(autocad,coreldraw,mastercam,pro-e等) 2.输入方法 (1)下拉菜单档案存储档案 (2)工具栏标准按钮 3.命令及提示执行该命令后,屏幕上弹出“输入CAD”对话框,如下图所示。 首先要确定好输入图形的格式(*),再去查找文件 1.1.6 输出CAD 1.功能从当前的档案中以所选择的格式输出 2.输入命令 (1)下拉菜单档案输出CAD 3.命令及提示执行该命令后,屏幕上弹出“输入CAD”对话框,如下图所示。 首先选择格式,再定义文件名。 1.1.7选择后处理器

1.功能选择后处理(针对多个后处理器而言) 2.输入命令 (1)下拉菜单档案选择后处理器 (2)工具栏标准按钮 3.命令及提示执行该命令后,屏幕上弹出“选择后处理器,如下图所示。 不同后处理器所产生的NC代码是不一样。路径选择:安装目录alphacam LICOMDAT MPOSTS.ALP 1.1.8列出NC程式 1.功能通过它可以看到所生成NC代码 2.输入方法 (1)下拉菜单档案列出NC程式 (2)工具栏标准按钮 3.命令及提示执行该命令后,屏幕上弹出“列出NC程式”,如下图所示。1.1.9清除记忆体 1.功能有选择的删除屏幕上不想要的全部图形 2.输入方法 (1)下拉菜单档案清除记忆体 (2)工具栏标准按钮 3.命令及提示执行该命令后,屏幕上弹出“清除记忆体”,如下图所示。 第二章几何图形 2.1线段 1.功能绘制一段或多段连接直线段。其中的每一段是独立的图形对象。 2.输入方法 (1)下拉菜单几何图形线段 (2)工具栏标准按钮 2.2弧 1.功能绘制圆弧

ALPHACAM中文使用手册

第一章简介 关于使用本手册 本手册系提供程序的使用及操作的详细说明。通常您可在程工主画面的辅助说明中寻找相关的使用说明。而本手册则是更详细,依照章节的画面说明。此手册应在使用软件之后,有所疑问,再来查询之用。 本手的习惯用法 应按何键,系统以完整符号表示,如:[Enter] , [Esc] , [Tab ], [Ctrl ] , [Shift ], [Spacebar ] , [F4 ] , [A ] , [B ] , [S]等。而二键同时按时,则以:[Ctrl ] + [S]表示。而键须依序而按,则以:[Atl ] , [F ], [O]表示。在程序操作时,而鼠标最常用到。在手册中,按鼠标系以“按”及符号Θ表示。按鼠标右键则为R-Θ。按鼠标2次,则以“按二次”说明,而以符号2Θ表示按鼠标左键二次。而按左键一次选取,则以Θ符号表示。 指令及选项的使用时,则以粗黑大字表示。主菜单及次选项是以阶层表示。例如:几何图形|弧|二点+半径。黑三角表示主菜单下,它会再开一个次选项视图。若是同一主菜单下,有多个指令要使用,全阶层表示则代繁锁,则次选项则以|拷贝|来表示。 指令选用可以用滑或键。若用键躩,先按Atl,再依序按下标线的字母。例如:Atl,F,O,表示档案|开始旧文件…指令。 另一个指令选取法,是所谓的“热键”。其法表示在选项屏幕中,以“Ctrl+键”表示,例如:档案|储存档案Ctrl+S。使用时,即先按Ctrl键。手册以Ctrl+Spacebar 表示。 ) 大部份指令有一更快速,直接的选用法:“图像”按钮。若此指令有图像钮可供选用,则会在指令到列的最后以其图像显示出来,例如: 几何图形|APS快速几何图形|线到弧熔接 若该指令还有“热键”,则会在它的指令列及图像之后,再把热键列出,例如:档案|开启档案Ctrl+O. 开/关的指令,表示“开”或“关”则是在指令的前面打上一个勾勾表示。例如:显示|显示选项| ˇ显示断点。 若指令之后,会带出一对话框,供再选取指令,则是在指令之后,以小点点表示,如下: 几何图形|编辑/列出几何图形… 对话框指令的选用同前表示尖法,只是以一大粗线符号表示而已,例如: 加工|刀具方向边|更改出/进L/R。 `

cam 翻译

VERO ALPHACAM V2014 R2 SP1 中文版,在win7 64位上安装测试,录制有安装视频。单机授权,功能全。 ALPHACAM是木材,石材,复合材料和金属部件2轴到5轴数控编程领先的CAM解决方案。Alphacam发展的重点是为客户提供生产效率,可靠性和灵活性。改善公司的任何这些属性将有助于提高盈利能力。 ALPHACAM提供以下应用: Alphacam Router Alphacam 路径一个功能齐全,易于使用的CAM制造商希望快速,高效的刀具路径及可靠,机器准备好数控代码的生成解决方案。模具及加工技术独此行业受Alphacam的专用路由器模块入住。 Alphacam Milling 著名的金属加工业为便于使用,Alphacam能轮廓口袋,雕刻和孔钻复杂的零件。功能,如2.5D多个深度切割,具有无限数量的岛屿和刀具半径补偿的反扒可以使用其直观的用户界面进行控制。 Alphacam Stone Alphacam是CAD / CAM软件的领先,最成熟的石材产业之一供应商为。Alphacam石是专门为解决加工大理石和石材时所遇到的独特挑战。 Alphacam Turning 从简单的2D插槽和孔用驱动工具复杂的3D曲面和实体的5轴联动加工,Alphacam很容易。 Alphacam Art Alphacam艺术是一个全功能的,易于使用的用户希望快速创建3D浮雕模型具有快速,高效的刀具路径的创建和可靠,机器准备好数控代码的生成解决方案。 Alphacam Wire Alphacam是线切割领先的CAM解决方案。可选配等角度草案4轴形状为形切割2轴加工的完全支持。 Alphacam For Education Alphacam软件使全球市场使用的今天,它才有意义,以提供一套教育材料,给学生一个边缘上的竞争,同时允许他们采取在非竞争环境中充分利用Alphacam的能力。

Alphacam2017教程之3d挑角门型的做法详解

Alphacam2017教程之3d挑角门型的做法详解 一、挑角门型简介 挑角门型是非常重要的一种门型,广泛应用于膜压橱柜门中,见下图,它的特点就是在门的表面形成一个尖角,没有任何圆弧,这种门型深受国内外用户喜爱。欲高效地制作这种门型,必须采用V型刀,常见的V型刀角度为90度,120度,150度,当然也可以根据需要定制非标准角度的V型刀。 二、在CDM中制作挑角门型的步骤 1)首先单击菜单栏上的CDM,点击“CDM橱柜”,打开CDM主界面,如下页图,选择中间仅有一个矩形内框的图形,在有的软件里可能是其他名称,请选择时注意,只要内容相近即可,在这里是那个“Single Panel Square”,选择它并在其上右键单击,在弹出的下拉菜单中,选择并单击“新建类型向导”,见下页图,在出现的CDM类型创建向导对话框中输入CDM门型名称“3d挑角培训1”(这个是任意起的

名字,只要是原来的门型库里没有的名字,都可以使用),设计者和注释可以不用写内容,直接点前进进入下一步;

这样就会看到创建方式的对话框,如下图,选择默认的“编辑定义加工参数”,点前进即可; 接下来选择加工类型,如下图,选择第二项“3D雕刻”,点前进;

这样就进入了“路径偏置量及下刀点”选择对话框,如下图; 因为这是第一个路径(operation),往往不需要进行任何偏移,所以在所选图形加工边,选择中,选择第一个也是默认的“中心或不改变”,下刀点选择“拐角或端点”,点击前进,进入刀具方向和加工边的选择,这里选择顺时针,内部和右边(因为挑角是在图形线的内部进行),如下图,然后点前进。

Plant3D使用教程1

第一章概览 AutoCAD Plant 3D是在AutoCAD P&ID基础上开发的,而AutoCAD P&ID 又是在AutoCAD 基础上开发的。所以有了AutoCAD Plant 3D就有了前面两个软件,而且很容易就转换成前面两个软件的风格。因此学过前面2个软件者,再学习AutoCAD Plant 3D 就很容易了。AutoCAD Plant 3D可用于工厂设计,管道布置,工艺布置等。在AutoCAD Plant 3D 中,基础数据在三维模型、P&ID、等轴测图形及正交视图之间直接进行交换,确保了信息的一致性和时效性。 一个工厂的设计是一个很庞大的工程,所以如何组织这个工程就变得非常重要。所以一打开界面,首先出现的就是项目(如下图):AutoCAD Plant 3D 把它作为一个项目处理也很好理解。 因此第一件事就是如何设置好这个项目。 第2章项目设置 在设置项目之前先了解一下,在AutoCAD Plant 3D 2011中进行工厂设计的流程。 第1 步:打开AutoCAD Plant 3D,设置项目 第2 步:创建项目图形 - “项目管理器”>“Plant 3D 图形”>“新建图形” - 输入信息>“确定” 第3 步:创建结构 - 功能区>“结构”选项卡: - “栅格”>“创建” - “设置”> 杆件信息>“选择”

- “杆件”> 放置并与栅格对齐 - 对楼梯、阶梯等对象重复上述操作 第4 步:创建设备 - 功能区>“常用”选项卡>“创建设备” - 选择元件,指定形状和管嘴信息 - 创建并放置在模型中 第5 步:布管 - 功能区>“常用”选项卡> 下拉列表: - 线号 - 规格 - 功能区>“布管” - 单击模型中的点;按ENTER 键完成 第6 步:插入阀或管件 - 工具选项板或功能区>“常用”选项卡>“规格查看器” - 选择阀>“在模型中插入” - 放置在模型中 第7 步:创建等轴测图形 - 功能区>“Iso”选项卡>“创建Iso”>“加工Iso” - 指定项目线号、Iso 类型和输出设置 - 创建Iso 第8 步:创建正交图形 - 功能区>“常用”选项卡>“创建正交视图” - 选择正交图形>“确定” - 选择视图,调整比例和视图范围>“确定” - 将视图放置在正交图形上 以上就是工厂设计的所有内容了,当然还有BOM表的输出等,以后详细述说。本章主要阐述项目的设置。 打开AutoCAD Plant 3D 2011后,点击下图所示的箭头。 出现新建项目见下图:

ALPHACAM_V2013中英文安装说明书

: installation guide Vero Software Limited https://www.360docs.net/doc/cd3572188.html, 1 of 15 Contents System Requirements (2) Overview (3) Software and Installation (3) Preparation (3) The Alphacam “Key” (3) You Are Now Ready to Begin (3) The AutoPlay Menu (3) Language Selection (5) The Installation Wizard (5) Running Alphacam (7) Standalone License Installation (8) Activating or Updating a Vero CLS License (8) To Activate or Update Your Standalone License (8) Network License Installation (11) Installing Your Network License Using CLS (11) To Setup the Server (11) To Install the License File (11) Configuring Network Licenses on the Client PC (14) Configuring the Client PC Using CLS (14) IMPORTANT NOTES (15) 译: :安装指南 维罗软件有限公司https://www.360docs.net/doc/cd3572188.html,151 内容 系统要求 (2) Overview (3) 软件和安装 (3) 准备 (3) 该Alphacam“钥匙” (3) 你现在就可以开始 (3) 自动播放Menu (3) 语言选择 (5) 安装向导 (5) 运行Alphacam (7) 单机许可证安装 (8) 激活或更新维罗CLS许可证........................................... .................................................. 8....... 要激活或更新您的单机许可证........................................... . (8) 网络许可安装 (11) 安装网络许可使用CLS............................................ .................................................. (11) 要设置服务器 (11) 安装许可证文件 (11)

Alphacam2017教程之CDM基本设置

Alphacam2017教程之CDM基本设置 一、打开软件并添加公用指令 1)双击软件图标,选择“3D5-轴刨花机专业版”,双击,见下图; 2)在第一次打开软件的这个模块“3D5-轴刨花机专业版”时,菜单栏是没有“CDM”的,CDM的直译意思为“橱柜门加工”,它需要我们进行加载,点击菜单栏的“公用指令”,找到“CDM橱柜”或“Cabinet Door Manufacture”或其他类似的名字,这个便是CDM的模块,这个模块有可能在左侧栏目中也有可能在右侧栏目中,勾选,然后点下面的“确定”即可进行加载,见下图;

3)如果模块顺利加载完成,则可以在菜单栏中出现“CDM”字样或者其他翻译过来的文字,如下图 二、配置CDM 1)首先单击菜单栏上的CDM,在出现的子菜单栏中,选择“数据库设置”(也有的版本可能是其他文字,请看准图标即可),见下图; 这样就会弹出数据库连接属性的对话框,如下图,选择数据库的目录,这个一般是选择安装盘(如D盘),后面的目录是一样的,也就是往往只改盘符即可,然后点“测试连接”,如果顺利,则会弹出“测试连接成功”消息框,点确定即可,然后点击数据库连接属性对话框的确定,退出该对话框,如下页图;

这样CDM的数据库就完成了连接。

2)成功连接数据库后,就可以打开CDM主界面了,方法就是,点击菜单栏的CDM,然后在出现的子菜单中选择第一个“CDM橱柜”(有的版本可能有其他的翻译,但往往是第一个),如下图; 这样我们进入了CDM的主界面,如下图;在这个界面里可以新建门型,设置材料等; 点击此界面的菜单“工具”,然后在出现的子菜单中,点击“材料”,即可进入材料信息对话框如下页图;

Alphacam2017安装教程(一步一图很详细)

Alphacam2017安装教程(一步一图很详细) 一、安装前注意事项 1)电脑操作系统的需求:根据笔者多次安装的经验,在win7和win10的绝大多数系统下都能安装Alphacam2017,本文将以win10中文家庭版制作安装教程,其他系统的安装教程大同小异; 2)杀毒软件全部关闭 3)所有正在运行的应用程序关闭 二、安装软件本体 Alphacam安装包下的内容 1)首先找到Alphacam2017R1文件夹下的“StartHere.hta”(见上页图),并双击运行,如果顺利,你会看到以下界面:

点击最上面的“English(United Kingdom)”(见上图),点击之后,你可以看到语言选择的列表,可以选择其中的“简体中文”,见下图: 这样界面就变为了中文,见下图:

点击“安装程序”,有的系统会有提示,是否允许程序控制,或者是否允许程序控制设备,点击“是”即可,这样很快就能看到以下界面,点箭头指向的“Chinese(Simplified)”,然后点下面的“Continue”, 这样系统会显示“正在准备安装...”的一个进度条,见下图:

进度条结束,会出现以下界面,点下一步即可 接下来,会跳到“许可证协议”界面,首先选择“我接受许可证协议中的条款(A)”,然后点“下一步”, 接下来便是位数选择:

如果想用CDM功能,请务必选择上面的32bit,然后点“下一步”,见下图: 如果一切顺利,界面将很快到达,主程序目录选择界面, 选择好目录,点下一步,然后是下图的系统数据文件夹,选择好之后,点下一步,即可,见下图:

之后是用户数据文件夹选择,同样的方法,选择好目录后,点下一步即可,见下图: 以上三个文件夹选择的结果会显示在以下界面:

相关文档
最新文档