ස්ක්‍රිප්ට් භාවිතා කරමින් SecureCRT හි ඇතුල්වීම ස්වයංක්‍රීය කිරීම

ජාල ඉංජිනේරුවන් බොහෝ විට නෝට්පෑඩ් එකක සිට කොන්සෝලය වෙත ඇතැම් කොටස් පිටපත් කිරීමේ/ඇලවීමේ කාර්යයට මුහුණ දෙයි. ඔබ සාමාන්යයෙන් පරාමිති කිහිපයක් පිටපත් කළ යුතුය: පරිශීලක නාමය / මුරපදය සහ වෙනත් දෙයක්. ස්ක්‍රිප්ට් භාවිතය මෙම ක්‍රියාවලිය වේගවත් කිරීමට ඔබට ඉඩ සලසයි. නමුත් ස්ක්‍රිප්ට් ලිවීමේ සහ ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීමේ කාර්යයන් අතින් වින්‍යාස කිරීමට වඩා අඩු කාලයක් ගත විය යුතුය, එසේ නොමැතිනම් ස්ක්‍රිප්ට් නිෂ්ඵල වේ.

මෙම ලිපිය කුමක් සඳහාද? මෙම ලිපිය Fast Start මාලාවෙන් වන අතර බහු උපාංග මත උපකරණ (තනි කාර්යය) සැකසීමේදී ජාල ඉංජිනේරුවන්ගේ කාලය ඉතිරි කර ගැනීම අරමුණු කර ඇත. SecureCRT මෘදුකාංගය සහ බිල්ට් ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීමේ ක්‍රියාකාරිත්වය භාවිතා කරයි.

අන්තර්ගතය

හැඳින්වීම

SecureCRT වැඩසටහනට කොටුවෙන් පිටත ඇති ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීමේ යාන්ත්‍රණයක් ඇත. ටර්මිනල් ස්ක්‍රිප්ට් මොනවාද?

  • ස්වයංක්‍රීය I/O, සහ අවම I/O වලංගුකරණය.
  • සාමාන්‍ය කාර්යයන් ක්‍රියාත්මක කිරීම වේගවත් කිරීම - උපකරණ සැකසුම් අතර විරාම අඩු කිරීම. (දෘඪාංග සඳහා යෙදිය යුතු විධාන කොටස් 3ක් හෝ වැඩි ගණනක් සමඟ එකම දෘඪාංගයේ පිටපත්/අතීත ක්‍රියාවන් සිදු කිරීමට කාලය නිසා ඇති වන විරාමයන් සත්‍ය වශයෙන්ම අඩු කිරීම.)

මෙම ලේඛනය කාර්යයන් ආවරණය කරයි:

  • සරල පිටපත් නිර්මාණය කිරීම.
  • SecureCRT මත ස්ක්‍රිප්ට් ධාවනය කිරීම.
  • සරල සහ උසස් ස්ක්‍රිප්ට් භාවිතා කිරීමේ උදාහරණ. (සැබෑ ජීවිතයෙන් පුහුණු වන්න.)

සරල පිටපත් නිර්මාණය කිරීම.

සරලම ස්ක්‍රිප්ට් භාවිතා කරන්නේ Send සහ WaitForString යන විධාන දෙකක් පමණි. සිදු කරන ලද කාර්යයන් වලින් 90% (හෝ ඊට වැඩි) සඳහා මෙම ක්‍රියාකාරීත්වය ප්‍රමාණවත් වේ.

ස්ක්‍රිප්ට් වලට පයිතන්, ජේඑස්, වීබීඑස් (දෘශ්‍ය මූලික), පර්ල් යනාදිය තුළ ක්‍රියා කළ හැකිය.

Python මීට උදාහරණ

# $language = "Python"
# $interface = "1.0"
def main():
  crt.Screen.Synchronous = True
  crt.Screen.Send("r")
  crt.Screen.WaitForString("name")
  crt.Screen.Send("adminr")
  crt.Screen.WaitForString("Password:")
  crt.Screen.Send("Password")
  crt.Screen.Synchronous = False
main()

සාමාන්‍යයෙන් "*.py" දිගුව සහිත ගොනුවක්

VBS

