puppet 学习小记

之前做puppet部署openstack keystone,接触过一点点puppet,记录一下

首先是一些基本的知识。

puppet分master节点和client节点,client节点请求master节点控制,master同意控制,发布证书,然后到client节点上执行puppet agent --test就可以按照master节点上的配置对client节点进行管理,这是一个基本的流程

从puppet master节点上看,他的配置都放在/etc/puppet目录下面,如下图

其中 manifest目录下面的site.pp中决定了各个节点的角色,下面是100.100.100.33上site.pp的内容

node openstack.keystone1_cert的值取自对100.100.100.34的定义,可以用puppet cert --list -a看到

而include mysql,keystone,是指对这个节点使用这两个模型,而这所有的模型都存放在/etc/puppet/modules目录下,这个目录下的每一个子目录都被认为是一个模型,无论是从外面下载到的资源还是自己手动编写的资源,都要放到这里,这里的模型又遵守一定的格式。如下图所示,每一个模型下面都有一个子目录manifest,这个目录下面又有一定有一个叫做init.pp的文件,这个文件内一定定义一个class和目录名模型名相同,这里是模型初始化的文件,是每一个模型必不可少的部分。如果缺少,会报找不到资源的错误。

来看mysql的init.pp

这里定义了mysql这个资源,第一步是导入mysql::server,这个其实是定位到了和init.pp相同目录下的文件server.pp下面,所以其实可以理解为include mysql是include mysql::init的简写,而这个server.pp会保证该节点安装了mysql-server。安装完成之后,调用mysql::db{***},初始化数据库,这也也是定位到了,相同目录下的db.pp。db.pp和server.pp都是官方的资源,init.pp官方虽然也提供了,但是不符合我们的需要,于是删掉了自己重写了一份,这大概是个思路。

另外模型内还有一些有意义的文件:

dependency是这个模型所依赖的其他模型,你需要把这些依赖的模型下载下来,放到/etc/puppet/modules下面,才能使这个模型正常工作,否则client端处理过程中会报缺少某个函数的错误。examples里面放了一些你可以用来替换init.pp的pp文件,files里面存放处理客户端用的一些配置文件,脚本之类

 

刚接触puppet,有错漏的地方,请见谅

puppet的安装部署,身份认证,以及更多资料参考http://kisspuppet.com/,写的非常详细精彩,这里不再叙述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值