一、安装puppet准备

//安装准备 ,两台机器都要操作

. 两台机器
172.7.15.106 (server) 172.7.15.111 (client) . 关闭防火墙 setenforce iptables -F . 设置hostname server : hostname(web9.lulu.com) --> vi /etc/sysconfig/network 将hostname定义进去 client : hostname (web10.lulu.com) --> vi /etc/sysconfig/network 将hostname定义进去 . 编辑hosts文件
vi /etc/hosts
//ADD
172.7.15.106 web9.lulu.com
172.7.15.111 web10.lulu.com . 两台机器都安装ntpdate yum install -y ntp . 建立自动同步时间的任务计划 crontab -e
//ADD */ * * * * ntpdate time.windows.com >/dev/null >&

二 、安装puppet

//server (106) 操作
[root@web9 ~]# rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm
[root@web9 ~]# ls /etc/yum.repos.d/ //查看上一步是否安装成功
puppetlabs.repo
[root@web9 ~]# yum install -y puppet-server
[root@web9 ~]# service puppetmaster start
[root@web9 ~]# chkconfig puppetmaster on //client (111)操作
[root@web10 ~]# rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm
[root@web10 ~]# yum install -y puppet
[root@web10 ~]# vi /etc/puppet/puppet.conf
//末尾增加
listen = true
server = web9.lulu.com
runinterval = //主动更新,每隔30s [root@web10 ~]# service puppet start
[root@web10 ~]# chkconfig puppet on

三、 配置认证

//server 端查看客户端证书列表
[root@web9 ~]# puppet cert list --all //如果签发的证书,会在行首代一个+ //client 端生成ssl证书
[root@web10 ~]# puppet agent --test --server web9.lulu.com //server 端签发指定客户端证书
[root@web9 ~]# puppet cert --sign web10.lulu.com //server 端可以删除指定客户端证书
[root@web9 ~]# puppet cert clean web10.lulu.com //删除所有证书
[root@web9 ~]# puppet cert clean --all

此处遇到的错误:

Exiting; no certificate found and waitforcert is disabled

-->
[root@web10 ~]# /etc/init.d/puppet stop
[root@web10 ~]# rm -rf /var/lib/puppet/ssl/*
[root@web10 ~]# /etc/init.d/puppet start

四、 配置自动签发证书

//server
[root@web9 ~]# puppet cert clean web10.lulu.com //服务端删除客户端证书 //client
[root@web10 ~]# rm -rf /var/lib/puppet/ssl/* //删除客户端ssl相关文件 */ //server
[root@web9 ~]# vim /etc/puppet/autosign.conf //创建自动签发的配置文件
//ADD
*.lulu.com
[root@web9 ~]# /etc/init.d/puppetmaster restart //client
[root@web10 ~]# /etc/init.d/puppet restart //server
[root@web9 ~]# puppet cert list --all IF
客户端不重启puppet服务,也可以通过命令来自动签发
[root@web10 ~]# puppet agent --test --server web9.lulu.com

五、测试证书

//server
[root@web9 ~]# vi /etc/puppet/manifests/site.pp
/*配置了此文件,客户端才会同步数据*/
//ADD
node default {
file { "/tmp/123.txt"
content => "test,test";
}} //client
. 稍等一会儿 ---执行 {因为设置了每隔30s执行任务} .
[root@web10 ~]# puppet agent --test --server web9.lulu.com
[root@web10 ~]# ls /tmp/
.txt
[root@web10 ~]# cat /tmp/.txt
test,test

六、定义模块

//server

/*创建一个名为testm的模块*/
[root@web9 ~]# mkdir /etc/puppet/modules/testm /*在模块下创建子目录*/
[root@web9 ~]# cd /etc/puppet/modules/testm
[root@web9 testm]# mkdir {files,mainfests,templates}
[root@web9 testm]# ls
files mainfests templates /* files 存放目录 maindests 存放主配置文件 templates 存放模版文件 --> 模版文件会定义一些配置 */ [root@web9 testm]# cd files/
[root@web9 files]# vim lulu.txt //与下面的init.pp的source对应
//ADD
ksajdksdj
kjasdkjs
aksdjksd
[root@web9 files]# cd ..
[root@web9 testm]# cd mainfests
[root@web9 mainfests]# vim init.pp
//ADD
class testm{
file { "/tmp/2.txt" :
owner => "root",
group => "root".
mode => ,
source => "puppet://$puppetserver/modules/testm/lulu.txt"
}}
//server
[root@web9 ~]# vi /etc/puppet.manifests/site.pp
//ADD
$puppetserver='web9.lulu.com'
node 'web10.lulu.com'{
incluede testm
} //client
[root@web10 ~]# puppet agent --test --server web9.lulu.com

七、文件或目录资源

//刚刚的模块只是同步了一个文件,现在需要同步一个目录

/*例如,现在一台机器已经编译安装好了Apache,

现在通过一个模块同步Apache目录到其他机器上*/

[root@web9 testm]# cd manifests/
[root@web9 manifests]# vi init.pp
//ADD ,此文件可定义多个file,多个class
class apache {
file { "/usr/local/apache2":
owner => "root",
group => "root",
source => "puppet://$puppetserver/modules/apache/apache2",
recurse => true,
purge => true
}}
/* recurse 递归 -- 没有这个不能同步目录 purge 可保证当服务端删除某个文件,客户端跟着删除
*/ [root@web9 manifests]# vi /etc/puppet/manifests/site.pp
//ADD
...
...
include apache //将刚刚添加的apache这个类添加进去
... //client
[root@web10 ~]# ls /usr/local/apache2
/usr/local/apache2        //已存在,成功

八、远程执行命令

