puppet笔记(1)

看过一些puppet,不过已经忘得差不多了,这几天作了一些实验,重新看了puppet的语法,把其中的一些我认为关键的部分记录下来,测试是在centos下进行的。

   1.安装 

   centos下面可以用下面脚本安装(别人提供的)

#!/bin/bash
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
echo "" >> /etc/yum.repos.d/epel.repo
echo "[epel-puppet]" >> /etc/yum.repos.d/epel.repo
echo "name=epel puppet" >> /etc/yum.repos.d/epel.repo
echo "baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/\$basearch/" >> /etc/yum.repos.d/epel.repo
echo "enabled=0" >> /etc/yum.repos.d/epel.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/epel.repo

echo "[puppetlabs]" >> /etc/yum.repos.d/puppet.repo
echo "name=Puppet Labs Packages" >> /etc/yum.repos.d/puppet.repo
echo "baseurl=http://yum.puppetlabs.com/base/" >> /etc/yum.repos.d/puppet.repo
echo "enabled=0" >> /etc/yum.repos.d/puppet.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/puppet.repo
  然后执行 yum install puppet-server  yum install puppet来安装服务端和客户端

  在ubuntu下可以通过源安装 puppet ,puppetmaster

2.配置

注意:修改机器主机名,因为puppet是基于证书的,证书中包含主机名;centos下修改主机名/etc/sysconfig/network的文件中,而ubuntu的是在/etc/hosts文件中。

以下配置在目录 /etc/puppet/

  auth.conf

  fileserver.conf

  puppet.conf
puppet是主要的配置文件:

在 server端中需要以下配置

  开启tcp端口 8140 ,使client能访问
  启动 停止
  /etc/init.d/puppetmaster  {start|stop}
在client端中需要以下配置

 在auth.conf中的

path /
auth any

之前添加如下

path /run
method save
allow ${server_hostname}
在puppet.conf中添加下面的内容:
server = ${server_hostname}
runinterval = 3600     ###每隔3600s后client主动请求server
listen = true    ###使server可以kick
开启tcp端口 8139 ,使server能访问
启动 停止
/etc/init.d/puppet {start|stop}

一定要按上面的配置,而且要注意内容是否正确,中间就是出了好多问题,配置完之后就是认证,首先由client发起请求:

puppet agent --test
note :出现
Exiting; no certificate found and waitforcert is disabled
可以忽略,查看server端有无收到认证请求
然后由server进行认证:

  puppet cert list --all ##得到client注册过来的certname,默认hostname;
  puppet cert sign ${client_certname} 

client,server的时间不一致可能会导致认证失败,出现 certificate verify failed ,需要同步,然后删除之前生成的ssl文件(/var/lib/puppet/ssl),重新认证。

文件的目录结构如下,注意目录的名字是不能改变的,昨天把templates写成template调试了半天,悲剧啊

  modules/   manifests/site.pp,node.pp...  auth.conf   puppet.conf   fileserver.conf  namespace.conf(后两个配置文件只有在用到相应的功能的时候才会用到,装完之后可能会不存在该文件)
modules目录位置

/etc/puppet/modules
/usr/share/puppet/modules (建议在此编写模块,在主site.pp引用模块)
modules文件结构

mymodule/ 模块名字
        manifests/
                 init.pp 入口的pp,含有一个class,名字为mymodule                                                                                                            node.pp 包含一些节点信息(尽量放在此处,也可以放在/etc/puppet/manifests下,中其中include要包含的类和函数)
                 myclass.pp — class named mymodule::myclass.
                 mydefinedtype.pp — defined type named mymodule::mydefinedtype.
                 mydir/
                      foo.pp — class named mymodule::mydir:foo.
       files/ -存放需要直接拷贝的文件
       templates/ -存放在部署过程中会变动的文件,如配置文件

一些说明:1.puppet的文件的调用顺序是,首先调用manifests下面的site.pp,若site.pp引用了modules.pp或者node.pp则去相应的文件中去调用,自己写的每个modules下必须有个init.pp。2.目录的名字是唯一的,如果改掉可能就会出现错误

PanelManager2:/etc/puppet>tree
.
|-- auth.conf
|-- fileserver.conf
|-- manifests
|   |-- modules.pp
|   |-- node.pp
|   `-- site.pp
|-- modules
|   `-- test
|       |-- manifests
|       |   |-- init.pp
|       |   |-- node.pp
|       |   `-- tconf.pp
|       `-- templates
|           `-- file.erb
|-- namespaceauth.conf
`-- puppet.conf

5 directories, 11 files



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值