# $language = "VBScript"
# $interface = "1.0"
Sub Main
  crt.Screen.Synchronous = True
  crt.Screen.Send vbcr
  crt.Screen.WaitForString "name"
  crt.Screen.Send "cisco" & vbcr
  crt.Screen.WaitForString "assword"
  crt.Screen.Send "cisco" & vbcr
  crt.Screen.Synchronous = False
End Sub

සාමාන්‍යයෙන් "*.vbs" දිගුව සහිත ගොනුවක්

ස්ක්‍රිප්ට් ප්‍රවේශයක් භාවිතයෙන් ස්ක්‍රිප්ට් එකක් සාදන්න.

ස්ක්‍රිප්ට් ලිවීමේ ක්‍රියාවලිය ස්වයංක්‍රීය කිරීමට ඔබට ඉඩ සලසයි. ඔබ පිටපතක් ලිවීමට පටන් ගන්න. SecureCRT විධාන සහ පසුකාලීන දෘඪාංග ප්‍රතිචාරය වාර්තා කර ඔබ වෙනුවෙන් නිමි පිටපත පෙන්වයි.

ඒ. පිටපත ලිවීම ආරම්භ කරන්න:
SecureCRT මෙනුව => Script => පටිගත කිරීම ආරම්භ කරන්න
බී. කොන්සෝලය සමඟ ක්රියා සිදු කරන්න (CLI හි වින්යාස කිරීමේ පියවරයන් සිදු කරන්න).
වී. පිටපත ලිවීම අවසන් කරන්න:
SecureCRT මෙනුව => ස්ක්‍රිප්ට් => ස්ක්‍රිප්ට් පටිගත කිරීම නවත්වන්න...
ස්ක්‍රිප්ට් ගොනුව සුරකින්න.

ක්‍රියාත්මක කළ විධාන සහ සුරකින ලද ස්ක්‍රිප්ට් සඳහා උදාහරණ:

ස්ක්‍රිප්ට් භාවිතා කරමින් SecureCRT හි ඇතුල්වීම ස්වයංක්‍රීය කිරීම

SecureCRT මත ස්ක්‍රිප්ට් ධාවනය කිරීම.

ස්ක්‍රිප්ට් නිර්මාණය/සංස්කරණය කිරීමෙන් පසු තාර්කික ප්‍රශ්නයක් පැන නගී: ස්ක්‍රිප්ට් එක යොදන්නේ කෙසේද?
ක්‍රම කිහිපයක් තිබේ:

  • ස්ක්‍රිප්ට් මෙනුවෙන් අතින් ධාවනය වේ
  • සම්බන්ධතාවයෙන් පසු ස්වයංක්‍රීය ආරම්භය (ලොගින් ස්ක්‍රිප්ට්)
  • ස්ක්‍රිප්ට් භාවිතා නොකර ස්වයංක්‍රීයව පිවිසීම
  • SecureCRT හි බොත්තමක් සමඟ අතින් ක්‍රියාරම්භ කිරීම (බොත්තම තවම සාදා SecureCRT වෙත එක් කර නොමැත)

ස්ක්‍රිප්ට් මෙනුවෙන් අතින් ධාවනය වේ

SecureCRT මෙනුව => ස්ක්‍රිප්ට් => ධාවනය කරන්න...
- අවසාන ස්ක්‍රිප්ට් 10 මතක තබා ඇති අතර ඉක්මන් දියත් කිරීම සඳහා ලබා ගත හැකිය:
SecureCRT මෙනුව => Script => 1 "Script ගොනු නාමය"
SecureCRT මෙනුව => Script => 2 "Script ගොනු නාමය"
SecureCRT මෙනුව => Script => 3 "Script ගොනු නාමය"
SecureCRT මෙනුව => Script => 4 "Script ගොනු නාමය"
SecureCRT මෙනුව => Script => 5 "Script ගොනු නාමය"

සම්බන්ධතාවයෙන් පසු ස්වයංක්‍රීය ආරම්භය (ලොගින් ස්ක්‍රිප්ට්)

සුරකින ලද සැසිය සඳහා ස්වයංක්‍රීය ලොගින් ස්ක්‍රිප්ට් සැකසුම් වින්‍යාස කර ඇත: සම්බන්ධතාවය => පිවිසුම් ක්‍රියා => පිවිසුම් ස්ක්‍රිප්ට්

ස්ක්‍රිප්ට් භාවිතා කරමින් SecureCRT හි ඇතුල්වීම ස්වයංක්‍රීය කිරීම

