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

安装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

时间: 2024-10-07 08:41:25

52.puppet自动化运维工具的相关文章

Puppet Saltstatck Ansible 自动化运维工具对比

最近尝试安装了一下salt statck就对自动化工具感兴趣了点所以找了一些资料入门下面总结一下希望和看到这篇文章一起探索自动化运维的世界.                              --- 小 Q ------------------------------------------------------------------------------------------------------ 自动化运维就是为减少重复又枯燥的工作而建立起来的流程更能减少失误及时报警并恢复

Puppet:自动化运维工具!!!

项目背景: 随着业务的增长,机器数量的增多,需要维护的信息扩张,我们需要一个强大的自动化运维工具,来帮我们减轻压力! 实验环境: vmware workstation 11 centos6.5的系统下 服务器master:ip:192.168.0.14  主机名:Puppet   防火墙关闭  setenforce 0 服务器agent:ip:192.168.0.21  主机名:ansible.client.com   防火墙关闭  setenforce 0 SecureCRT (ssh远程连接

自动化运维工具Ansible架构部署应用及playbooks简单应用

在日常服务器运维中,我们经常要配置相同的服务器配置,前期我们都是一台一台的去配置,这种方法操作主要应对于服务器数量不多且配置简单的情况还可以继续这样操作,如果我们后期维护几百服务器或者几万服务器呢? 我应该怎样去快速配置服务器呢?如果需要手动的每台服务器进行安装配置将会给运维人员带来许多繁琐而又重复的工作同时也增加服务器配置的异常,至此自动化运维工具解决我们的瓶颈---Ansible工具. Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfeng

自动化运维工具ansible的基本应用

在很多场景中我们都需要在多个主机上执行相同的命令或者是做相同的配置工作,此时,为了简化操作,我们可以借助一些自动化的工具来完成我们的需求,这种工具我们称之为自动化运维工具.ansible就是其中之一,下面我们就来用ansible来实现一些简单操作. 下面是ansible可以实现很多工具的功能,框架图如下所示:ansible不能实现操作系统的安装 ansible作者就是早期puppet和func的维护者之一,因为ansible充分吸取了puppet和func的优势,又力图避免他们的劣势. OS P

自动化运维工具ansible详细介绍以模块的使用

1.anisble 简介anisble 是一款自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible只是提供一种框架.主要包括:(1)连接插件:负责和被监控端实现通信:(2)host inventory :指定操作的主机,是一个配置文件里面定义监控的主机(3)各种模块核心模块,command 模块,自定义模块.(4)借助于插件完成记录日志邮件等功能:(5)playboo

自动化运维工具-Ansible基础

目录 自动化运维工具-Ansible基础 自动化运维的含义 Ansible 基础及安装 Ansible的架构 Ansible的执行流程 ansible配置文件 ansible Inventory(主机清单文件) Ansible ad-hoc ansible常用模块 实战 自动化运维工具-Ansible基础 自动化运维的含义 1.手动运维时代 2.自动化运维时代 3.自动化运维工具给运维带来的好处 Ansible 基础及安装 1.什么是Ansible Ansible是一个自动化统一配置管理工具 2

自动化运维工具介绍

运维目标有三个阶段,第一是追求稳定性,第二是追求标准化,第三是追求自动化.对于第三阶段来说,什么是运维自动化呢?简单地讲,运维自动化就是将日常重复性工作按照事先设定好的规则,在一定时间范围内自动化运行,而不需要人工参与.接下来简单介绍运维自动化工具,要了解运维平时用到的自动化工具,就需要了解运维人员的日常工作有哪些. 一.运维的日常工作 运维的日常工作可以总结为以下四个部分,分别是: (1) 系统安装 (2) 应用程序配置(Configuration) (3) 命令执行与控制(Command a

自动化运维工具之ansible

ansible ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架. 主要包括: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:指定

自动化运维工具之ansible的简单应用

ansible: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,例如shell,copy,ping等,ansible只是提供一种框架.ansible的主要特性: 模块化:调用特定的模块,完成特定任务 基于Python语言实现,由Pa