半自动化运维之快速连接到指定环境(一)

在大量的分布式环境中,可能存在着大量的主机配置,ip配置,数据库实例配置,甚至操作系统用户,数据库用户密码也不同,这个时候如果记录在10条左右还能应付,但是如果给你几百个这样的环境,每次都需要先查找对应的操作系统用户,主机名或者IP就显得很麻烦,尽管已经设置了ssh信任连接。但是还是需要你知道用户名的前提下来操作。
对于数据库的连接也是如此,你可以使用tnsping来得到对应的主机名,但是还需要费些功夫在查找对应的数据库用户名密码上,因为知道主机名可能变得没有那么重要,我们可能只需要在客户端连接即可。
如果要想把这些操作变为一个更快捷轻松的方式,使用配置文件就是一个不错的选择,有很多自动化实现脚本是把这些配置信息放在数据库表中,在需要的时候查取,过滤等等。
其实我们也可以在配置文件中进行信息的简单过滤就可以避免去连接数据库(因为数据库环境也有可能不可用)
这个时候使用awk就是一个不错的选择。其实sed+awk能够实现很多复杂的功能,我就次抛砖引玉,做一个粗泛的例子来说明一下。
假设我们使用了配置文件hosts.lst
内容如下:
oel1 192.168.27.130 TEST11G ora11g n1 n1
oel1 192.168.27.130 DG11G ora11g  n1 n1  
oel2 192.168.28.131 ORA11G ora11g n1 n1