ස්ක්‍රිප්ට් භාවිතා නොකර ස්වයංක්‍රීයව පිවිසීම

SecureCRT හි ඇති ක්‍රියාකාරීත්වය පමණක් භාවිතා කරමින් ස්ක්‍රිප්ට් ලිවීමකින් තොරව මුරපදයේ පරිශීලක නාමය ස්වයංක්‍රීයව ඇතුළත් කළ හැකිය. සම්බන්ධතා සැකසුම් තුළ “සම්බන්ධතාව” => ලොගින් ක්‍රියා => ස්වයංක්‍රීය පිවිසුම - ඔබට මිටි කිහිපයක් පිරවිය යුතුය - එයින් අදහස් කරන්නේ යුගල: “අපේක්‍ෂිත පෙළ” + “මෙම පෙළට යවන ලද අක්ෂර” එවැනි යුගල රාශියක් තිබිය හැකිය. (උදාහරණ: 1 වන යුගලය පරිශීලක නාමය සඳහා රැඳී සිටීම, දෙවන මුරපදය සඳහා රැඳී සිටීම, තෙවන වරප්‍රසාදිත මාදිලියේ විමසුම සඳහා රැඳී සිටීම, වරප්‍රසාදිත මාදිලියේ මුරපදය සඳහා සිව්වන යුගලය.)

Cisco ASA හි ස්වයංක්‍රීය පිවිසුමේ උදාහරණය:

ස්ක්‍රිප්ට් භාවිතා කරමින් SecureCRT හි ඇතුල්වීම ස්වයංක්‍රීය කිරීම

SecureCRT හි බොත්තමක් සමඟ අතින් ක්‍රියාරම්භ කිරීම (බොත්තම තවම සාදා SecureCRT වෙත එක් කර නොමැත)

SecureCRT හි, ඔබට බොත්තමකට ස්ක්‍රිප්ට් එකක් පැවරිය හැක. මෙම කාර්යය සඳහා විෙශේෂෙයන් නිර්මාණය කරන ලද පුවරුවකට බොත්තම එකතු කර ඇත.

ඒ. අතුරු මුහුණතට පැනලයක් එක් කිරීම: SecureCRT මෙනුව => View => බොත්තම් තීරුව
බී. පැනලයට බොත්තමක් එකතු කර ස්ක්‍රිප්ට් එකක් එක් කරන්න. - බොත්තම් තීරුව මත දකුණු-ක්ලික් කර සන්දර්භය මෙනුවෙන් "නව බොත්තම..." තෝරන්න.
වී. "සිතියම් බොත්තම" සංවාද කොටුව තුළ, "ක්රියා" ක්ෂේත්රයේ, "ධාවනය ස්ක්රිප්ට්" ක්රියාව (කාර්යය) තෝරන්න.
බොත්තම සඳහා සිරස්තලයක් සඳහන් කරන්න. බොත්තම් නිරූපකය සඳහා වර්ණය. හරි ක්ලික් කිරීමෙන් සැකසුම් අවසන් කරන්න.

ස්ක්‍රිප්ට් භාවිතා කරමින් SecureCRT හි ඇතුල්වීම ස්වයංක්‍රීය කිරීම

සටහන:

බොත්තම් සහිත පුවරුව ඉතා ප්රයෝජනවත් ක්රියාකාරිත්වයකි.

1. නිශ්චිත සැසියකට ලොග් වූ විට, පෙරනිමියෙන් මෙම ටැබයට විවෘත කළ යුත්තේ කුමන පැනලයද යන්න සඳහන් කළ හැකිය.

2. උපකරණ සමඟ සම්මත ක්රියාවන් සඳහා පූර්ව නිශ්චිත ක්රියාවන් සැකසීමට හැකි වේ: සංදර්ශන අනුවාදය පෙන්වන්න, ධාවන-වින්යාසය පෙන්වන්න, වින්යාසය සුරකින්න.

ස්ක්‍රිප්ට් භාවිතා කරමින් SecureCRT හි ඇතුල්වීම ස්වයංක්‍රීය කිරීම
මෙම බොත්තම්වලට ස්ක්‍රිප්ට් අමුණා නැත. ක්‍රියා මාර්ගය පමණි:

