puppet(1.7-2.1)
puppet配置模块(一)
模块是puppet的最大单元,模块里面有类,类下面有资源。同步文件、远程执行命令、cron等叫做资源,都是通过模块来实现的。下面我们来定义一个模块:
在服务端上做如下操作:
mkdir /etc/puppet/modules/testm //模块名字就是 testm
cd /etc/puppet/modules/testm
mkdir {files,manifests,templates} //一个模块下需要有这三个目录,files存一些文件(可以为空),manifests存配置文件,templates存模板(可以留空)
touch manifests/init.pp //这个是必须的
vi manifests/init.pp //内容如下
class testm{
file {"/tmp/2.txt":
owner => "root",
group => "root",
mode => 0400,
source => "puppet://$puppetserver/modules/testm/1.txt"
}
}
说明:类名字也叫做testm, 类下面定义了一个资源file,文件名字叫做/tmp/2.txt ,owner,group,mode定义文件的属主、数组以及权限,source定义这个文件从哪里获取。 $puppetserver一会也要定义一下,这里指的是puppet server服务器上/etc/puppet/modules/testm/files/1.txt
puppet配置模块(二)
下面要继续定义一个很关键的配置文件:
vim /etc/puppet/manifests/site.pp //内容如下
$puppetserver = 'web9.xuan.com'
node 'web10'{
include test
}
说明:$puppetserver 定义服务端的主机名,node后面为客户端的主机名,这里面定义该客户端要加载的模块
配置完成后,在客户端执行命令:
puppet agent --test --server=web9.xuan.com //如果客户端上启动了puppet服务,不用执行这命令,它也会自动同步的
puppet文件或目录资源(1)
上面的模块其实只是同步了一个文件而已,那么要想同步一个目录如何做?我们可以通过实现同步一个目录来做一个包发布系统。 比如在一台机器上编译安装好了apache,那么就可以通过这样的模块把这个apache目录整个分发到其他机器上。
这是在服务端上的配置
模块配置文件如下:
vi /etc/puppet/modules/testm/manifests/init.pp
class apache{
file {"/usr/local/apache2": (对方机器所在的目录)
owner => "root",
group => "root",
source => "puppet://$puppetserver/modules/testm/apache2", (这个是从哪里下载)
recurse => true, (针对目录的)
purge => true (支持删除操作)
}
}
cd /etc/puppet/modules/testm/files
mkdir apache2 ; cd apache2
mkdir {conf,bin,logs}
touch conf/a.conf ; touch bin/xuan ; touchu logs/qq.log
echo "asdfghjkl" > conf/a.conf
vim /etc/puppet/manifests/site.pp
$puppetserver = 'web9.xuan.com'
node 'web10'{
include test
include apache
}
可以在客户端上ls /usr/local/下会有一个Apache2
服务端
vim /etc/puppet/modules/testm/files/apache2/bin/xuan
qwertyuiop
tail /var/log/messages
其中recurse=>true 这个参数很关键,它表示递归的意思,没有这个不能同步目录。purge参数可以保证当服务端删除某个文件,客户端可以跟着删除。
puppet远程执行命令
远程执行命令:
vi /etc/puppet/modules/testm/manifests/init.pp
exec {"123":
unless => "test -f /tmp/xuan.txt",
path => ["/bin", "/sbin", "/usr/bin", "/usr/sbin"],
command => "/bin/touch /tmp/xuan.txt"
}
说明:unless后面的命令作为一个条件,当条件成立时,不会执行下面的命令,如果想要条件成立时,执行下面的命令,用 onlyif。要注意的是,我们一定要给执行的这条命令加个条件,使用unless就可以,必须满足这个条件才能执行命令,否则这个命令会一直执行,不太妥当。
puppet配置cron
服务端上配置
cron资源:
cron {"xuan":
command => "/sbin/ntpdate time.windows.com",
user => "root",
minute => "*/10",
monthday => "10-15",
# ensure => "absent" //当增加了这行配置,则会把该cron删除掉
}
在客户端上crontab -l你会可以看到更改
说明:分时日月周分别对应puppet里面的minute,hour,monthday,month,weekday
转载于:https://blog.51cto.com/10915585/1744787
puppet(1.7-2.1)相关推荐
- Puppet扩展篇1-自定义fact结合ENC(hirea)的应用实践
零基础学习Puppet自动化配置管理系列文档 在大量节点加入Puppet之后,你至少会面临两个比较大的问题: 1.由于节点数的增多,site.pp文件必然会编写更多的节点条目,以及节点包含的类.假设你 ...
- puppet相关问题统计
1. notice: Run of Puppet configuration client already in progress; skipping 解决方法: 部分情况下puppet服务会无法启动 ...
- puppet运维自动化之yum仓库管理
puppet运维自动化之yum仓库管理 2012-05-05 21:03 sky mysqlops.com 字号:T | T 系统运维人员,经常需要安装或者升级特定的升级包,有的是自己编译的rpm包, ...
- puppet aix之自动化用户管理
一. 用户组的管理 (一) Puppet组管理特性 1. manages_aix_lam 用来管理AIX的LAM(Loadable Authentication Module)系统. 2 ...
- puppet yum模块、配置仓储、mount模块
转载:http://blog.51cto.com/ywzhou/1577335 作用:自动为客户端配置YUM源,为使用yum安装软件包提供便捷. 1.服务端配置yum模块 (1)模块清单 [root@ ...
- puppet中master和agent之间实现通信
puppet master和agent实现通信 1 安装puppet 1)master端 192.168.196.183 master.example.com agent端 192.1 ...
- puppet自动化运维之资源关系
2019独角兽企业重金招聘Python工程师标准>>> 1.引用资源 当我们引用一个资源时,需要大写资源类型的首字母,例如File[sshdconfig].当看到一个大写的资源类型, ...
- puppet 连载二:服务端和客户端安装(ActiveMQ、MCollective)
-------------------------------------服务端----------------------------------- 1.jdk安装 vi /etc/profile ...
- puppet cert maintain
puppet cert maintain posted on 2014-08-06 10:02 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblo ...
最新文章
- NVM安装与使用(实现Node多版本控制)
- 计算机辅助药物设计局限,计算机辅助药物设计高效低耗
- Elasticsearch新增一个字段并赋值
- 简单介绍Python中的几种数据类型
- 微信分享 ajax冲突,微信jssdk分享功能开发及解决ajax跨域的问题
- python中正则表达式是什么意思_python – 正则表达式中[^.] *的含义是什么?
- 移动端:zepto框架
- java 项目启动后页面乱码_java生成的Html打开后展示乱码
- 干货!国外关于高速PCB设计的技术书籍和资料介绍
- 如何在JMP中快速实现报表的个性化与可视化?
- 网站、手机验证码开发(手机注册验证)
- css3技巧——实现一个正方体
- 2019 年第 34 周 DApp 影响力排行榜 | TokenInsight
- 超级经典的人生格言(搞笑)
- BM25算法——(他人写)
- Notepad++安装--16进制插件HexEditor
- 服务器光盘拷贝文件夹,如何光盘path中的两个点的文件夹
- linux opengl配置编译,Linux下OpenGL的安装与cmake编译OpenGL程序
- 在Matlab图片里输入数学公式、符号和希腊字母的方法
- AES加密算法的JAVA实现