10968134>正文 52.puppet自动化运维工具

简介:

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

 本文转自   触动的风   51CTO博客,原文链接:http://blog.51cto.com/10978134/1945803

相关文章
|
3月前
|
运维 Prometheus 监控
别再盲选了!开源运维工具选型这事儿,咱得说人话
别再盲选了!开源运维工具选型这事儿,咱得说人话
130 7
|
2月前
|
运维 Prometheus 监控
3 年部署经验总结:用自动化工具轻松管理 300+ 服务器开源软件
三年前接手公司IT部门时,我满怀信心,却发现部署效率低下。尽管使用了GitLab、Jenkins、Zabbix等100+开源工具,部署仍耗时费力。文档厚重如百科,却难解实际困境。一次凌晨三点的加班让我下定决心改变现状。偶然看到一篇国外博客,介绍了自动化部署的高效方式,我深受启发。
120 0
|
14天前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
54 6
|
14天前
|
运维 Linux 网络安全
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
46 4
|
2月前
|
人工智能 数据可视化 数据挖掘
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
本文深入分析了传统手动日报在数据孤岛、格式混乱和时效性差三大痛点,并探讨了自动化日报带来的效率提升、决策优化等四大核心价值。通过对板栗看板、SmartBrief、n8n 等六款主流工具的功能、适用场景及实战效果进行测评,为企业提供科学的选型建议与实施路径。
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
|
14天前
|
安全 搜索推荐 机器人
风险规则引擎-RPA 作为自动化依赖业务决策流程的强大工具
机器人流程自动化(RPA)是一种通过软件“机器人”自动执行重复性任务的技术,能大幅提升工作效率。它适用于财务、电商等领域的标准化流程,如账单处理和退货管理。然而,RPA在复杂决策场景中存在局限,需结合决策模型(DMN)和业务规则管理系统(BRMS)实现流程与决策的协同自动化,从而增强灵活性与业务价值。
|
3月前
|
敏捷开发 JSON 负载均衡
自动化流程推进工具的核心价值与优势,如何快速提升团队生产力?
自动化流程推进工具通过任务自动分配、进度跟踪、智能提醒等功能,提升团队协作效率,解决任务分配不均、沟通成本高、流程不规范等问题,助力项目高效执行。
|
2月前
|
数据采集 运维 监控
|
3月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。

热门文章

最新文章

推荐镜像

更多