阿里云建站方案,做宣传册从哪个网站找素材,宁波优化推广选哪家,贵阳住房和城乡建设局网站系统部署 一、Kickstart 主要针对Redhat和CentOS操作系统的安装和初始配置#xff0c;不过网络的配置仍然需要一台一台地进行。 二、Cobbler 与Kickstart类似#xff0c;主要支持的也是Redhat和CentOS#xff0c;不过它操作起来更简单了。新版操作系统源中带。 系统更新和应… 系统部署 一、Kickstart 主要针对Redhat和CentOS操作系统的安装和初始配置不过网络的配置仍然需要一台一台地进行。 二、Cobbler 与Kickstart类似主要支持的也是Redhat和CentOS不过它操作起来更简单了。新版操作系统源中带。 系统更新和应用部署 一、Puppet 支持升级软件包、管理配置文件、系统服务、cron任务以及添加新的配置、修复错误。客户端需要安装软件。服务和客户端都需要Ruby环境支持。提供基于SSL的认证机制。 新版操作系统源中带。 二、Func 支持主控机上一次管理任意多台服务器或任意多个服务器组 SSL证书管理体系 提供常用的管理模块 支持直接发送命令和磁盘挂载 系统管理员经常陷入一系列的重复任务中如升级软件包、管理配置文件、系统服务、cron任务以及添加新的配置、修复错误等。这些任务通常是重复低 效的解决这类任务的第一反应是让他们自动化于是出现了定制脚本。由于环境复杂定制脚本和应用程序一再被重复开发并且很难适合多种平台灵活性和功 能也很难保证于是像Puppet这样的自动化配置管理工具便出现了。 在开源世界里有很多配置工具可供选择这个领域一些关键的产品有 Puppet(http://puppet.reductivelabs.com/): Ruby写成的配置管理工具使用C/S架构使用declarative language配置客户端。 Cfengine(http://www.cfengine.org): 最先发布的开源配置工具之一1993年发布同样是C/S架构通常应用于教育机构。 LCFG(http://www.lcfg.org/): C/S架构的配置管理工具使用XML定义配置。 Bcfg2 Python编写的C/S架构的配置管理工具使用规格书和客户机响应配置目标主机。 SmartFrog(http://www.smartfrog.org/): func(https://fedorahosted.org/func/) 本文档致力于描述使用Puppet管理你的主机、应用程序、后台程序和各种服务。 Puppet简介 1. Puppet的用途 Puppet是开源的基于Ruby的系统配置管理工具依赖于C/S的部署架构。主要开发者是Luke Kanies遵循GPLv2版权协议。从1997年开始Kanies参与UNIX的系统管理工作Puppet的开发源于这些经验。因为对已有的配置工 具不甚满意从2001年到2005年间Kanies开始在Reductive实验室从事工具的开发。很快Reductive实验室发布了他们的旗舰 产品——Puppet。 2. Pupput的特性 许多系统配置管理工具工作的方式非常类似如cfengine。是什么让Puppet与众不同 Puppet的语法允许你创建一个单独脚本用来在你所有的目标主机上建立一个用户。所有的目标主机会依次使用适用于本地系统的语法解释和执行这个 模块。举例如果这个配置是在Red Hat服务器上执行建立用户使用useradd命令如果这个配置是在FreeBSD主机上执行使用的是adduser命令。 Puppet另一个卓越的地方是它的灵活性。源于开源软件的天性你可以自由的获得Puppet的源码如果你遇到问题并且有能力的话你可以修改 或者加强Puppet的代码去适用于你的环境。另外社区开发者和捐献者还在不断增强Puppet的功能。一个大的开发者和用户社区也致力于提供 Puppet的文档和技术支持。 Puppet也是易于扩展的。定制软件包的支持功能和特殊的系统环境配置能够快速简单的添加进Puppet的安装程序中。 3. Puppet的工作模式 Puppet是一个C/S架构的配置管理工具在中央服务器上安装puppet-server软件包被称作Puppet master。在需要管理的目标主机上安装puppet客户端软件被称作Puppet Client。当客户端连接上Puppet master后定义在Puppet master上的配置文件会被编译然后在客户端上运行。每个客户端默认每半个小时和服务器进行一次通信确认配置信息的更新情况。如果有新的配置信息或 者配置信息已经改变配置将会被重新编译并发布到各客户端执行。也可以在服务器上主动触发一个配置信息的更新强制各客户端进行配置。如果客户端的配置信 息被改变了它可以从服务器获得原始配置进行校正。 4. Puppet的未来 最后Puppet是一个年轻的工具仍然处于开发和发展中。Puppet社区快速壮大并且许多新的想法不断融入促使开发、更新和模块每天都在 呈现。 安装配置 1. Puppet在RedHat/CentOS系 统上安装 Puppet是基于Ruby写成的所以安装前要准备好Ruby环境。在中心的Server上安装puppet-server包并运行 puppetmasterd进程在被管理机上安装puppet包并运行puppetd进程。另外在每台主机上配置好自己的hostname之后每 台机器要以hostname区分。 1). 安装ruby环境 yum install ruby ruby-rdoc 2). 安装puppet Server端安装(172.16.228.30 puppet.sina.com.cn) rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm yum install puppet-server chkconfig –level 2345 puppetmaster on 修改hosts添加下面行 Vi /etc/hosts 172.16.228.30 puppet.sina.com.cn puppet 172.16.228.29 web1.sina.com.cn web1 客户端安装(172.16.228.29 web1.sina.com.cn) rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm yum install puppet chkconfig –level 2345 puppet on 修改hosts添加下面行 Vi /etc/hosts 172.16.228.30 puppet.sina.com.cn puppet 172.16.228.29 web1.sina.com.cn web1 3). 启动puppet Server端首次运行前编辑/etc/puppet/manifests/site.pp文件内容可以用最基本的 # Create “/tmp/testfile” if it doesn’t exist. class test_class { file { “/tmp/testfile”: ensure present, mode 644, owner root, group root } } # tell puppet on which client to run the class node web1.sina.com.cn { include test_class } 启动Server端 service puppetmaster start 启动客户端 /etc/init.d/puppet once -v 这时客户机会去连server但是由于连接是在ssl上的而Server还没有sign过客户端的cert客户机被断开。 到Server端执行puppetca -list会显示等待签名的客户端的主机名执行puppetca -sign 客户端主机名 即可为其签名。 在Server端为web1.sian.com.cn授权 puppetca -list web1.sian.com.cn puppetca -sign web1.sian.com.cn 这时再到客户机上启动puppetd即可看到客户在正常地连接server并且应用Server上为客户端定制的配置策略。 启动客户端 /etc/init.d/puppet once -v 4). 测试 也可以将日志直接打印到终端上进行测试 Server端puppetmasterd -d –no-daemonize -v –trace 客户端puppetd –test –trace –debug 2. puppet配置文件 主配置文件puppet.conf 1). 配置文件命名空间 main 通用配置选项 puppetd 客户端配置选项 puppetmasterd 服务端配置选项 2). main命名空间选项 confdir 配置文件目录默认在/etc/puppet vardir 动态数据目录默认在/var/lib/puppet logdir 日志目录默认在/var/log/log rundir puppet PID目录默认在/var/run/puppet statedir state目录默认在$vardir/state statefile state文件默认在$statedir/state.yaml ssldir SSL证书目录默认在$vardir/ssl trace 发生错误时显示跟踪信息默认false filetimeout 检测配置文件状态改变的时间周期单位秒默认15秒 syslogfacility 指定syslog功能为user级默认为daemon级 3). puppetmasterd命名空间选项: user 后台进程执行的用户 group 后台进程执行的组 mainfestdir mainfests文件存储目录默认为$confdir/mainfests mainfest mainfest站点文件的名字默认为site.pp bindaddress 后台进程绑定的网卡地址接口 masterport 后台进程执行的端口默认为8140 4). puppet命名空间选项: server puppet puppet服务器名默认为puppet runinterval seconds puppet应用配置的时间间隔默认1800秒0.5小时 puppetdlockfie file puppet lock文件位置默认$statedir/puppetdlock puppetport port 后台进程执行的端口默认8139 文件服务配置文件fileserver.conf [files] path /var/lib/puppet/files allow 121.14.1.* allow 60.28.228.0/24 allow *.house.sina.com.cn deny *.sina.com.cn path定义文件存放路径通过allow/deny来控制访问权限。 3. puppet命令集 1). puppet 用于执行用户所写独立的mainfests文件 # puppet -l /tmp/manifest.log manifest.pp 2). puppetd 运行在被管理主机上的客户端程序 # puppetd –server puppet.leju.com 3). puppetmasterd 运行在管理机上的服务器程序 # puppetmasterd 4). puppetca puppet认证程序 # puppetca -l pclient.leju.com # puppetca -s pclient.leju.com 5). puppetrun 用于连接客户端强制运行本地配置文件 # puppetrun -p 10 –host host1 –host host2 -t remotefile -t webserver 6). filebucket 客户端用于发送文件到puppet file bucket的工具 # filebucket -b /tmp/filebucket /my/file 7). ralsh 转换配置信息到puppet配置代码 # ralsh user luke user { ‘luke’: home ‘/home/luke’, uid ‘100′, ensure ‘present’, comment ‘Luke Kanies,,,’, gid ‘1000′, shell ‘/bin/bash’, groups [sysadmin,audio,video,puppet] } 8). puppetdoc 打印puppet参考文档 # puppetdoc -r type /tmp/type_reference.rst # puppetdoc –outputdir /tmp/rdoc –mode rdoc /path/to/manifests # puppetdoc /etc/puppet/manifests/site.pp --------------------------------------------------------------------------------------------------------------------- 一 puppet简介 puppet是一种Linux、Unix平台的集中配置管理系统使用自有的puppet描述语言可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。 puppet采用C/S星状的结构所有的客户端和一个或几个服务器交互。每个客户端周期的默认半个小时向服务器发送请求获得其最新的配置信息保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息. 二 puppet安装测试环境介绍 虚拟机vmware 系统centos5.5 服务器端 192.168.2.113 centos113.sdj 客户端 192.168.2.114 centos114.sdj 安装puppet前的准备 在服务端和客户端都执行以下命令 添加puppet用户 # groupadd puppet # useradd -g puppet -s /bin/false -M puppet 修改Host文件# echo 192.168.2.113 centos113.sdj /etc/hosts # echo 192.168.2.114 centos114.sdj /etc/hosts 安装ruby #yum -y install ruby 安装Facter 是用来搜集当前安装系统的环境变量信息的 # wgethttp://projects.puppetlabs.com/attachments/download/1101/facter-1.5.8.tar.gz # tar xf facter-1.5.8.tar.gz cd facter-1.5.8/ # ruby install.rb cd ~ # facter 执行这个命令就可以看到facter获取到的变量名和内容 现在开始安装puppet # wgethttp://projects.puppetlabs.com/attachments/download/1114/puppet-2.6.1.tar.gz # tar xzf puppet-2.6.1.tar.gz cd puppet-2.6.1 # ruby install.rb # mkdir -p /etc/puppet cp conf/redhat/* /etc/puppet/ cd ~ 验证安装成功 # puppet master # ps -ef|grep puppet |grep -v grep puppet 3247 1 0 23:02 ? 00:00:00 /usr/bin/ruby /usr/bin/puppet master # kill 1871 --------------------------------- 接下来配置服务器端 将puppetmasterd设置为服务并自启动 # cp /etc/puppet/server.init /etc/init.d/puppetmasterd # chmod 755 /etc/init.d/puppetmasterd # chkconfig --add puppetmasterd # chkconfig --level 35 puppetmasterd on 启动服务 #service puppetmasterd start 查看是否打开8140端口 # netstat -tnl Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:8140 0.0.0.0:* LISTEN 防火墙和端口设定。puppet服务器端默认使用8140端口监听服务需要在iptables上开启该端口。 iptables -A INPUT -p tcp --dport 8140 -j ACCEPT 请在/etc/sysconfig/iptables 中加入上文的规则并重启iptables。 审批证书 客户端申请证书 在客户端centos114执行 # puppetd --test --server centos113.sdj warning: peer certificate wont be verified in this SSL session info: Caching certificate for ca warning: peer certificate wont be verified in this SSL session warning: peer certificate wont be verified in this SSL session info: Creating a new SSL certificate request for centos114.sdj info: Certificate Request fingerprint (md5): C5:5A:5E:A9:04:44:CF:A7:F3:46:14:6A:C7:C1:24:C8 warning: peer certificate wont be verified in this SSL session warning: peer certificate wont be verified in this SSL session warning: peer certificate wont be verified in this SSL session Exiting; no certificate found and waitforcert is disabled 出现上述类似信息说明成功 服务器接受申请 在服务器端centos113执行 # puppetca --list centos114.sdj 批准当前证书 # puppetca -s centos114.sdj notice: Signed certificate request for centos114.sdj notice: Removing file Puppet::SSL::CertificateRequest centos114.sdj at /var/lib/puppet/ssl/ca/requests/centos114.sdj.pem 客户端取回已经通过审批的证书 客户端执行 # puppetd --test --server centos113.sdj 重新审批旧机器的新证书。 当申请到证书以后我们对比下这两个文件他们的MD5值是一样的 服务器端[rootcentos113.sdj ~]# md5sum /var/lib/puppet/ssl/ca/signed/centos114.sdj.pem 客户端 [rootcentos114.sdj ~]# md5sum /var/lib/puppet/ssl/certs/centos114.sdj.pem 功能测试 在服务器端新建一个/etc/puppet/manifests/site.pp文件大意是在/tmp下创建caotest.txt测试文件。 [rootcentos113.sdj ~]# vi /etc/puppet/manifests/site.pp node default { file {/tmp/caotest.txt: #这是文件路径名,后面是冒号 contentIm Caotest PUPPET; } #这是文件的内容 后面是分号 } #初次创建这个文件需要重启服务 # service puppetmasterd restart 在客户端执行命令 # puppetd --test --server centos113.sdj # ls -l /tmp 查看/tmp目录下是否有caotest.txt文件如果有说明测试成功 客户端设置守护进程 # puppetd --server caotest-1.cym --verbose --waitforcert 60 # --server 告诉它master结点的ip,--waitforcert是说每60秒去server检查--verbose是可选的输出冗余信息 Puppet集中配置管理系统 http://liuyu.blog.51cto.com/183345/d-24 PUPPET SVN FUNC 实现半自动化集中控制 http://learywolf.blog.51cto.com/612420/528226 http://www.doc88.com/p-540550023314.html