分别代表的含义就是主机名,主机Ip地址,数据库实例名,操作系统用户,数据库用户名,数据库用户密码
假设我们只知道数据库实例,这种场景可能比较多。我们只是想连接到指定的数据库实例,这个时候使用sqlplus即可。
又或者我们知道主机名和数据库实例名,我们需要连接到服务器上去做一些操作,就可以使用ssh来完成,ssh信任关系是需要提前配置的。
我们可以使用如下的脚本来完成这两个功能,当然继续扩展也是可以的。
if [ $# -eq 1 ]
then
cc_inst=$1
cat hosts.lst |awk '
BEGIN{
IGNORECASE=1
cc_inst="'$cc_inst'"
cc_index=1
}
{
if ($3== cc_inst )
{
print cc_index,$1,$2, $3,$4,  "\n sqlplus " $5"/"$6"@"$3
cc_index=cc_index+1
}
}'
fi

if [ $# -eq 2 ]
then
cc_hosts=$1
cat hosts.lst |awk '
BEGIN{
IGNORECASE=1
cc_inst="'$2'"
cc_hosts="'$cc_hosts'"
cc_index=1
}
{
if ($1== cc_hosts && $3==cc_inst)
{
print cc_index,$1,$2, $3,$4,  "\n ssh  " $4"@"$1
cc_index=cc_index+1
}
}'
fi

简单演示一下。
比如我们需要连接至TEST11G这个数据块实例。
$ ksh con.sh test11g
1 oel1 192.168.27.130TEST11G ora11g 
 sqlplus n1/n1@TEST11G

比如我们知道主机名为oel1,数据库实例为test11g
$ ksh con.sh oel1 test11g
1 oel1 192.168.27.130TEST11G ora11g 
 ssh  ora11g@oel1

如果观察仔细,会发现其实这个过滤中已经设置了大小写不敏感。对于这两个功能是通过输入参数来进行区分的,如果输入参数为1个,即进行第一个场景的处理,如果为2个,则进行主机名和数据库实例名的过滤和处理。

时间: 2024-07-30 21:00:14

半自动化运维之快速连接到指定环境(一)的相关文章

半自动化运维之服务器信息维护

在很多的时候,随着工作的持续开展,可能会接手更多的服务器资源,这个时候我们手里就不但是一两台服务器那么简单,可能几十个,上百个,甚至上千个,这个时候服务器信息的维护就变得额外重要,抛开业务线的规划,对于DBA来说,掌握服务器的信息,做到知根知底,才能在问题发生的时候合理处理问题. 服务器信息可以分成几个方面来看,比如操作系统情况,内核版本,硬盘,内存,空间使用情况,累计运行时间,数据库实例运行时间,系统中的swap争用情况等等,尽可能根据实际的情况进行一些维度的划分和细粒度的归纳. 比如说在生产

Linux集群和自动化运维

Linux/Unix技术丛书 Linux集群和自动化运维 余洪春 著 图书在版编目(CIP)数据 Linux集群和自动化运维/余洪春著. -北京:机械工业出版社,2016.8 (Linux/Unix技术丛书) ISBN 978-7-111-54438-8 I. L- II.余- III. Linux操作系统 IV. TP316.89 中国版本图书馆CIP数据核字(2016)第176055号 Linux集群和自动化运维 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037

优云蒋君伟:自动化运维成本仍然很高

9月10日-11日,上海光大国际会展中心隆重举办了"2017上海站CNUTCon全球运维技术大会".本次大会的主题是"智能时代的新运维",各个公司为观众带来了他们关于该主题的思考,并分享了他们的实践经历.InfoQ有幸邀请了杭州优云软件有限公司的产品副总裁蒋君伟老师接受我们的采访.谈到对自动化运维未来的展望,蒋老师表示自动化运维必然是大势所趋,但是因为相关技术债务的存在,自动化运维的成本还很高.那优云自己的技术与产品是如何去做高效运维的呢?本次采访带你了解一二. I

Garena黄智凯:Docker构建自动化运维

文章讲的是Garena黄智凯:Docker构建自动化运维,本文根据[2016 第七届中国数据库技术大会](微信搜索DTCC2014,关注关注中国数据库技术大会公众号)现场演讲嘉宾黄智凯老师分享内容整理而成.录音整理及文字编辑IT168@ZYY@老鱼 讲师简介 来自新加坡最大的互联网公司Garena,曾就职于新浪和奇虎360,DBA背景成长的他同时一直致力于运维平台自动化的建设和创新 正文 大家好,我是来自Garena公司的黄智凯,大家可能对Garena比较陌生,Garena最开始做游戏运营,现在

新浪微博平台自动化运维演进之路

内容来源:2016年12月16日,微博产品资深运维架构师王关胜在"GIAC全球互联网架构大会"进行<新浪微博平台自动化运维演进之路>演讲分享.IT大咖说作为独家视频合作方,经主办方和讲者审阅授权发布. 阅读字数: 2557 用时: 4分钟 点击嘉宾演讲视频观看 Sina Weibo业务介绍 微博业务简介 微博平台是属于偏后端的一个产品,它所提供的服务就是固定量的接口,比如信息流里的接口.用户接口.关系接口等等. 微博核心业务 微博最核心的产品就是信息流,以信息流为中心出发,

自动化运维工具ansible的使用详细教程_服务器其它

一.ansible简介 1.ansible ansible是新出现的自动化运维工具,基于Python研发.糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能.仅需在管理工作站上安装ansible程序配置被管控主机的IP信息,被管控的主机无客户端.ansible应用程序存在于epel(第三方社区)源,依赖于很多python组件.主要包括: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:指定操

双11黑科技,阿里百万级服务器自动化运维系统StarAgent揭秘

导读:还记得那些年我们半夜爬起来重启服务器的黑暗历史吗?双11期间,阿里巴巴百万量级主机管理能安全.稳定.高效,如丝般顺滑是如何做到的?阿里巴巴运维中台技术专家宋意,首次直播揭秘阿里IT运维的基础设施StarAgent,详细分析StarAgent是如何支持百万级规模服务器管控?如何像生活中的水电煤一样,做好阿里运维的基础设施平台? 嘉宾介绍 宋健(宋意):阿里巴巴运维中台技术专家.工作10年一直专注在运维领域,对于大规模运维体系.自动化运维有着深刻的理解与实践.2010年加入阿里巴巴,目前负责基

有赞MySQL自动化运维之路—ZanDB

一.前言 在互联网时代,业务规模常常出现爆发式的增长.快速的实例交付,数据库优化以及备份管理等任务都对DBA产生了更高的要求,单纯的凭借记忆力去管理那几十套DB已经不再适用.那么如何去批量管理这些实例的备份.元数据.定时脚本和快速实例交付就成了急需解决的的问题. 二.数据库的标准化 在实现MySQL的自动化运维的过程中,最痛苦的无非是目录的不统一,配置文件的混乱以及DB主机的不标准,而这些不标准的环境会让自动化运维的路途荆棘重重.所以首先我们将相应的DB主机以及目录做了标准化,将以前不符合的标准

自动化运维之 Puppet 实战

 随着IT行业的迅猛发展,传统的运维方式靠大量人力比较吃力,近几年自动化运维管理快速的发展,得到了很多IT运维人员的青睐,一个完整的自动化运维包括系统安装.配置管理.服务监控三个方面.那今天咱们大家一起来学习一下Puppet实际运维中的案例.仅供参考,欢迎大家提更多的意见! 一.应用背景 某公司新到500台服务器,需要安装Linux系统,并部署上线以及后期的管理配置.对于系统安装,这个时候肯定得采用批量安装的,常见批量安装方式有大家熟知的Kickstart和Cobbler,具体配置方法,网上也有