目的:

  shell + ansible + gateone 自动化运维管理:最少的人工干预下,结合运用脚本与第三方工具,保证业务系统7*24小时高效稳定运行;



1、安装环境涉及软件

本次操作系统:Centos 6.5 32/64 进行测试


项目安装软件版本
Python2.6.6
Tornado2.4.1


2、环境部署

 2.1 安装依赖包

 yum install -y python python-pip gcc python-devel setuptool python-pam openssl openssl-devel wget git make gcc-c++ patch pam_radius dtach


 2.2 pip安装软件

 pip install tornado pyopenssl kerberos


 2.3 安装tornado

 wget https://github.com/downloads/liftoff/GateOne/tornado-2.4-1.noarch.rpm

 rpm -ivh tornado-2.4-1.noarch.rpm


 2.4 安装Imaging

 wget //effbot.org/downloads/Imaging-1.1.7.tar.gz

 tar -zxvf Imaging-1.1.7.tar.gz

 cd Imaging-1.1.7

 python setup.py install


 2.5 安装ordereddict

 wget https://pypi.python.org/packages/source/o/ordereddict/ordereddict-1.1.tar.gz#md5=a0ed854ee442051b249bfad0f638bbec --no-check-certificate

 cd ordereddict-1.1

 python setup.py install


 2.6 安装gateone

 wgethttps://github.com/downloads/liftoff/GateOne/gateone-1.1-1.noarch.rpm

rpm -ivh gateone-1.1-1.noarch.rpmGateone


3、启动

默认安装路径为 /opt/gateone

运行gateone: 

/opt/gateone/gateone.py

关闭进程:ctrl+c

首次运行gateone 会在/opt/gateone 下生成 server.conf 配置文件


#如果你想让其后台运行,请使用serveri来启动

/etc/init.d/gateone start



4、web界面登陆

打开web界面输入:https://ip

wKioL1blAZLAFJjTAAI3aZa4m8k512.jpg

同crt或Xshell登陆界面一样

wKioL1blAZThbCsjAAHHMs1d03M033.jpg

登陆成功:可以执行任何命令不需要具备xshell或crt等远程工具操作;

wKiom1blAQ-gFTpJAAJni5uQ3nE864.jpg

支持录像功能,视频回放功能

wKioL1blAsOSH8BUAAZoJ34QmdE027.jpg

wKioL1blAsyi8s_ZAAbTuMd3y0A127.jpg


5、shell+ansible实现运维自动化管理截图


登陆https://ip  增加普通用户,自动执行登陆/切换用户启动脚本

下图shell脚本登陆界面,公司领导要求只针对应用的启动和关闭做管理,傻瓜式操作方式;

wKiom1blBE3DUDJpAAHnDNpxHNc169.jpg

如:执行进程启动,点击1,要求输入独立密码(保证因手误点击错误进行安全验证)

自动输出当前业务下所有应用,输入序列号选择应用:2

自动输出当前应用对应IP地址,并根据主备关系区分前后,2中选择:一,根据序列号(单应用)二,输入0(全部执行)

执行:因个人环境,IP地址均不为真实有效产生报错(测试环境已经通过),根据同一应用启动主备关系,针对系统启动设定10秒区间

wKioL1blBNzxUYN8AARjpaEhTL4642.jpg

1-6操作类似,7:跳板机(就是实现ssh登陆,未部署ssh-keygen,通过脚本定义:IP,USER,PASS,实现点击序列号登陆主机“无需输入密码或者YES”)

wKioL1blBN7A3FsEAAG8XGb052o531.jpg

wKiom1blBFmzpsWHAAIugJ17FZM955.jpg

wKioL1blBOSTxLFBAAIsLdtOFdc718.jpg


PS:shell登陆脚本结合ansible目前根据领导的需求,没有添加额外功能,如需添加远程传输,指定计划任务都可以实现;