ස්ක්‍රිප්ට් භාවිතා කරමින් SecureCRT හි ඇතුල්වීම ස්වයංක්‍රීය කිරීම
සැකසීම - එවිට සැසියකට මාරු වන විට, බොත්තම් සහිත අවශ්ය පැනලය සැසි සැකසුම් තුළ විවෘත වේ:

ස්ක්‍රිප්ට් භාවිතා කරමින් SecureCRT හි ඇතුල්වීම ස්වයංක්‍රීය කිරීම
පාරිභෝගිකයා ලොගින් වීම සඳහා තනි ස්ක්‍රිප්ට් සැකසීම සහ විකුණුම්කරු සඳහා නිතර විධාන සහිත පැනලය වෙත යාම අර්ථවත් කරයි.

ස්ක්‍රිප්ට් භාවිතා කරමින් SecureCRT හි ඇතුල්වීම ස්වයංක්‍රීය කිරීම
ඔබ Go Cisco බොත්තම එබූ විට, පැනලය Cisco බොත්තම් තීරුව වෙත මාරු වේ.

ස්ක්‍රිප්ට් භාවිතා කරමින් SecureCRT හි ඇතුල්වීම ස්වයංක්‍රීය කිරීම

සරල සහ උසස් ස්ක්‍රිප්ට් භාවිතා කිරීමේ උදාහරණ. (සැබෑ ජීවිතයෙන් පුහුණු වන්න.)

සෑම අවස්ථාවකම පාහේ සරල ස්ක්‍රිප්ට් ප්‍රමාණවත් වේ. නමුත් වරක් මට පිටපත ටිකක් සංකීර්ණ කිරීමට අවශ්ය විය - කාර්යය වේගවත් කිරීමට. මෙම සංකූලතාව පරිශීලකයාගෙන් සංවාද කොටුවක අමතර දත්ත ඉල්ලා ඇත.

සංවාද කොටුවක් භාවිතයෙන් පරිශීලකයාගෙන් දත්ත ඉල්ලා සිටීම

මට දත්ත ඉල්ලීමේ ස්ක්‍රිප්ට් එකේ 2ක් තිබුනා.මේක Hostname එක සහ IP address එකේ 4th octet එක. මෙම ක්‍රියාව සිදු කිරීම සඳහා - මම එය කරන්නේ කෙසේදැයි ගූගල් කර එය SecureCRT (vandyke) හි නිල වෙබ් අඩවියෙන් සොයා ගතිමි. - ක්‍රියාකාරීත්වය prompt ලෙස හැඳින්වේ.

	crt.Screen.WaitForString("-Vlanif200]")
	hostnamestr = crt.Dialog.Prompt("Enter hostname:", "hostname", "", False)
	ipaddressstr = crt.Dialog.Prompt("Enter ip address:", "ip", "", False)
	crt.Screen.Send("ip address 10.10.10.")
	crt.Screen.Send(ipaddressstr)
	crt.Screen.Send(" 23r")
	crt.Screen.Send("quitr")
	crt.Screen.Send("sysname ")
	crt.Screen.Send(hostnamestr)
	crt.Screen.Send("r") 

ස්ක්‍රිප්ටයේ මෙම කොටස අවසාන අෂ්ටකයේ සත්කාරක නාමය සහ අංක ඉල්ලා ඇත. උපකරණ කෑලි 15 ක් තිබූ නිසා. දත්ත වගුවක ඉදිරිපත් කර ඇති අතර, පසුව මම මේසයෙන් අගයන් පිටපත් කර සංවාද පෙට්ටිවලට ඇලවූවෙමි. තව දුරටත් පිටපත ස්වාධීනව වැඩ කළා.

ජාල උපකරණ වෙත FTP පිටපත් කිරීම.

මෙම ස්ක්‍රිප්ට් මගේ විධාන කවුළුව (ෂෙල්) දියත් කර FTP හරහා දත්ත පිටපත් කළේය. අවසානයේදී, සැසිය වසා දමන්න. මේ සඳහා නොට්පෑඩ් භාවිතා කළ නොහැක, මන්ද පිටපත් කිරීමට ඉතා දිගු කාලයක් ගත වන අතර FTP බෆරයේ දත්ත එතරම් කාලයක් ගබඩා නොවනු ඇත:

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("ftp 192.168.1.1r")
	crt.Screen.WaitForString("Name")
	crt.Screen.Send("adminr")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Passwordr")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("binaryr")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("put S5720LI-V200R011SPH016.patr")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("quitr")
	crt.Screen.Synchronous = False
