设为首页 收藏本站
查看: 982|回复: 0

[经验分享] Puppet + pssh 批量管理工具

[复制链接]

尚未签到

发表于 2018-8-2 11:31:26 | 显示全部楼层 |阅读模式
  Puppet学习之puppet的安装和配置
  PSSH的安装和使用
  ===========================================================
  PSSH安装 (pssh是一个轻量批量管理工具)
  (系统中已经安装有python)
  只需要在主节点上安装pssh
  下载地址 http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
  解压后进入该目录,安装
  wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
  tar -xvf pssh-2.3.1.tar.gz
  cd pssh-2.3.1
  python setup.py build
  python setup.py install
  PSSH配置
  配置主要有两项内容,一、从结点的IP列表文件;二、主节点到从节点的ssh无密钥登录
  IP列表文件就是将从结点的IP按行存在一个文件里,我给它命名为host_list.txt,里面共有99行,第一行172.16.0.2
  下面是ssh无密钥登录
  由于好多很多操作需要有sudo权限,所以尽量ssh无密钥登录到从节点的root用户下。
  ssh-keygen  (然后按提示输入信息)
  ssh-copy-id  –i ~/.ssh/id_rsa.pub root@172.16.0.2 (将密钥复制到从节点,需要输入密码)
  PSSH使用
  http://www.linuxidc.com/Linux/2013-08/88548.htm 里面说到有5个实用程序,在实际中我只用到pssh和pscp两个
  pscp -h host_list.txt -r source_file_path destination_file_path
  #例如将主节点的/home/master/1.txt拷贝到从节点的/home/slave/目录下
  pscp -h host_list.txt -r /home/master/1.txt /home/slave/
  #pscp是远程拷贝文件,如从主节点将文件分发到所有从节点
  pssh -h host_list.txt -P "command"
  #例如在从节点建立新目录/home/slave/test
  pssh -h host_list.txt -P "mkdir /home/slave/test"
  使用PSSH应该会的命令
  pssh结合脚本使用比较高效,有以下几个命令可能会用到
  sed
  cat
  重定向 >>与>
  expect
  ======================================================================================

  •   Puppet简介
  Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,最新版本也开始支持对Windows操作系统有限的一些管理。Puppet适用于服务器管的整个过程 ,比如初始安装、配置更新以及系统下线。

  •   Puppet的安装
  Puppet的安装方式支持源码安装、yum安装以及ruby的gem安装。官网推荐使用yum来安装puppet,方面以后的升级、管理、维护。Centos可以采用yum来安装,但是Centos的默认源中没有puppet包,因此需要先安装epel包。Epel是企业版Linux附加软件包(Extra Packages for Enterprise Linux)的缩写,是一个由特别兴趣小组创建、维护并管理的,针对红帽企业版Linux(RHEL)及其衍生发行版(比如CentOS、Scientific Linux)的一个高质量附加软件包项目。

  •   1. Master的安装
  yum -y install ruby ruby-libs ruby-shadow
  wget ftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm
  rpm -Uvh epel-release-5-3.noarch.rpm
  yum -y install puppet puppet-server facter

  •   2. Agent的安装
  yum install ruby ruby-libs ruby-shadow
  wget ftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm
  rpm -Uvh epel-release-5-3.noarch.rpm
  yum -y install puppet facter
  至此如果安装过程不报错的话,puppet已经安装成功了。

  •   Puppet的简单配置
  •   Master的配置
  先来看看puppet主目录下都有什么文件已经每个文件是做什么用的:
  ls -1 /etc/puppet/
  auth.conf       #定义puppet master的acl文件
  fileserver.conf   #定义puppet master文件服务器的配置文件
  manifests        #puppet脚本主文件目录,site.pp文件必须存在
  modules            #puppet模块目录
  puppet.conf     #puppet主配置文件
  ssl                     #存放ssl证书的目录
  刚开始的话, puppet.conf不需要配置就可以满足。
  需要更改hosts文件,注意hosts要和主机名对应。
  vim  /etc/hosts添加如下内容:
  10.1.4.218 puppet.zhang.com puppet
  10.1.4.213 node1.zhang.com node1
  10.1.4.214 node2.zhang.com node2
  大家要根据实际情况加,我这里是一个master,两个agent。

  •   2. Agent的配置
  Agent的配置主要是更改agent上的/etc/puppet/puppet.conf文件的[agent]部分。
  在agent上vim /etc/puppet/puppet.conf 添加如下配置
  server = puppet.zhang.com        #master服务器的地址
  runinterval = 3600                       #每隔多久的时间进行自动更新,时间单位为秒
  listen = true                         #客户端作为一个服务进行监听,允许其它的机器触发puppet运行允许远程触发puppet的节点配置

  •   puppet的启动和停止
  •   Master的启动和停止
  Master的启动
  /etc/rc.d/init.d/puppetmaster start
  也可以以采用 service puppetmaster start启动
  第一次启动建议采用puppet master --verbose --no-daemonize方式启动,有助于测试和调试错误,如果采用后面这种方式,你可以看到启动的整个过程,启动过程会做一些初始化的工作,为master创建本地证书认证中心,证书和key。并打开socket等待client的连接。你可以在/etc/puppet/ssl目录看到相关的文件和目录。
  Master的停止
  /etc/rc.d/init.d/puppetmaster stop
  也可以以采用 service puppetmaster stop停止
  更改多选项可以使用/etc/rc.d/init.d/puppetmaster –h查看

  •   2. Agent的启动和停止
  Agent的启动
  /etc/rc.d/init.d/puppet start
  也可以采用service puppet start来启动
  调试的时候可以采用
  puppet agent --server=puppet.zhang.com --no-daemonize –verbose
  的方式来启动,这样启动我们可以看到agent是如何和master建立连接的。
  Agent的停止
  /etc/rc.d/init.d/puppet stop
  也可以采用service puppet stop来停止。

  •   FAQ
  •   连接master的时候出现如下报错:
  dnsdomainname: Unknown host
  解决办法:检查机器主机名的设置,以及是否添加进hosts。

  •   2.   连接master的时候出现如下报错:
  err: Could not request certificate: getaddrinfo: Name or service not known
  解决办法:服务器端没有配置hosts域名绑定,在hosts中添加。

  •   3.  连接master的时候出现如下报错:
  warning: peer certificate won't be verified in this SSL session
  解决办法:服务端还没有返回签发证书,使用puppet cert --list查看

  •   4.  连接master的时候出现如下报错:
  err: Could not retrieve catalog from remote server: certificate verify failed
  解决办法:客户端和服务器端时间不同步,SSL连接需要依赖主机上的时间是否正确。执行更新时间的命令:/sbin/ntpdate asia.pool.ntp.org

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-545308-1-1.html 上篇帖子: 在CentOS 6.5上安装Puppet配置管理工具 下篇帖子: puppet学习—安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表