52.puppet自动化运维工具
admin
2023-03-17 22:41:21
0

puppet自动化运维工具

Puppet是一款运维自动化工具,在一些大型的互联网企业,它可以针对多台服务器进行统一操作,如统一部署软件,进行统一上线维护等,意思就是说在一台linux服务器上所部署的操作,会通过puppet同步到其他linux服务器的一款强大工具。

Puppet使用的端口是8139

 

 

搭建puppetmaster

规划服务器主机名

# vim /etc/sysconfig/network

修改内容:

NETWORKING=yes

HOSTNAME=master.test.cn

# vim /etc/hosts

添加解析记录:

1.1.1.128       master.test.cn

1.1.1.129       client.test.cn

# hostname master.test.cn

# bash

服务器时间同步

#vim /etc/ntp.com

添加两行:

server 127.127.1.0

fudge 127.127.1.0 stratum 8

# yum -y install ntpdate

#service ntpd restart

#chkconfig ntpd on

安装ruby

# yum -y install ruby

#ruby -v

安装puppetfacter

# useradd -s /sbin/nologin puppet

# tar xzvf facter-1.7.1.tar.gz

# cd facter-1.7.1

# ruby install.rb

# tar xzvf puppet-2.7.21.tar.gz

# cd puppet-2.7.21

# ruby install.rb

# cp conf/redhat/fileserver.conf   /etc/puppet/

# cp conf/redhat/puppet.conf  /etc/puppet/

# cp conf/redhat/server.init /etc/init.d/puppetmaster

# chmod +x /etc/init.d/puppetmaster

# mkdir /etc/puppet/manifests

# mkdir /etc/puppet/modules

Puppet服务证书与签名

# iptables -F

# vim /etc/puppet/puppet.conf

main行添加:

ssldir = $vardir/ssl

modulepath = /etc/puppet/modules:/usr/share/puppet/modules

# /etc/init.d/puppetmaster start

搭建client客户端:

规划服务器主机名

# vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=client.test.cn

# vim /etc/hosts

1.1.1.128       master.test.cn

1.1.1.129       client.test.cn

# hostname client.test.cn

# bash

同步服务时间

# ntpdate 1.1.1.128

安装ruby安装工具

# yum -y install ruby

# ruby -v

安装puppetfacter

#useradd -s /sbin/nologin  puppet

# tar xzvf facter-1.7.1.tar.gz

# cd facter-1.7.1

# ruby install.rb

# tar xzvf puppet-2.7.2

# cd puppet-2.7.21

# ruby install.rb

# cp conf/redhat/puppet.conf /etc/puppet

# cp conf/redhat/client.init  /etc/init.d/puppetclient

# chmod +x /etc/init.d/puppetclient

# iptables -F

# vim /etc/puppet/puppet.conf

main项添加内容 :

ssldir = $vardir/ssl

server = master.test.cn

client端申请与注册

# puppet agent --server=master.test.cn --no-daemonize --verbose

master端提交注册信息

# puppet cert --list                     查看申请列表

# puppet cert sign --all                  提交注册信息,会在下面目录中创建证书

#ll /var/lib/puppet/ssl/ca/signed          查看client端的注册信息文件

 

 

 

 

 

 

 

 

案例需求:需要将ssh服务的端口统一更改为9922

节点入口存放目录/etc/puppet/manifests/nodes

模块存放目录/etc/puppet/modules

Puppet分发部署:

创建必要目录

#mkdir -p /etc/puppet/modules/ssh/{manifests,templates,files}

#mkdir  /etc/puppet/modules/ssh/files/ssh

#mkdir  /etc/puppet/manifests/nodes

#chown -R puppet /etc/puppet/modules/

#ll /etc/puppet/modules/ssh

注:ssh/manifests目录是ssh模块配置文件目录,ssh/filesssh模块的文件发布目录

创建模块配置文件

# vim /etc/puppet/modules/ssh/manifests/install.pp     确定客户端是否安装ssh服务