main()

ස්ක්‍රිප්ට් භාවිතයෙන් පරිශීලක නාමය/මුරපදය ඇතුළත් කිරීම

එක් පාරිභෝගිකයෙකුට ජාල උපකරණ වෙත ප්‍රවේශය කෙලින්ම වසා දමන ලදී. ප්රථමයෙන් Default Gateway වෙත සම්බන්ධ කිරීමෙන් උපකරණයට ඇතුළු වීමට හැකි විය, ඉන් පසුව එයට සම්බන්ධ උපකරණ වෙත. IOS/දෘඪාංග මෘදුකාංගය තුළට ගොඩනගා ඇති ssh සේවාලාභියා සම්බන්ධ කිරීමට භාවිතා කරන ලදී. ඒ අනුව, කොන්සෝලයේ පරිශීලක නාමය සහ මුරපදය ඉල්ලා ඇත. පහත ස්ක්‍රිප්ට් සමඟ, පරිශීලක නාමය සහ මුරපදය ස්වයංක්‍රීයව ඇතුළත් විය:

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("snmpadminr")
	crt.Screen.WaitForString("assword:")
	crt.Screen.Send("Passwordr")
	crt.Screen.Synchronous = False
main()

සටහන: ස්ක්‍රිප්ට් 2ක් තිබුණා. එකක් පරිපාලක ගිණුම සඳහා, දෙවැන්න eSIGHT ගිණුම සඳහා.

ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීමේදී දත්ත කෙලින්ම එකතු කිරීමේ හැකියාව සහිත ස්ක්‍රිප්ට්.

කාර්යය වූයේ සියලුම ජාල උපකරණ මත ස්ථිතික මාර්ගයක් එකතු කිරීමයි. නමුත් එක් එක් උපකරණවල අන්තර්ජාලයට පිවිසීමේ දොරටුව වෙනස් විය (එය පෙරනිමි ද්වාරයට වඩා වෙනස් විය). පහත දැක්වෙන ස්ක්‍රිප්ට් මඟින් මාර්ගගත කිරීමේ වගුව ප්‍රදර්ශනය කර, වින්‍යාස කිරීමේ ප්‍රකාරයට ඇතුළු විය, අවසානය දක්වා විධානය ලියා නැත (අන්තර්ජාලයට පිවිසීමේ දොරටුවේ IP ලිපිනය) - මම මෙම කොටස එකතු කළෙමි. මම Enter එබීමෙන් පසුව, ස්ක්‍රිප්ට් එක දිගටම විධානය ක්‍රියාත්මක කරයි.

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("Zdes-mogla-bit-vasha-reklamar")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("show run | inc ip router")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("conf tr")
	crt.Screen.WaitForString("(config)#")
	crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ")
	crt.Screen.WaitForString("(config)#")
	crt.Screen.Send("endr")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("copy run star")
	crt.Screen.WaitForString("[startup-config]?")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("exitr")
	crt.Screen.Synchronous = False
main()

මෙම ස්ක්‍රිප්ට් එකේ, පේළියේ: crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ") ද්වාරයෙහි IP ලිපිනය එකතු කර නැති අතර කරත්ත ආපසු යාමේ චරිතයක් නොමැත. ස්ක්‍රිප්ට් එක "(config) #" අක්ෂර සහිත ඊළඟ පේළිය එනතෙක් බලා සිටී මම ip ලිපිනය ඇතුළු කර ඇතුල් කිරීමෙන් පසුව මෙම අක්ෂර දර්ශනය විය.

නිගමනය:

