内容参考朱双印博主puppet,链接: https://www.zsythink.net/archives/185

1、master/agent模型下工作的puppet的工作流程。

2、单机模式 agent端工作流程

3、yum安装puppet ,puppet-server

环境centos7 。 26.136安装puppet v3.6(客户端)。 26.137安装puppet-server v3.8(服务端)
其中yum安装puppet-server有个坑。参考博客中使用了官方的http://yum.puppetlabs.com/ 的 http://yum.puppetlabs.com/puppet-release-el-7.noarch.rpm 。还是提示no package puppet-server available

最终处理方法参考:https://puppet.com/docs/puppet/3.8/install_el.html 。(好像没啥差别呢。。。都是同个rpm)

$ sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm

4、单机模式运行pp清单,创建用户。

createUser.pp

user{'zsythink':name => zsythink,ensure => present,
}

执行:

#puppet apply --verbose --noop createUser.pp
puppet apply --verbose  createUser.pp


查看创建后的内容:

其中有个奇怪的现象。第一次执行的时候要耗时1分钟之久,执行多几次后能在3秒内完成。


第二个 createUser2.pp

user{'zsypuppet':ensure => present,uid => 700,shell => '/bin/csh',home => '/home/zsypuppet'
}puppet apply --verbose createUser2.pp

5、 常用资源及其属性总结

具体属性解释请参考 https://www.zsythink.net/archives/363

puppet describe -l  #“命令,查看puppet中支持的所有资源。
puppet describe user  # 查询user资源的所有属性以及属性用法#echo "123456" | openssl sha256

5.1 group资源

group资源的作用就是用来管理目标服务器上的组的。类似使用groupadd

#group.pp文件
group{"testgroup":ensure => present,gid => 2666,system => false,
}puppet apply --verbose group.pp

5.2 user资源

user资源就是用来管理目标服务器上的用户的,比如创建用户、修改用户、删除用户.

#user.pp 文件
user{'zsythink1':ensure => present,uid => 777,#gid => 777,groups => [zsy,testgroup,],managehome => true,shell => '/bin/bash',password => 'e150a1ec81e8e93e1eae2c3a77e66ec6dbd6a3b460f89c1d08aecf422ee401a0',comment => 'wwwwww zsy think',expiry => '2222-12-12',system => true,
}puppet apply --verbose user.pp

5.3 cron资源

cron资源的作用就是管理目标服务器上的定时任务的,作用相当于crontab命令

##cron.pp文件
cron{'zsycron':#name#ensurecommand => '/usr/bin/echo "123456" >> /root/shellDir/zsycron.txt',user => root,minute => '*/1',
}puppet apply --verbose cron.pp

5.4 package资源 (yum安装 / rpm)

#package.pp内容
package{'tree':ensure => installed#allow_virtual=>true,#provider => rpm,#source => '/testdir/tree-1.5.3-3.el6.x86_64.rpm',
}

上面将provider属性与source属性都注释了,所以上例中使用的是yum的方式安装的tree软件包,
如果被管理服务器上并没有yum源,你又想要使用rpm包的方式安装tree包,那么provider与source属性都是不可省的。

5.5 service资源 (启动/重启nginx)

service资源的作用就是启动或停止目标服务器上的服务,service资源的常用属性如下。

#serviceNginx.pp内容:
service{'nginx':ensure => running,enable => true,start => '/srv/nginx/sbin/nginx',restart => '/srv/nginx/sbin/nginx -t && /srv/nginx/sbin/nginx -s  reload',}puppet apply --verbose serviceNginx.pp

5.6 file资源

file资源的功能比较丰富,它可以用来管理文件的内容、属主属组以及文件的权限,同时可以用它管理目录、链接文件。

#file.pp 内容:
#创建一个文件,被创建的文件为 /testdir/zsyfile,文件内容为content属性对应的值
file{"zsyfile":path => '/testdir/zsyfile',ensure => file,content => "this is a zsyfile content",
}
#复制/etc/fstab文件中的内容到/testdir/zsyfile1文件中,
#文件权限为600 ,属主属组均为 zsythink
file{"/testdir/zsyfile1":ensure => present,source => '/etc/fstab',owner => zsythink,group => zsythink,mode => 0600,}#复制 /testdir/abc目录中所有内容到 /testdir/dir目录下:
file{"/testdir/dir":ensure => directory,source => "/testdir/abc",recurse => true,
}#注意,file资源不会自动创建父目录。上面三个例子中,需要 /testdir目录事先存在。
#可借助exec资源来完成文件夹的创建
#或者用如下方法,将目录父目录创建出来
file{["/testdir/www","/testdir/www/zsythink","/testdir/www/zsythink/net",]:ensure => directory,}#删除对应的目录,以及目录中所有内容
file{"/testdir/dd":ensure => absent,force => true,
}#创建一个连接文件 /testdir/zsythink ,连接指向 /etc/fstab文件
file{"/testdir/zsylink":ensure => link,target => "/etc/fstab",
}puppet apply file.pp

5.6 yumrepo资源

