上一节我们主要是在standalone
模型上进行练习,而在生产
环境中,我们都是使用的是master/agent
模型。
下面我们就如何制作模块、puppet的master/agent进行详细的练习
环境准备
虚拟机:
|
|
软件包:
|
|
软件包下载地址:puppet、puppet-server、facter
注意:这里需要科学上网,才能下载软件包 :)
chrony时间同步模块制作
安装配置chrony服务
|
|
制作模块
|
|
nginx反代模块制作
准备:
|
|
制作模板文件
- 制作单tomcat节点,反代apache+tomcat的httpd请求的nginx模板文件
|
|
- 制作双tomcat+apache的负载均衡代理的nginx配置模板文件
|
|
配置模块
- init.pp
|
|
- webproxy.pp
|
|
- tomcatsrvs.pp
|
|
将模块分配给node1节点使其作为反代服务器
不过这里我们还没有配置master/agent节点,所以这步需要在我们配置好了master节点与其他3个agent节点之后,在master
节点的site.pp
文件中写入如下信息:
|
|
别忘了测试!
如果虚拟机够用,最好是再做一台puppet,安装puppet
和facter
,对我们制作好的模块模块进行测试
|
|
确保我们制作的模块可以正常使用
mariadb数据库模块制作
初始化:
|
|
制作模板文件
|
|
制作模块
- init.pp
|
|
- database.pp
|
|
别忘了测试!
|
|
确保我们制作的模块可以正常使用
httpd反代tomcat模块制作
初始化:
|
|
制作模板配置文件
- httpd主配置文件httpd.conf.erb
|
|
- 虚拟主机配置文件vhost.conf.erb
|
|
制作模块
- init.pp
|
|
- httpdconf.pp
|
|
- vhost.conf.erb
|
|
别忘了测试!
|
|
确保模块的正常运行
tomcat模块制作
初始化:
|
|
authbind软件下载地址:authbind
这里我们使用程序是solo blog
下载地址:solo-blog
使用的tomcat版本是:tomcat-7.0.54-2.el7_1.noarch
使用的是epel源中提供的tomcat版本
jdk版本:
|
|
制作模板文件
- server.xml.erb
|
|
- server-mem.xml.erb
|
|
- tomcat-users.xml.erb
|
|
制作要拷贝的文件
- local.properties
|
|
- latke.properties
|
|
- tom1-index.jsp:node1节点的index.jsp测试页
|
|
- tom2-index.jsp:node2节点的index.jsp测试页
|
|
制作资源清单
- init.pp
|
|
- conf.pp 默认配置文件 只修改了8080 为80端口
|
|
- blog.pp
|
|
- memone.pp : node2节点的测试页的资源清单
|
|
- memtwo.pp :node3节点的测试页的资源清单
|
|
- authbind.pp :启动tomcat的软件,使tomcat运行在80端口
|
|
别忘了测试!
|
|
确保模块的正常运行
注意各个模块的依赖关系,以及执行顺序在master/agent节点时需要特别注意
|
|
memcached模块制作
初始化:
|
|
制作memcached模块
- init.pp
|
|
别忘了测试!
|
|
确保模块的正常运行
master/agent配置
初始化:
|
|
master节点
- 安装puppet、puppet-server、facter
|
|
- 检测并发送安装包
|
|
agent节点
- 安装puppet、facter
|
|
- 生成证书请求
|
|
master节点签署agent节点证书
|
|
agent节点查看收到的CA证书
|
|
不过这里,我们还没有在master节点的site.pp站点资源清单定义要分发给Node1节点什么模块,所以会有警告信息
master节点配置agent各个节点应该拥有的模块
|
|
agent各个节点手动获取自己的配置模块
|
|
只要不报错,并出现Notice: Finished catalog run in 0.74 seconds
即表示成功
不过建议在执行puppet agent --server master.maxie.io --no-daemonize -v
这条命令时,加上 -d
和--noop
选项,表示debug之意。防止出现错误。如果测试成功,再去掉即可。
上面这些我们都使用的 no-daemonize 模式,现在只需修改配置文件,然后使用systemctl启动agent服务即可
|
|
配置kick功能
使用master节点的kick
功能,可以手动让某个agent节点强制其马上同步site.pp
的内容,也可以同步所有agent节点
- agent节点配置
|
|
- master节点kick agent节点
|
|
完整的模块包
下载地址:LNAMT模块组合包
solo博客程序包:solo-blog
authbind程序包:authbind
tomcat连接memcached所需的包:msm包
本文出自Maxie’s Notes博客,转载请务必保留此出处。