ස්ක්‍රිප්ට් එකක් ලිවීමේදී සහ එය ක්‍රියාත්මක කිරීමේදී රීතිය අනුගමනය කළ යුතුය: ස්ක්‍රිප්ට් එකක් ලිවීමට සහ ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීමට ගතවන කාලය කිසි විටෙක එම කාර්යයම අතින් සිදු කිරීමට න්‍යායාත්මකව ගත කරන කාලයට වඩා වැඩි නොවිය යුතුය (නෝට්පෑඩ් එකකින් පිටපත් කිරීම / ඇලවීම, ලිවීම සහ දෝෂහරණය කිරීම. python script සඳහා ansible, ලිවීම සහ දෝෂහරණය සඳහා ක්‍රීඩා පොතක්). එනම්, ස්ක්‍රිප්ට් භාවිතය කාලය ඉතිරි කර ගත යුතු අතර, ක්‍රියාවලි එක් වරක් ස්වයංක්‍රීය කිරීම සඳහා කාලය නාස්ති නොකළ යුතුය (එනම්, ස්ක්‍රිප්ට් එක අනන්‍ය වූ විට සහ තවත් පුනරාවර්තනයක් නොමැති විට). නමුත් ස්ක්‍රිප්ට් එක අද්විතීය නම් සහ ස්ක්‍රිප්ට් එක සමඟ ස්වයංක්‍රීයකරණය සහ ස්ක්‍රිප්ට් ලිවීම / නිදොස් කිරීම වෙනත් ආකාරයකින් කිරීමට වඩා අඩු කාලයක් ගතවේ (ඇන්සිබල්, විධාන කවුළුව), එවිට ස්ක්‍රිප්ට් හොඳම විසඳුම වේ.
ස්ක්‍රිප්ට් නිදොස් කිරීම. ස්ක්‍රිප්ට් ක්‍රමයෙන් වර්ධනය වේ, පළමු, දෙවන, තෙවන උපාංගයේ ධාවනයේදී නිදොස්කරණය සිදු වේ, සහ හතරවන විට ස්ක්‍රිප්ට් සම්පූර්ණයෙන්ම ක්‍රියාත්මක වනු ඇත.

මූසිකය සමඟ ස්ක්‍රිප්ට් එකක් ධාවනය කිරීම (පරිශීලක නාමය+මුරපදය ඇතුළත් කිරීමෙන්) සාමාන්‍යයෙන් නෝට්පෑඩ් එකකින් පරිශීලක නාමය සහ මුරපදය පිටපත් කිරීමට වඩා වේගවත් වේ. නමුත් ආරක්ෂක දෘෂ්ටි කෝණයෙන් ආරක්ෂිත නොවේ.
ස්ක්‍රිප්ට් එකක් භාවිතා කරන විට තවත් (සැබෑ) උදාහරණයක්: ඔබට ජාල උපකරණ වෙත සෘජු ප්‍රවේශයක් නොමැත. නමුත් සියලුම ජාල උපකරණ වින්‍යාස කිරීමට අවශ්‍ය වේ (එය අධීක්ෂණ පද්ධතියට ගෙන ඒම, අමතර පරිශීලක නාමයක්/මුරපදයක්/snmpv3username/password එකක් වින්‍යාස කරන්න). ඔබ Core ස්විචය වෙත යන විට ප්‍රවේශය ඇත, එයින් ඔබ SSH වෙනත් උපකරණ වෙත විවෘත කරයි. ඇයි ඔයාට Ansible පාවිච්චි කරන්න බැරි. - අපි ජාල උපකරණවල (රේඛාව vty 0 4, පරිශීලක අතුරුමුහුණත vty 0 4) අවසර ලත් සමගාමී සැසි සංඛ්‍යාවේ සීමාවකට පිවිසෙන නිසා (තවත් ප්‍රශ්නයක් වන්නේ එකම SSH පළමු හොප් සමඟ ඇන්සිබල් හි විවිධ උපකරණ ආරම්භ කරන්නේ කෙසේද යන්නයි).

ස්ක්‍රිප්ට් දිගු මෙහෙයුම් වලදී කාලය අඩු කරයි - උදාහරණයක් ලෙස, FTP හරහා ගොනු පිටපත් කිරීම. පිටපත් කිරීම අවසන් වූ පසු, පිටපත වහාම වැඩ කිරීමට පටන් ගනී. පුද්ගලයෙකුට පිටපත් කිරීමේ අවසානය දැකීමට අවශ්ය වනු ඇත, පසුව පිටපත් කිරීමේ අවසානය අවබෝධ කර, පසුව සුදුසු විධාන ඇතුළත් කරන්න. පිටපත එය වෛෂයිකව වේගවත් කරයි.

