热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux运维第五阶段puppet基础

一、相关概念:1、puppet基于CS架构,使用ruby编写,在类UNIX平台上集中配置管理系统,它可以管理配置文件、用户、


一、相关概念:


1、  puppet基于C/S架构,使用ruby编写,在类UNIX平台上集中配置管理系统,它可以管理配置文件、用户、cron任务、软件包、系统服务。


2、  puppet把系统实体称为资源。


3、  使用协议xmlrpc,xmlrpc是使用https作为传输协议的rpc机制,使用xml文本的方式传输命令和数据。


4、  可有多个master多个client,所有的client都定期(默认30分钟)使用facter工具把client的基本配置信息通过httpsxmlrpc协议发送给puppetmaster,puppetmaster-side通过分析client-side主机名,找到该主机的配置代码,继而编译,将编译好的配置代码发回client-side,client执行代码完成配置,并把代码执行情况反馈给puppetmaster


5、  puppet.conf(主配置文件)、server.init(服务端启动脚本)、client.init(客户端启动脚本)、fileserver.confserver.sysconfigclient.sysconfig


6、  master-side启动脚本中涉及到文件/etc/sysconfig/puppetmaster,可将配置文件/etc/puppet/server.sysconfig复制为/etc/sysconfig/puppetmaster;也可更改启动脚本(:%s#/etc/sysconfig/puppetmaster#/etc/puppet/server.sysconfig#g)。


7、  两种形式:分发(master-sideclient-side发送相关配置文件)、提取(client-sidemaster-side请求信息),本篇使用的是提取方式。


8、  #ll /var/lib/puppet/yaml/node/  (可通过查看此目录下各节点中的文件时间,如果时间相关太多证明某个节点出问题了,需要手动处理)


9、  所需软件:facter-1.6.18-8.el6.src.rpm(收集信息工具)、puppet-2.7.26-2.el6.src.rpm


10、             下载地址:http://fedoraproject.org/wiki/EPEL


11、             环境:redhat6.4  X86_64,准备两台机器,一台服务端一台客户端


二、安装及使用:


1、安装


master-sideagent-side都执行以下语句:


#service iptables  stop


#setforce 0


#ntpdate 192.168.1.222  (时间同步,极其重要,集群内的所有机器时间误差控制在秒级以内,否则会出离奇错误)


#yum -y  install  ruby


#groupadd puppet


#useradd -g  puppet  -s /bin/false  -M  puppet


#vim /etc/sysconfig/network


HOSTNAME=master.test.com  (服务端执行此句,服务端一定要是完整域名形式)


#vim /etc/sysconfig/network


HOSTNAME=agent.test.com  (客户端执行此句)


#rpm -ivh  /usr/src/facter-1.6.18-8.el6.src.rpm


#tar zxvf /root/rpmbuild/SOURCES/facter-1.6.18-8.tar.gz


#cd  /root/rpmbuild/SOURCES/facter-1.6.18


#ruby install.rb


#rpm -ivh /usr/src/puppet-2.7.26-2.el6.src.rpm


#tar zxvf /root/rpmbuild/SOUCES/puppet-2.7.26.tar.gz


#cd  /root/rpmbuild/SOURCES/puppet-2.7.26


#ruby install.rb


#mkdir /etc/puppet/


#mkdir /usr/src/puppet-2.7.26-2/redhat/* /etc/puppet


#cp /usr/src/puppet-2.7.26-2/auth.conf /etc/puppet/


#mkdir /etc/puppet/manifests/  (master-side创建此目录,agent-side不需创建,此目录在配置文件server.sysconfig中有定义,为简便直接创建就不改配置文件了)


#cp /etc/puppet/server.int /etc/init.d/puppetmaster  (此句在master-side执行,在agent-side则将client.init复制为/etc/init.d/puppetagent)


#chmod 755  /etc/init.d/puppetmaster 


#chkconfig --add  puppetmaster


#chkconfig --level  35  puppetmaster on


#service puppetmaster  start  (agent-side启动puppetagent)


#netstat lnt  | grep  8140


 


2、使用(三步:请求-查询-授权):


#man puppetd


#man puppetca


agent-side执行:


#puppetd --test  --server  master.test.com  (请求)


master-side执行:


#puppetca -l  (查询谁在请求)


#puppetca -s  agetn.test.com  (有查询结果再授权)


#ll /var/lib/puppet/ssl/ca/signed/*  (此目录下多了agent.test.com)


注:若出错,删除以下文件重新执行以上三步:


#rm -rf  /var/lib/puppet/ssl/  (agent-side直接将ssl目录删掉)


#rm -rf /var/lib/puppet/ssl/ca/signed/agent.test.com   (在signed目录下仅将出错的客户端的那条记录删掉)


 


3、配置管理:


以下例子逐个添加,在agent-side请求,查看每个例子对应目录文件是否更新。


#vim /etc/puppet/manifests/site.pp  (仅在master-side编辑,此文件在配置文件server.sysconfig中有定义)


 node  default {   (default表示请求的所有agent-side都执行此段中的语句,也可写成单独的agent,例如:node  ’agent.test.com’,表示仅某一客户端执行如下语句)


     file  {“/tmp/test.txt”:  (例1:首行用冒号‘:’,之后的多行用逗号或分号分隔,最后一行可以没有,此文件是在agent-side创建的,master-side不需创建此文件)


          content=>”I’m a test puppet\n”, (文件内容)


     }


     file  {“/tmp/clearlog.sh”:  (例2)


          owner=>”puppet”,  (属主)


          group=>”puppet”,  (属组)


          mode=>”0777”,  (权限)


             content=>”/bin/find  /tmp/  -name 123*  |  xargs rm  -rf”,  (文件内容)


    }


     group  {“test”:  (例3,管理用户组)


          gid=>999,


          ensure=>present,  (present表示创建,absent表示删除)


    }


     user  {“test”:    (管理用户)


         name=>”test”,


         uid=>999,


         gid=>999,


         managehome=>true,  (创建家目录)


         groups=>[‘puppet’,’root’],  (附加组)


         shell=>”/bin/bash”,


        ensure=>present,


     }


      cron  {“ntptime”:  (例4,计划任务)


          command=>”/usr/sbin/ntpdate 192.168.1.222  >  /dev/null 2>&1”,


          minute=>’*/10’,


          hour=>[‘2-4’],


          monthday=>[‘2’,’4’],  (这三行分别为:分时日,月周用*表示)


          environment=>”PATH=/bin:/usr/bin:/usr/sbin”,  (执行命令必须要指定环境变量)


           ensure=>present,


     }


}


#service puppetmaster  restart  (首次编辑完此文件需要重启服务,之后修改则不需重启)


#puppetd --test  -server  master.test.com  (在agent-side请求,此句可以写成脚本文件,注意/var/lib/puppet/state/lock)


#ll /tmp/


#crontab -l  (依次查看是否执行成功)


 


5:同步master-side某一目录下的文件到agent-side


#vim /etc/puppet/fileserver.conf


添加如下语句:


[system_conf]


path  /etc/puppet/system_conf/


allow  *


#service puppetmaster  restart  (首次编辑完此文件需要重启服务,之后则不需要)


#mkdir /etc/puppet/system_conf


#cp -p  /etc/resolv.conf  /etc/puppet/system_conf/


#vim /etc/puppet/system_conf/resolv.conf


 添加语句#test  (与agent-side端文件做区别)


#vim /etc/puppet/manifests/site.pp


node ‘agent.test.com’  {    (仅将此段语句应用于agent客户端)


     ……


file  {“/etc/resolv.conf”:  (还可以配置hosts,i18n,yum等系统配置文件)


    mode=>664,  (系统文件一定注意文件权限)


    source=>”puppet://master.test.com/system_conf/resolv.conf”,


}


}


4、生产中使用案例:(下一篇详细介绍高级用法)


wKiom1Xf-MCDZDYaAADe6TCQ2Io313.jpg






本文转自 chaijowin 51CTO博客,原文链接:http://blog.51cto.com/jowin/1689264,如需转载请自行联系原作者




推荐阅读
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
author-avatar
Smile--麦芽
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有