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

安装puppet和facter

# 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

安装puppet和facter

#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/files是ssh模块的文件发布目录

创建模块配置文件

# 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

10968134正文 52.puppet自动化运维工具相关推荐

  1. 52.puppet自动化运维工具

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

  2. puppet自动化运维工具安装配置

    转自:http://369369.blog.51cto.com/319630/785895/ 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.h ...

  3. 自动化运维工具——puppet详解(二)

    自动化运维工具--puppet详解(二) 目录 一.class 类 1)什么是类? 2)带有参数的类 3)类的继承 1.新增属性 2.新增原有值 3.修改原有值 4.整体调用父类,并重写部分值 二.模 ...

  4. 自动化运维工具Puppet(管理资源)

    接上文<自动化运维工具Puppet>http://kaliarch.blog.51cto.com/8966921/1973736 利用模块与模版管理agent端资源 一.模块管理 环境安装 ...

  5. Ansible、Puppet、SaltStac等4种常见的自动化运维工具全解析

    运维目标有三个阶段,第一是追求稳定性,第二是追求标准化,第三是追求自动化.对于第三阶段来说,什么是运维自动化呢?简单地讲,运维自动化就是将日常重复性工作按照事先设定好的规则,在一定时间范围内自动化运行 ...

  6. 自动化运维工具——【ansible】——从菜鸟到菜鸟

    一.ansible详解 1.1.什么是ansible ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric ...

  7. ansible——自动化运维工具

    目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ansible 执行流程 ansible 命 ...

  8. 自动化运维工具Ansible

    ansible简介: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批 ...

  9. 轻量级自动化运维工具Fabric的安装与实践

    一.背景环境 在运维工作中,经常会遇到重复性的劳动,这个时候为了效率就必须要使用自动化运维工具. 这里我给大家介绍轻量级自动化运维工具Fabric,Fabric是基于Python语言开发的,是开发同事 ...

  10. python开发web运维工具_【实战小项目】python开发自动化运维工具--批量操作主机...

    有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练,本篇演示用Python写一个批量操作主机的工具 ...

最新文章

  1. USB_HID C#测试例程
  2. cookie关键字_我遇过的最难的Cookie问题
  3. python代码实现归并排序(Merge Sort )
  4. mysql索引查2遍_mysql索引优化查询
  5. 《每日一题》290. Word Pattern
  6. 《犯罪心理学》读书笔记(part8)--犯罪心理的主观差异(中下)
  7. 64位Ubuntu kylin 16.04搭建nfs网络文件系统
  8. Java8使用 Optional 处理 null
  9. 操作系统短作业优先(SJF)调度算法
  10. static静态属性 java 1614870751
  11. xml文件导入wps_WPS2016文档怎么保存为XML格式?
  12. 2013年思科万物互联IoE十大见解
  13. c语言如何扩大字体,C语言图形汉字及放大显示程序
  14. 从ext2文件系统上读出超级块
  15. oracle学习资料大全
  16. Python + ElasticSearch:轻松玩转跨越千年的两百三十万条地震数据
  17. php5市场占有率,javascript,php_目前国内浏览器的市场占有率?,javascript,php,html,html5,css - phpStudy...
  18. 正则匹配以XXX开头的,XXX结束的
  19. 学习树莓派的几个推荐站点
  20. win10关闭快速启动_内存占用率过高怎么办?Win10电脑内存占用率很高的原因和解决方法...

热门文章

  1. centors7 和 win7 修改开机顺序
  2. MyBatis3一对一,一对多
  3. 自己封装的一个模拟下拉列表的插件
  4. 通过Rman catalog 创建及管理Oracle数据库备份
  5. 2008-03-17 淋湿的心情
  6. 怎样才算优秀的xyz员
  7. 嵊州D1T1 总统先生,一路走好!
  8. 使用fastadmin的页面跳转模板
  9. ionic3 百度地图插件定位 问题
  10. nginx配置中文域名解析