ස්ක්‍රිප්ට් අදාළ වන්නේ මහා දත්ත බෙදා හැරීමේ මෙවලම් භාවිත කළ නොහැකි තැන්වල ය: කොන්සෝලය. හෝ උපකරණ සඳහා සමහර දත්ත අද්විතීය වන විට: සත්කාරක නාමය, කළමනාකරණ ip ලිපිනය. නැත්තම් program එකක් ලියනකොට debugging කරනකොට ස්ක්‍රිප්ට් එක ක්‍රියාත්මක වෙද්දි උපකරණ වලින් ලැබෙන දත්ත එකතු කරනවට වඩා අමාරුයි. - සෑම උපකරණයකටම අන්තර්ජාල සැපයුම්කරුගේ තමන්ගේම IP ලිපිනයක් ඇති විට, මාර්ගයක් නියම කිරීම සඳහා ස්ක්‍රිප්ට් එකක් සහිත උදාහරණයක්. (මගේ සගයන් එවැනි ස්ක්‍රිප්ට් ලිව්වා - DMVPN කතා කරන විට 3 ට වඩා වැඩි විය. DMVPN සැකසුම් වෙනස් කිරීමට අවශ්‍ය විය).

සිද්ධි අධ්‍යයනය: කොන්සෝල වරායන් භාවිතයෙන් නව ස්විචයක මූලික සැකසුම් වින්‍යාස කිරීම:

A. කොන්සෝල කේබලය උපාංගයට සම්බන්ධ කරන ලදී.
B. පිටපත ධාවනය කරන්න
B. පිටපත ක්‍රියාත්මක වන තෙක් බලා සිටියා
D. ඊළඟ උපාංගයට කොන්සෝල කේබලය පේනුගත කරන ලදී.
E. ස්විචය අවසාන එක නොවේ නම්, B පියවර වෙත යන්න.

පිටපතෙහි කාර්යයේ ප්රතිඵලයක් ලෙස:

  • ආරම්භක මුරපදය උපකරණය මත සකසා ඇත.
  • පරිශීලක නාමය ඇතුළත් කර ඇත
  • උපාංගයේ අද්විතීය IP ලිපිනය ඇතුළත් කර ඇත.

PS මෙහෙයුම නැවත කිරීමට සිදු විය. පෙරනිමි ssh වින්‍යාස කර නැති නිසා/අක්‍රිය කර නැති නිසා. (ඔව්, මේක මගේ වැරැද්දක්.)

භාවිතා කළ මූලාශ්ර.

1. ස්ක්‍රිප්ට් නිර්මාණය කිරීම ගැන
2. ස්ක්‍රිප්ට් උදාහරණ

උපග්‍රන්ථය 1: නියැදි ස්ක්‍රිප්ට්.