class  ssh::install{

package{ "openssh":

         ensure => present,

  }

}

# vim /etc/puppet/modules/ssh/manifests/config.pp     配置需要同步的文件

class ssh::config{                                  定义类

file { "/etc/ssh/sshd_config":                         文件路径

        ensure => present,                         确定客户端此文件存在

        owner =>"root",                           文件所属用户

        group =>"root",                           文件所属组

        mode =>"0600",                           文件属性

        source =>"puppet://$puppetserver/modules/ssh/ssh/sshd_config",从服务器同步文件

        require => Class["ssh::install"],               调用ssh::install

        notify => Class["ssh::service"],              如果config.pp发生变化通知service.pp

   }

}

# vim /etc/puppet/modules/ssh/manifests/service.pp

class ssh::service {                              定义类

        service {"sshd":                        

        ensure=>running,                       确定ssh在运行

        hasstatus=>true,                        查看ssh服务状态

        hasrestart=>true,                       重启ssh服务

        enable=>ture,                          服务器是否开机

        require=>Class["ssh::config"]              调用ssh::config

      }

}

# vim /etc/puppet/modules/ssh/manifests/init.pp    模块主配置文件

class ssh{

     include  ssh::install,ssh::config,ssh::service    调用上面三个类

}

复制已修改好的ssh的配置文件到默认目录

# cp /etc/ssh/sshd_config  /etc/puppet/modules/ssh/files/ssh/

#chown puppet /etc/puppet/modules/ssh/files/ssh/sshd_config

创建节点配置文件

# vim /etc/puppet/manifests/nodes/ssh.pp        

node 'client.test.cn' {                            定义客户端入口

     include ssh

}

# vim /etc/puppet/manifests/nodes/site.pp          配置节点位置

import "nodes/ssh.pp"

同步方法:

客户端主动拉取

#puppet agent -t

服务器推送同步

客户端

# echo "listen = true" >> /etc/puppet/puppet.conf

# echo "allow *" >> /etc/puppet/auth.conf

#/etc/init.d/puppetclient restart

#vim /etc/ssh/sshd_config

#netstat -lnupt |grep ssh

服务端

#puppet kick client.test.cn

 


相关内容

热门资讯

美国解密UFO的79年历程 澎湃新闻记者 彭玉洁
特朗普连打几个电话训斥,FDA... 【文/观察者网 阮佳琪】当地时间5月8日,《华尔街日报》《纽约时报》等美媒均援引知情人士消息称,美国...
浏阳烟花厂爆炸事故是如何发生的... 2026年5月4日下午,湖南长沙浏阳市华盛烟花制造燃放有限公司车间发生爆炸,造成重大人员伤亡,湖南省...
新质生产力企业组团入琼 加速布... 海口5月9日电 (记者 符宇群)“我们希望将公司海洋具身智能技术,与海南得天独厚的海域资源进行深度场...
碳讨|AI涌入电力系统:谁在积... 当新能源装机不断逼近火电,“人工智能+电力”正从概念走向现实。 五大发电集团年报显示,清洁能源装机仍...
继德国后,特朗普瞄准意大利 新华社罗马5月9日电(记者王奕涵 刁泽) 据意大利媒体9日报道,美国总统特朗普接受意《晚邮报》电话采...
看人下菜碟,中国绝不当冤大头 2026年世界杯开赛在即,国际足联(FIFA)却向中国“狮子大开口”,要求支付巨额转播费用。国际足联...
特朗普还有一场硬仗 新华社北京5月9日电 美国民主、共和两党当前正推动有利本党的国会选区重划,并为此大打官司。弗吉尼亚州...
美国佛州发生疑似船只爆炸事故,... 当地时间5月9日,总台记者获悉,美国佛罗里达州迈阿密海滩附近一处热门水上聚会区域发生疑似船只爆炸事故...
【快看】涉及手机、电脑、电视等... 工业和信息化部、商务部、市场监管总局等部门近日联合启动实施《人工智能终端智能化分级》系列国家标准。 ...