yumrepo资源的作用就是在被管理服务器上设置对应的yum源,常用属性如下

yumrepo{"163yum79":baseurl => "http://mirrors.163.com/centos/7.9.2009/os/x86_64/",gpgcheck => 0,#gpgkeyenabled => 1,
}

5.7 exec资源

通过exec资源,可以在被管理服务器上执行对应的命令,exec资源的常用属性如下。

#该exec资源表示,当”/etc/fstab”文件存在时,在被管理服务器上执行”创建文件夹的命令”
exec{'mkzsydir':path => "/usr/local/sbin:/usr/local/bin:/bin:/usr/sbin:/usr/bin:/root/bin",onlyif => 'test -e /etc/fstab',command => 'mkdir -p /testdir/zsydir/www/zsythink/net',}

END

puppet学习(一)相关推荐

  1. Puppet学习之文件管理

    Puppet学习之文件管理 使用puppet可以方便的进行文件管理,可以对文件的内容.属组.属主.权限等进行管理.可管理的文件类型包括普通文件.目录.链接文件.类型需要在ensure类型中明确指定.接 ...

  2. puppet 学习总结(1)——puppet 入门详解

    一.puppet 介绍 1.概述 puppet 是一个 IT 基础设施自动化管理工具,它能够帮助系统管理员管理基础设施的整个生命周期: 供应(provisioning).配置(configuratio ...

  3. Puppet学习之hiera(8)

    Links: http://dreamfire.blog.51cto.com/418026/1399014 https://github.com/ripienaar/hiera https://doc ...

  4. Puppet基础篇9-Puppetmaster多环境配置

    Puppet基础篇9-Puppetmaster多环境配置 零基础学习Puppet自动化配置管理系列文档 扩充现有架构环境是对一个企业成长的见证 将基础环境模块部署到puppetmaster端之后就可以 ...

  5. [翻译]用 Puppet 搭建易管理的服务器基础架构(3)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第三部分. 本文由 伯乐在线 - Wing 翻译,黄利民 校稿.未经许可,禁止转载! 英文出处:Manuel Kiessling.欢迎 ...

  6. Puppet基础篇7-编写第一个完整测试模块puppet

    Puppet基础篇7-编写第一个完整测试模块puppet 零基础学习Puppet自动化配置管理系列文档 将Puppet部署到生产中第一个要编写的模块就是puppet本身,虽然puppet可以运行其它所 ...

  7. Puppet基础篇5-如何建立master和agent之间的认证关系

    Puppet基础篇5-如何建立master和agent之间的认证关系 零基础学习Puppet自动化配置管理系列文档 Puppet注册方式基本上有三种:自动注册.手动注册和预签名注册,在<Pupp ...

  8. Puppet基础篇6-Puppet更新方式的选型

    Puppet基础篇6-Puppet更新方式的选型 零基础学习Puppet自动化配置管理系列文档 基于C/S架构的Puppet更新方式一般有两种,一种是Agent端设置同步时间主动去PuppetMast ...

  9. 2015.12.20 自动化运维

    参考文档 自动化运维工具介绍 http://cuchadanfan.blog.51cto.com/9940284/d-11 从入门到精通Puppet的实践之路 http://www.cnblogs.c ...

最新文章

  1. “GAN之父”:当初为了深度学习买GPU,现在后悔没多挖点比特币
  2. Python 是一门怎样的语言
  3. urllib.parse
  4. js node.js 编写命令工具demo
  5. java 垃圾回收手动回收_Java垃圾回收(2)
  6. .net Json JavaScriptSerializer JsonHelper类
  7. std::tie简单介绍
  8. 请求地址操作中的(int*)
  9. unslider.js 实现移动web轮播
  10. 金融系统中BER-TLV的解析,更改、增加、删除TAG的实现
  11. 5G通信协议(MAC 层简介)
  12. win10专业版opnet安装及vs2010环境变量配置
  13. 为羊哥点赞,利用云服务器搭建私人云笔记
  14. 制作一个全盘搜索器 ,能搜索整个磁盘所有目录
  15. Rayson API 框架分析系列之1: 简介
  16. android SharePreference缓存存储List<Bean>
  17. unix时间戳 为什么计算机时间要从1970年1月1日开始算起?
  18. 接入微信提现Api(企业付款到零钱--向微信用户个人付款)
  19. 番茄工作法(番茄钟时间管理)
  20. SSM网上书店管理系统毕业设计源码082255

热门文章

  1. Java Panel 面板
  2. 【贪婪匹配】和【非贪婪匹配】
  3. android的fragment添加列表,Android之listfragment的使用例子
  4. [UML专题-2]:plantUML绘制软件设计图形快速入门
  5. 第一次学习信息安全的心得
  6. jdk1.8新特性<下>
  7. 在水果忍者游戏上做改编的中秋切月饼canvas小游戏
  8. c++vector使用方法详解
  9. 关于这次KPL春季决赛的感悟
  10. 独家思维导图!让你秒懂李宏毅2020深度学习(三)——深度学习基础(神经网络和反向传播部分)