10968134正文 52.puppet自动化运维工具
puppet自动化运维工具
Puppet是一款运维自动化工具,在一些大型的互联网企业,它可以针对多台服务器进行统一操作,如统一部署软件,进行统一上线维护等,意思就是说在一台linux服务器上所部署的操作,会通过puppet同步到其他linux服务器的一款强大工具。
Puppet使用的端口是8139
搭建puppetmaster:
v 规划服务器主机名
# 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
v 服务器时间同步
#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
v 安装ruby
# yum -y install ruby
#ruby -v
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
v 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客户端:
v 规划服务器主机名
# 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
v 同步服务时间
# ntpdate 1.1.1.128
v 安装ruby安装工具
# yum -y install ruby
# ruby -v
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
v 在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分发部署:
v 创建必要目录
#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模块的文件发布目录
v 创建模块配置文件
# 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 调用上面三个类
}
v 复制已修改好的ssh的配置文件到默认目录
# cp /etc/ssh/sshd_config /etc/puppet/modules/ssh/files/ssh/
#chown puppet /etc/puppet/modules/ssh/files/ssh/sshd_config
v 创建节点配置文件
# vim /etc/puppet/manifests/nodes/ssh.pp
node 'client.test.cn' { 定义客户端入口
include ssh
}
# vim /etc/puppet/manifests/nodes/site.pp 配置节点位置
import "nodes/ssh.pp"
同步方法:
v 客户端主动拉取
#puppet agent -t
v 服务器推送同步
2 客户端
# 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
2 服务端
#puppet kick client.test.cn
本文转自 触动的风 51CTO博客,原文链接:http://blog.51cto.com/10978134/1945803
10968134正文 52.puppet自动化运维工具相关推荐
- 52.puppet自动化运维工具
puppet自动化运维工具 Puppet是一款运维自动化工具,在一些大型的互联网企业,它可以针对多台服务器进行统一操作,如统一部署软件,进行统一上线维护等,意思就是说在一台linux服务器上所部署的操 ...
- puppet自动化运维工具安装配置
转自:http://369369.blog.51cto.com/319630/785895/ 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.h ...
- 自动化运维工具——puppet详解(二)
自动化运维工具--puppet详解(二) 目录 一.class 类 1)什么是类? 2)带有参数的类 3)类的继承 1.新增属性 2.新增原有值 3.修改原有值 4.整体调用父类,并重写部分值 二.模 ...
- 自动化运维工具Puppet(管理资源)
接上文<自动化运维工具Puppet>http://kaliarch.blog.51cto.com/8966921/1973736 利用模块与模版管理agent端资源 一.模块管理 环境安装 ...
- Ansible、Puppet、SaltStac等4种常见的自动化运维工具全解析
运维目标有三个阶段,第一是追求稳定性,第二是追求标准化,第三是追求自动化.对于第三阶段来说,什么是运维自动化呢?简单地讲,运维自动化就是将日常重复性工作按照事先设定好的规则,在一定时间范围内自动化运行 ...
- 自动化运维工具——【ansible】——从菜鸟到菜鸟
一.ansible详解 1.1.什么是ansible ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric ...
- ansible——自动化运维工具
目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ansible 执行流程 ansible 命 ...
- 自动化运维工具Ansible
ansible简介: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批 ...
- 轻量级自动化运维工具Fabric的安装与实践
一.背景环境 在运维工作中,经常会遇到重复性的劳动,这个时候为了效率就必须要使用自动化运维工具. 这里我给大家介绍轻量级自动化运维工具Fabric,Fabric是基于Python语言开发的,是开发同事 ...
- python开发web运维工具_【实战小项目】python开发自动化运维工具--批量操作主机...
有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练,本篇演示用Python写一个批量操作主机的工具 ...
最新文章
- USB_HID C#测试例程
- cookie关键字_我遇过的最难的Cookie问题
- python代码实现归并排序(Merge Sort )
- mysql索引查2遍_mysql索引优化查询
- 《每日一题》290. Word Pattern
- 《犯罪心理学》读书笔记(part8)--犯罪心理的主观差异(中下)
- 64位Ubuntu kylin 16.04搭建nfs网络文件系统
- Java8使用 Optional 处理 null
- 操作系统短作业优先(SJF)调度算法
- static静态属性 java 1614870751
- xml文件导入wps_WPS2016文档怎么保存为XML格式?
- 2013年思科万物互联IoE十大见解
- c语言如何扩大字体,C语言图形汉字及放大显示程序
- 从ext2文件系统上读出超级块
- oracle学习资料大全
- Python + ElasticSearch:轻松玩转跨越千年的两百三十万条地震数据
- php5市场占有率,javascript,php_目前国内浏览器的市场占有率?,javascript,php,html,html5,css - phpStudy...
- 正则匹配以XXX开头的,XXX结束的
- 学习树莓派的几个推荐站点
- win10关闭快速启动_内存占用率过高怎么办?Win10电脑内存占用率很高的原因和解决方法...