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

简介: 在大量的分布式环境中,可能存在着大量的主机配置,ip配置,数据库实例配置,甚至操作系统用户,数据库用户密码也不同,这个时候如果记录在10条左右还能应付,但是如果给你几百个这样的环境,每次都需要先查找对应的操作系统用户,主机名或者IP就显得很麻烦,尽管已经设置了ssh信任连接。
在大量的分布式环境中,可能存在着大量的主机配置,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个,则进行主机名和数据库实例名的过滤和处理。

目录
相关文章
|
8月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
1217 62
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
数据采集 机器学习/深度学习 人工智能
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
1289 0
|
8月前
|
人工智能 运维 监控
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
286 17
|
9月前
|
运维 Linux 网络安全
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
267 4
|
10月前
|
人工智能 运维 安全
运维老哥的救星?AI 驱动的自动化配置管理新趋势
运维老哥的救星?AI 驱动的自动化配置管理新趋势
434 11
|
12月前
|
机器学习/深度学习 人工智能 运维
运维不背锅,从“自动修锅”开始:AI自动化运维是怎么回事?
运维不背锅,从“自动修锅”开始:AI自动化运维是怎么回事?
669 49
|
11月前
|
运维 Prometheus 监控
系统崩了怪运维?别闹了,你该问问有没有自动化!
系统崩了怪运维?别闹了,你该问问有没有自动化!
298 9
|
11月前
|
机器学习/深度学习 运维 监控
智能运维Agent:自动化运维的新范式
在数字化转型浪潮中,智能运维Agent正重塑运维模式。它融合人工智能与自动化技术,实现从被动响应到主动预防的转变。本文详解其四大核心功能:系统监控、故障诊断、容量规划与安全响应,探讨如何构建高效、可靠的自动化运维体系,助力企业实现7×24小时无人值守运维,推动运维效率与智能化水平全面提升。
2376 0
|
11月前
|
运维 监控 应用服务中间件
运维打铁: Ruby 脚本在运维自动化中的应用探索
Ruby 是一种简洁、动态类型的编程语言,适合运维自动化任务。本文介绍了其在服务器配置管理、定时任务执行和日志分析处理中的应用,并提供了代码示例,展示了 Ruby 在运维自动化中的实际价值。
500 2