//server
[root@web9 puppet]# vi modules/testm/manifests/init.pp
//ADD
...
...
exec { "":
unless => "test -f /tmp/linux.txt",
path => ["/bin", "/sbin", "/usr/bin", "/usr/sbin"],
command => "touch /tmp/linux.txt"
} //client
[root@web10 ~]# ls -lt /tmp/
-rw-r--r--. root root 12月 : linux.txt

九、配置任务计划cron

[root@web9 puppet]# vim modules/testm/manifests/init.pp
//ADD
...
...
cron {"lulu1":
command => "/sbin/ntpdate time.windows.com",
user => "root",
minute => "*/10",
#ensure => "absent"
}
/* ensure 设置为 absent -- 删除该任务 不设置 改行则建立
*/ /* 关于时间,不设置则保持默认。 包括:
minute , hour , monthday , month ,weekday
*/

puppet安装和配置的更多相关文章

  1. Puppet安装与配置简介(附视频教程)

    Puppet是一种Linux平台的集中配置管理系统,他可管理配置文件.用户.cron任务.软件包.系统服务等.puppet把这些系统实体称之为资源,puppet采用C/S星状的结构,所有的客户端和一个 ...

  2. puppet安装配置及使用

     puppet安装前准备 一.服务器信息 master端:10.10.10.201 master.fansik.com slave端:10.10.10.156 slave.fansik.com 三台机 ...

  3. Puppet自动化部署-安装及配置(3)

    本文介绍Puppet Master及Agent相关的安装及配置. 一. 官网下载Puppet安装YUM源 [root@puppet-master ~]# rpm -ivh https://yum.pu ...

  4. Puppet安装及部署

    本篇博客主要介绍Puppet的安装部署,后续会更新其他相关内容 一.简介 二.环境介绍 三.安装Puppet 四.配置Puppet-dashboard 五.配置Puppet Kick 一.简介 Pup ...

  5. 烂泥:puppet3.7安装与配置

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 有关服务器的自动化管理,这方面以前没有接触过.打算这段时间把这块知识给补上. 现在服务器自动化管理软件,使用最多也最火的就是puppet了. 那么我们今 ...

  6. puppet运维配置实列

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABQkAAAGBCAIAAABKMKAEAAAgAElEQVR4nOydeXwU9cH/t2o9WutR+7

  7. SaltStack安装及配置

    1.简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack基于Python语言实现,结合 ...

  8. Puppet自动化管理配置

    Puppet:开源系统配置和管理工具 随着虚拟化和云计算技术的兴起,计算机集群的自动化管理和配置成为了数据中心运维管理的热点.对于 IaaS.Paas.Saas 来说,随着业务需求的提升,后台计算机集 ...

  9. JDK安装与配置

    JDK安装与配置 一.下载 JDK是ORACLE提供免费下载使用的,官网地址:https://www.oracle.com/index.html 一般选择Java SE版本即可,企业版的选择Java ...

随机推荐

  1. 运动员最佳匹配问题 KM算法:带权二分图匹配

    题面: 羽毛球队有男女运动员各n人.给定2 个n×n矩阵P和Q.P[i][j]是男运动员i和女运动员j配对组成混合双打的男运动员竞赛优势:Q[i][j]是女运动员i和男运动员j配合的女运动员竞赛优势. ...

  2. POJ3498:March of the Penguins——题解

    最近的题解的故事背景割. 题目: 描述 在靠近南极的某处,一些企鹅站在许多漂浮的冰块上.由于企鹅是群居动物,所以它们想要聚集到一起,在同一个冰块上.企鹅们不想把自己的身体弄湿,所以它们在冰块之间跳跃, ...

  3. NOIP2016Day1T3换教室(floyd+期望dp)

    啊...这个时间写博客,明天还要上学,整个人都不好了... 这是我写的第一道期望题hiahiahia... 题目大意就不说了QWQ 80分儿做法:先floyd,爆搜枚举哪些点取,求出答案,效率O(C( ...

  4. JavaScript引擎是单线程的

    从基础的层面来讲,理解JavaScript的定时器是如何工作的是非常重要的.计时器的执行常常和我们的直观想象不同,那是因为JavaScript引擎是单线程的.我们先来认识一下下面三个函数是如何控制计时 ...

  5. Codeforces Round #511 (Div. 2):C. Enlarge GCD(数学)

    C. Enlarge GCD 题目链接:https://codeforces.com/contest/1047/problem/C 题意: 给出n个数,然后你可以移除一些数.现在要求你移除最少的数,让 ...

  6. JavaScript知识递归实现数组中指定后代元素的查找

    描述:要求将下面的数据类型中每个子孙后代id放入一个数组并返回 var arr = [ {"id":28,"text":"公司信息", &q ...

  7. 【BZOJ】1577: [Usaco2009 Feb]庙会捷运Fair Shuttle

    [题意]公车从1开到n,有k群牛想从一个点到达另一个点,公车最多乘坐c个人,牛群可以拆散,问最多载多少牛到达目的地. [算法]贪心+堆 [题解]线段和点的贪心,一般有按左端点排序和按右端点排序两种方法 ...

  8. 【51NOD-0】1137 矩阵乘法

    [算法]简单数学 [题解] 对于A*B=C C中第i行第j列的数字由A中第i行和B中的j列的数字各自相乘后相加得到. 所以两个矩阵能相乘要求A的列数等于B的行数,复杂度为O(n3). #include ...

  9. Kubernetes: 集群网络配置 - flannel

    参考: [ Kubernetes 权威指南 ] Kubernetes 集群搭建可以参考 [ Kubernetes : 多节点 k8s 集群实践 ] 在多个 Node 组成的 Kubernetes 集群 ...

  10. 关于scala 集合 List Map Set

    1,数组 2,List,ListBuffer 3, Map , mutable.Map