Linux(Unix)系统自动化运维方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux(Unix)系统自动化运维方案
更新时间: 2010年4月16日
LBA起源
由于本人运维着上百台Linux服务器,通常要对这些机器进行同样的配置,譬如添加用户,设置本机IP。以前都是临时写一些脚本实现某一次的系统配置。可是这样每次配置都要重新写/修改脚本,我很烦躁这样的工作,所以我想有没有这么一个工具能够替代人为批量配置了?我找到了cfengine
(),这是个非常好的自动化配置工具,但是其配置非常复杂,门槛比较高。但我有幸在腾讯工作过,在那里我可以使用echo写的abs(shell实现的自动化脚本)实现我的需求。目前离开腾讯了,而我的需求没有改变,所以我就决定自己用perl重写abs并命名为LBA(Linux Batch Automation)Linux批量自动化!Lba借鉴了abs的大部分功能,并添加文件校验和并行处理的功能。Lba非常简单,只要你懂基本的shell就可以使用,当然如果要明白lba是怎么干活的,你必须的懂点perl。该项目还处于设计阶段,下面是详细介绍及其功能简介.
关于LBA:
lba(Linux Batch Automation)是一个在Linux系统下实现对远程主机批量自动化操作的perl 脚本。主要功能有远程批量执行命令,批量双向传输文件。其原理为依次登陆机器,然后执行相应脚本/
系统命令,从而完成系统运维和文件传输等任务。该脚本仅为一个自动登陆主机,自动执行命令,自动传输文件的工具(平台)。那么该脚本能完成什么运维任务了?这完全取决于你的系统命令/脚本!
LBA功能简介:
1.通过sshpass模块实现自动化登陆远程主机
2.配置机器IP列表,登陆端口,登陆密码
3.配置远程主机上需要执行的命令/脚本
4.指定要传输的文件,传输方向(下载/上传)
5.超时配置,定义命令执行超时时间和文件传输超时时间
6.定义要执行运维的黑白主机名单
7.配置文件中支持变量,方便根据的需求对时间,ip等参选进行扩展
8.支持从配置文件读取密码和手工读取密码二种登陆模式
9.支持文件传输时限速和md5校验
10.详细的日志输出
LBA组成部分:
lba.pl 主程序,解析配置,调用其他程序
sshpass 实现自动登录功能,远程执行命令,文件传输模块
lba.conf 主配置文件,配置要执行的命令/脚本,文件传输等
ip.conf 配置要运维的主机,可配置IP,端口,密码,其他要传递的变量参数aviod.ip IP黑名单
aviod.pwd 密码黑名单
LBA下载:
lba-1.00.tar
LBA用法:
1.安装sshpass
#tar zxvf sshpass-1.04.tar.gz
#./configure
#make
#make install
2.perl模块安装
#perl -MCPAN -e 'install Getopt::Long
#perl -MCPAN -e 'install File::Copy'
#perl -MCPAN -e 'install Tie::File'
#perl -MCPAN -e 'install File::Basename'
3.编辑ip.conf和lba.conf,实例:
#cat ip.conf
1.1.1.1 passwd1 22 web1 i386
2.2.2.2 passwd2 22 web2 i386
#cat lba.conf
com:::mkdir -p /usr/local/#YYYY##MM##DD#
file:::/root/sshpass-1.04.tar.gz #IP#:/usr/local/#YYYY##MM##DD#/ push 4.执行Linux批量自动化部署
#./lba -c lba.conf -i ip.conf