设为首页 收藏本站
查看: 1348|回复: 0

[经验分享] puppet(二)初始配置资源

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-28 08:51:57 | 显示全部楼层 |阅读模式
1.配置一个测试节点
一个节点的目录结构可以任意定义,在site.pp配置文件中import即可
节点信息:/etc/puppet/manifests/nodes
模块信息:/etc/puppet/modules
(1)创建test模块,模块目录为test,class类名应该是test,test类中有一个file资源,file资源的目录是在/tmp目录下创建一个agent主机名的txt文件,其内容为“hello world!”
服务端:mkdir -pv /etc/puppet/modules/test/{manifests,templates,files}
mkdir: 已创建目录 “/etc/puppet/modules/test”
mkdir: 已创建目录 “/etc/puppet/modules/test/manifests”
mkdir: 已创建目录 “/etc/puppet/modules/test/templates”
mkdir: 已创建目录 “/etc/puppet/modules/test/files”
vim /etc/puppet/modules/test/manifests/init.pp
class test {
    file {"/tmp/$hostname.txt":content => "Hello World!";}
}
(2)在模块配置文件中定义了一个变量“$hostname”,需要将该变量传给ERB模块文件,此文件存放test类目录下的templates目录中,文件名与类名保持一致,主机名通过facter命令获取,以变量“$hostname”的形式传递给agent.jiachen.com.pp,配置如下
服务端:vim /etc/puppet/modules/test/templates/test.erb
hostname <%= fqdn %>
(3)通过上面创建的测试节点所需的模块信息,创建测试节点agent.jiachen.com
服务端:mkdir -pv /etc/puppet/manifests/nodes/
cd /etc/puppet/manifests/nodes/
vim agent.jiachen.com.pp
node 'agent.jiachen.com' {
    include test
}
(4)最后将测试节点载入到puppet中,也就是修改site.pp配置文件,puppet会先读取site.pp文件,因此在创建客户端节点时需要在site.pp配置文件中设置import
服务端:vim /etc/puppet/manifests/site.pp
import "nodes/agent.jiachen.com.pp"
2.测试配置文件
完成节点配置后,不建议直接运行这些配置,需要对配置文件的语法进行检查,避免客户端运行时因报错而重复修改
检查语法分为两步:第一步在puppet master服务端采用puppet parser validate命令检查配置文件,第二步是在puppet agent客户端采用--noop参数检查语法及代码
(1)puppet master服务端检查
在puppet master服务端执行puppet parser validate init.pp,如果看到finished表示成功,无语法错误
服务端:puppet parser validate /etc/puppet/modules/test/manifests/init.pp
(2)puppet agent客户端检查
客户端检查主要是通过增加--noop参数来实现,其目的只是检验配置、模拟执行,但并不实际生效
客户端:puppet agent --test --server puppetmaster.jiachen.com --noop
3.检查运行结果
4.创建httpd模块
(1)创建httpd模块相应目录
服务端:mkdir -pv /etc/puppet/modules/httpd/{files,manifests,templates}
(2)编辑httpd模块,指定资源配置相关信息,采用163源进行安装
服务端:vim /etc/puppet/modules/httpd/manifests/init.pp
class httpd {
    yumrepo {"repo163":
        descr => "163 repo",
        baseurl => "http://mirrors.163.com/centos/5/os/x86_64/",
        gpgcheck => "0",
        enable => "1";
        }

    package {"httpd":
        ensure => installed,
        require => Yumrepo["repo163"];
        }
}
(3)修改agnet.jiachen.com.pp,增加httpd模块
服务端:vim /etc/puppet/manifests/nodes/agent.jiachen.com.pp
node 'agent.jiachen.com' {
    include test
    include httpd
}
上述代码中httpd模块的init.pp文件包含了一个单独的类httpd,该类包含了两个资源,yumrepo和package
第一个资源yumrepo定义了配置,第二个资源package使用ensure=>installed确保httpd包的安装,并指定了一个新的属性require,此属性代表依赖关系,在yumrepo资源执行后再执行package资源
(4)检查配置文件语法
服务端:puppet parser validate /etc/puppet/modules/httpd/manifests/init.pp
如果出现提醒需加入allow_virtual => false
(5)客户端运行配置
客户端:puppet agent --test --server puppetmaster.jiachen.com
(6)检查httpd是否安装成功
客户端:rpm -qa | grep httpd


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-41601-1-1.html 上篇帖子: puppet(一)安装与配置 下篇帖子: linux下用puppet搭建lamp和lnmp 资源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表