mirror of
https://github.com/kneutron/ansitest.git
synced 2025-01-16 04:42:55 +08:00
Add files via upload
This commit is contained in:
parent
702c12116a
commit
258be69aea
336
server-naming-translator-general.sh
Normal file
336
server-naming-translator-general.sh
Normal file
@ -0,0 +1,336 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Author: dave.bechtel kingneutron@gmail , 2022
|
||||
# Utility script to translate server names to cloud service / physical location and type (sandbox, dev, prod, etc)
|
||||
# Current version: 1.2 2022.0119.1300
|
||||
# Requires: bash v3.2.57 or later
|
||||
|
||||
# NOTE set to 0 to disable "gt<1 ae<2 scg<3 d<4 01<5" helpful breakdown output
|
||||
debugg=1
|
||||
[ $debugg -gt 1 ] && set -e # Exit at first error
|
||||
|
||||
# failexit.mrg
|
||||
function failexit () {
|
||||
echo '! Something failed! Code: '"$1 $2" # code # (and optional description)
|
||||
exit $1
|
||||
}
|
||||
|
||||
#echo "** Server Translator -- Author: dave.bechtel kingneutron@gmail **"
|
||||
|
||||
# Azure cloud
|
||||
# 3 chars for location, 3 for app, 3 for function, 2 for environment, 2 for server count
|
||||
# ex. zgq xym mgm cs 01 == "Azure Gov Qual - Xymon - Management - Customer Services - 01"
|
||||
# 1 2 3 4 5
|
||||
zgq="Azure Gov Qual"
|
||||
zgb="Azure Gov Bensonville"
|
||||
|
||||
sb="Sandbox"
|
||||
de="Development"
|
||||
np="NonProd"
|
||||
cs="Customer Services"
|
||||
pr="Production"
|
||||
qa="Quality Assurance"
|
||||
|
||||
# AWS cloud
|
||||
# 3 for location, 3 for app, 3 for function, 2 for env, 2 for server count
|
||||
# ex. aw1 xym mgm ss 01 == "AWS Virginia - Xymon - Management - Shared Services - 01"
|
||||
aw1="AWS Virginia"
|
||||
|
||||
ss="Shared Services"
|
||||
te="Test"
|
||||
|
||||
# On-prem physical / VM
|
||||
# 2 for location, 2 for app owner, 3 for function, 1 for env, 2 for server count
|
||||
# Prefixes
|
||||
ch="Chicago (on-prem)"
|
||||
sa="San Antonio (on-prem)"
|
||||
|
||||
# Appowner
|
||||
db="Database"
|
||||
lx="Linux"
|
||||
|
||||
# server function
|
||||
adm="AHE LINUX Gateway"
|
||||
app="Application"
|
||||
azs="Replication"
|
||||
cfj="Confluence / JIRA"
|
||||
dbe="Database"
|
||||
dbg="Oracle Dataguard"
|
||||
gms="Golden Master Server"
|
||||
mgm="Management"
|
||||
oem="OEM"
|
||||
web="GTN Webserver"
|
||||
xym="XYMon Monitoring"
|
||||
|
||||
# Env
|
||||
s="Sandbox"
|
||||
d="Development"
|
||||
t="Test"
|
||||
q="QA"
|
||||
p="Production"
|
||||
h="Training"
|
||||
|
||||
|
||||
#############################
|
||||
# Functions
|
||||
function transazure () {
|
||||
# arg=zgqxymmgmcs01
|
||||
# 111
|
||||
# 0123456789012
|
||||
# Print a helpful breakdown of parts
|
||||
[ $debugg -gt 0 ] && echo ${arg:0:3}'<1 '${arg:3:3}'<2 '${arg:6:3}'<3 '${arg:9:2}'<4 '${arg:11:2}'<5 '
|
||||
#zgq<1 xym<2 mgm<3 cs<4 01<5
|
||||
|
||||
part1=${arg:0:3}
|
||||
part2=${arg:3:3}
|
||||
part3=${arg:6:3}
|
||||
part4=${arg:9:2}
|
||||
part5=${arg:11:2}
|
||||
|
||||
case "$part1" in
|
||||
zgq )
|
||||
buildstr="$arg = $zgq -" ;;
|
||||
zgb )
|
||||
buildstr="$arg = $zgb -" ;;
|
||||
esac
|
||||
|
||||
# 1-offs
|
||||
case "$part2" in
|
||||
bfg )
|
||||
buildstr="$buildstr DoomBFG -" ;;
|
||||
# xym )
|
||||
# buildstr="$buildstr $xym -" ;;
|
||||
# oem )
|
||||
# buildstr="$buildstr $oem -" ;;
|
||||
* )
|
||||
# Fallthru
|
||||
# REF: https://unix.stackexchange.com/questions/23111/what-is-the-eval-command-in-bash
|
||||
# see if section EVALuates to already-defined var, populate if result = not blank
|
||||
|
||||
eval tmptest='$'$part2; [ "$tmptest" = "" ] ||buildstr="$buildstr $tmptest -"
|
||||
esac
|
||||
|
||||
# case "$part3" in
|
||||
# dbe )
|
||||
# buildstr="$buildstr $dbe -" ;;
|
||||
# mgm )
|
||||
# buildstr="$buildstr $mgm -" ;;
|
||||
# esac
|
||||
|
||||
eval tmptest='$'$part3; [ "$tmptest" = "" ] ||buildstr="$buildstr $tmptest -"
|
||||
|
||||
# case "$part4" in
|
||||
# sb )
|
||||
# buildstr="$buildstr $sb -" ;;
|
||||
# de )
|
||||
# buildstr="$buildstr $de -" ;;
|
||||
# np )
|
||||
# buildstr="$buildstr $np -" ;;
|
||||
# cs )
|
||||
# buildstr="$buildstr $cs -" ;;
|
||||
# pr )
|
||||
# buildstr="$buildstr $pr -" ;;
|
||||
# qa )
|
||||
# buildstr="$buildstr $qa -" ;;
|
||||
# esac
|
||||
|
||||
eval tmptest='$'$part4; [ "$tmptest" = "" ] ||buildstr="$buildstr $tmptest -"
|
||||
|
||||
buildstr="$buildstr $part5"
|
||||
echo "$buildstr"
|
||||
|
||||
exit 0;
|
||||
}
|
||||
|
||||
function transamazon () {
|
||||
# arg=aw1xymmgmss99
|
||||
# 111
|
||||
# 0123456789012
|
||||
[ $debugg -gt 0 ] && echo ${arg:0:3}'<1 '${arg:3:3}'<2 '${arg:6:3}'<3 '${arg:9:2}'<4 '${arg:11:2}'<5 '
|
||||
#aw1<1 xym<2 mgm<3 ss<4 01<5
|
||||
|
||||
part1=${arg:0:3}
|
||||
part2=${arg:3:3}
|
||||
part3=${arg:6:3}
|
||||
part4=${arg:9:2}
|
||||
part5=${arg:11:2}
|
||||
|
||||
case "$part1" in
|
||||
aw1 )
|
||||
buildstr="$arg = $aw1 -" ;;
|
||||
esac
|
||||
|
||||
# case "$part2" in
|
||||
# adm )
|
||||
# buildstr="$buildstr $adm -" ;;
|
||||
# xym )
|
||||
# buildstr="$buildstr $xym -" ;;
|
||||
# cfj )
|
||||
# buildstr="$buildstr $cfj -" ;;
|
||||
# esac
|
||||
|
||||
eval tmptest='$'$part2; [ "$tmptest" = "" ] ||buildstr="$buildstr $tmptest -"
|
||||
|
||||
# 1-offs
|
||||
case "$part3" in
|
||||
# mgm )
|
||||
# buildstr="$buildstr $mgm -" ;;
|
||||
# app )
|
||||
# buildstr="$buildstr $app -" ;;
|
||||
web )
|
||||
buildstr="$buildstr Webserver -" ;;
|
||||
* )
|
||||
# Fallthru
|
||||
eval tmptest='$'$part3; [ "$tmptest" = "" ] ||buildstr="$buildstr $tmptest -"
|
||||
|
||||
esac
|
||||
|
||||
# case "$part4" in
|
||||
# sb )
|
||||
# buildstr="$buildstr $sb -" ;;
|
||||
# de )
|
||||
# buildstr="$buildstr $de -" ;;
|
||||
# np )
|
||||
# buildstr="$buildstr $np -" ;;
|
||||
# cs )
|
||||
# buildstr="$buildstr $cs -" ;;
|
||||
# ss )
|
||||
# buildstr="$buildstr $ss -" ;;
|
||||
# pr )
|
||||
# buildstr="$buildstr $pr -" ;;
|
||||
# te )
|
||||
# buildstr="$buildstr $te -" ;;
|
||||
# esac
|
||||
|
||||
eval tmptest='$'$part4; [ "$tmptest" = "" ] ||buildstr="$buildstr $tmptest -"
|
||||
|
||||
buildstr="$buildstr $part5"
|
||||
echo "$buildstr"
|
||||
exit 0;
|
||||
}
|
||||
|
||||
function transonprem () {
|
||||
# arg=chdbadmp99
|
||||
# 1
|
||||
# 01234567890
|
||||
[ $debugg -gt 0 ] && echo ${arg:0:2}'<1 '${arg:2:2}'<2 '${arg:4:3}'<3 '${arg:7:1}'<4 '${arg:8:2}'<5 '
|
||||
#ch<1 db<2 adm<3 p<4 01<5
|
||||
|
||||
part1=${arg:0:2}
|
||||
part2=${arg:2:2}
|
||||
part3=${arg:4:3}
|
||||
part4=${arg:7:1}
|
||||
part5=${arg:8:2}
|
||||
|
||||
#[ $debugg -gt 0 ] && echo "part1=$part1..gt=$gt"
|
||||
case "$part1" in
|
||||
ch )
|
||||
buildstr="$arg = $ch -" ;;
|
||||
sa )
|
||||
buildstr="$arg = $sa -" ;;
|
||||
esac
|
||||
|
||||
# case "$part2" in
|
||||
# db )
|
||||
# buildstr="$buildstr $db -" ;;
|
||||
# lx )
|
||||
# buildstr="$buildstr $lx -" ;;
|
||||
# esac
|
||||
|
||||
eval tmptest='$'$part2; [ "$tmptest" = "" ] ||buildstr="$buildstr $tmptest -"
|
||||
|
||||
# case "$part3" in
|
||||
# azs )
|
||||
# buildstr="$buildstr $azs -" ;;
|
||||
# dbg )
|
||||
# buildstr="$buildstr $dbg -" ;;
|
||||
# gms )
|
||||
# buildstr="$buildstr $gms -" ;;
|
||||
# web )
|
||||
# buildstr="$buildstr $web -" ;;
|
||||
# esac
|
||||
|
||||
eval tmptest='$'$part3; [ "$tmptest" = "" ] ||buildstr="$buildstr $tmptest -"
|
||||
|
||||
# case "$part4" in
|
||||
# s )
|
||||
# buildstr="$buildstr $s -" ;;
|
||||
# d )
|
||||
# buildstr="$buildstr $d -" ;;
|
||||
# t )
|
||||
# buildstr="$buildstr $t -" ;;
|
||||
# q )
|
||||
# buildstr="$buildstr $q -" ;;
|
||||
# p )
|
||||
# buildstr="$buildstr $p -" ;;
|
||||
# h )
|
||||
# buildstr="$buildstr $h -" ;;
|
||||
# esac
|
||||
|
||||
eval tmptest='$'$part4; [ "$tmptest" = "" ] ||buildstr="$buildstr $tmptest -"
|
||||
|
||||
buildstr="$buildstr $part5"
|
||||
echo "$buildstr"
|
||||
exit 0;
|
||||
}
|
||||
|
||||
|
||||
#############################
|
||||
# MAIN
|
||||
arg="$1"
|
||||
# ${string:position:length} ## 0-indexed!
|
||||
|
||||
prefix3=${arg:0:3}
|
||||
prefix2=${arg:0:2}
|
||||
|
||||
case "$prefix3" in
|
||||
zgq )
|
||||
transazure ;;
|
||||
zgb )
|
||||
transazure ;;
|
||||
|
||||
aw1 )
|
||||
transamazon ;;
|
||||
esac
|
||||
|
||||
case "$prefix2" in
|
||||
ch )
|
||||
transonprem ;;
|
||||
sa )
|
||||
transonprem ;;
|
||||
|
||||
* )
|
||||
# Fallthru
|
||||
failexit 404 "Unknown server prefix - please add to code or correct input argument"
|
||||
esac
|
||||
|
||||
exit;
|
||||
|
||||
|
||||
# REF: https://tldp.org/LDP/abs/html/string-manipulation.html
|
||||
# REF: https://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_03.html
|
||||
|
||||
# REF: shared drive AHE Unix Onboarding docs "ServerList.txt" and ServerNamingConventions.txt
|
||||
|
||||
# Latest updates at top
|
||||
|
||||
2022.0119 (DONE) IDEA - refactored to use eval, generic version rev
|
||||
# REF: https://unix.stackexchange.com/questions/23111/what-is-the-eval-command-in-bash
|
||||
This saves A LOT on coding, and nearly no update-in-two-places unless 1-offs
|
||||
v1.2
|
||||
|
||||
$ echo $sname
|
||||
ssdsotweb01
|
||||
# 1
|
||||
#01234567890
|
||||
web="Web Server"
|
||||
|
||||
part=${sname:6:3}; echo $part
|
||||
web
|
||||
|
||||
#eval testt=$web; if blank, NOP OR printit
|
||||
eval testt='$'$part; [ "$testt" = "" ] ||echo $testt
|
||||
Web Server
|
||||
|
||||
#=============
|
||||
|
Loading…
x
Reference in New Issue
Block a user