විමසුම් දෙකක් සහිත දිගු ස්ක්‍රිප්ට් එකක උදාහරණයක්: සත්කාරක නාමය සහ IP ලිපිනය. එය කොන්සෝලය (9600 baud) හරහා උපකරණ පෙරසිටුවීම සඳහා නිර්මාණය කර ඇත. තවද ජාලයට උපකරණ සම්බන්ධ කිරීම සකස් කිරීම සඳහා.

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("r")
	crt.Screen.WaitForString("name")
	crt.Screen.Send("adminr")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Passwordr")
	crt.Screen.Send("sysr")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("interface Vlanif 1r")
	crt.Screen.WaitForString("Vlanif1]")
	crt.Screen.Send("undo ip addressr")
	crt.Screen.Send("shutdownr")
	crt.Screen.Send("vlan 100r")
	crt.Screen.Send(" description description1r")
	crt.Screen.Send(" name description1r")
	crt.Screen.Send("vlan 110r")
	crt.Screen.Send(" description description2r")
	crt.Screen.Send(" name description2r")
	crt.Screen.Send("vlan 120r")
	crt.Screen.Send(" description description3r")
	crt.Screen.Send(" name description3r")
	crt.Screen.Send("vlan 130r")
	crt.Screen.Send(" description description4r")
	crt.Screen.Send(" name description4r")
	crt.Screen.Send("vlan 140r")
	crt.Screen.Send(" description description5r")
	crt.Screen.Send(" name description5r")
	crt.Screen.Send("vlan 150r")
	crt.Screen.Send(" description description6r")
	crt.Screen.Send(" name description6r")
	crt.Screen.Send("vlan 160r")
	crt.Screen.Send(" description description7r")
	crt.Screen.Send(" name description7r")
	crt.Screen.Send("vlan 170r")
	crt.Screen.Send(" description description8r")
	crt.Screen.Send(" name description8r")               
	crt.Screen.Send("vlan 180r")
	crt.Screen.Send(" description description9r")
	crt.Screen.Send(" name description9r")
	crt.Screen.Send("vlan 200r")
	crt.Screen.Send(" description description10r")
	crt.Screen.Send(" name description10r")
	crt.Screen.Send("vlan 300r")
	crt.Screen.Send(" description description11r")
	crt.Screen.Send(" name description11r")
	crt.Screen.Send("quitr")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("stp region-configurationr")
	crt.Screen.Send("region-name descr")
	crt.Screen.Send("active region-configurationr")
	crt.Screen.WaitForString("mst-region]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("stp instance 0 priority 57344r")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("interface range GigabitEthernet 0/0/1 to GigabitEthernet 0/0/42r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description Usersr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type hybridr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("voice-vlan 100 enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("voice-vlan legacy enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid pvid vlan 120r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid tagged vlan 100r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid untagged vlan 120r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("stp edged-port enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("trust 8021pr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("interface range GigabitEthernet 0/0/43 to GigabitEthernet 0/0/48r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description Printersr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type accessr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port default vlan 130r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("stp edged-port enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("trust 8021pr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("interface range XGigabitEthernet 0/0/1 to XGigabitEthernet 0/0/2r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description uplinkr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type trunkr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port trunk allow-pass vlan 100 110 120 130 140 150 160 170 180 200r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port trunk allow-pass vlan 300r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.4r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.2r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.134r")
	crt.Screen.Send("ip route-static 0.0.0.0 0.0.0.0 10.10.10.254r")
	crt.Screen.Send("interface Vlanif 200r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
        hostnamestr = crt.Dialog.Prompt("Enter hostname:", "hostname", "", False)
        ipaddressstr = crt.Dialog.Prompt("Enter ip address:", "ip", "", False)
	crt.Screen.Send("ip address 10.10.10.")
	crt.Screen.Send(ipaddressstr)
	crt.Screen.Send(" 24r")
	crt.Screen.Send("quitr")
	crt.Screen.Send("sysname ")
	crt.Screen.Send(hostnamestr)
	crt.Screen.Send("r")
	crt.Screen.WaitForString("]")
	crt.Screen.Synchronous = False
main()

එවැනි ස්ක්රිප්ට් සාමාන්යයෙන් අවශ්ය නොවේ, නමුත් උපකරණ ප්රමාණය 15 pcs වේ. වේගවත් පිහිටුවීමට ඉඩ දී ඇත. SecureCRT Command කවුළුව භාවිතයෙන් උපකරණ සැකසීම වේගවත් විය.

ssh සඳහා ගිණුමක් සැකසීම.

තවත් උදාහරණයක්. වින්‍යාසය ද කොන්සෝලය හරහා වේ.

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("r")
	crt.Screen.WaitForString("name")
	crt.Screen.Send("adminr")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Passwordr")
	crt.Screen.WaitForString(">")
	crt.Screen.Send("sysr")
	crt.Screen.Send("stelnet server enabler")
	crt.Screen.Send("aaar")
	crt.Screen.Send("local-user admin service-type terminal ftp http sshr")
	crt.Screen.Send("quitr")
	crt.Screen.Send("user-interface vty 0 4r")
	crt.Screen.Send("authentication-mode aaar")
	crt.Screen.Send("quitr")
	crt.Screen.Send("quitr")
	crt.Screen.Synchronous = False
main()


SecureCRT ගැන:ගෙවූ මෘදුකාංග: $99 සිට (කුඩාම මිල SecureCRT සඳහා වසරක් සඳහා පමණි)
නිල වෙබ් අඩවිය
මෘදුකාංග බලපත්‍රයක් එක් වරක් මිලදී ගනු ලැබේ, සහාය ඇතිව (යාවත්කාලීන කිරීම සඳහා), එවිට මෘදුකාංගය අසීමිත කාලයක් සඳහා මෙම බලපත්‍රය සමඟ භාවිතා වේ.

Mac OS X සහ Windows මෙහෙයුම් පද්ධති මත ක්‍රියා කරයි.

ස්ක්‍රිප්ට් සහාය ඇත (මෙම ලිපිය)
ඇත විධාන කවුළුව
Serial/Telnet/SSH1/SSH2/Shell මෙහෙයුම් පද්ධතිය

මූලාශ්රය: www.habr.com