Ievades automatizācija SecureCRT, izmantojot skriptus

Tīkla inženieri bieži saskaras ar uzdevumu kopēt/ielīmēt noteiktus fragmentus no piezīmju bloka uz konsoli. Parasti ir jākopē vairāki parametri: Lietotājvārds/Parole un vēl kaut kas. Skriptu izmantošana ļauj paātrināt šo procesu. BET skripta rakstīšanas un skripta izpildes uzdevumiem kopumā vajadzētu aizņemt mazāk laika nekā manuālai konfigurēšanai, pretējā gadījumā skripti ir bezjēdzīgi.

Kam domāts šis raksts? Šis raksts ir no sērijas Fast Start, un tā mērķis ir ietaupīt tīkla inženieru laiku, iestatot aprīkojumu (viens uzdevums) vairākās ierīcēs. Izmanto SecureCRT programmatūru un iebūvētu skriptu izpildes funkcionalitāti.

saturs

Ievads

Programmai SecureCRT ir iebūvēts skripta izpildes mehānisms. Kam paredzēti termināļa skripti?

  • Automatizēta I/O un minimāla I/O validācija.
  • Paātriniet ikdienas uzdevumu izpildi - samaziniet pauzes starp aprīkojuma iestatījumiem. (De facto tiek samazinātas pauzes, ko izraisa laiks, lai veiktu kopēšanas/iepriekšējās darbības tajā pašā aparatūrā, aparatūrai piemērojot 3 vai vairāk komandu fragmentus.)

Šis dokuments aptver šādus uzdevumus:

  • Vienkāršu skriptu izveide.
  • Skriptu palaišana vietnē SecureCRT.
  • Vienkāršu un uzlabotu skriptu izmantošanas piemēri. (Prakse no reālās dzīves.)

Vienkāršu skriptu izveide.

Vienkāršākie skripti izmanto tikai divas komandas — Send un WaitForString. Ar šo funkcionalitāti pietiek 90% (vai vairāk) veikto uzdevumu.

Skripti var darboties Python, JS, VBS (Visual Basic), Perl utt.

Pitons

# $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()

Parasti fails ar paplašinājumu "*.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

Parasti fails ar paplašinājumu "*.vbs"

Izveidojiet skriptu, izmantojot skripta ierakstu.

Ļauj automatizēt skripta rakstīšanas procesu. Jūs sākat rakstīt skriptu. SecureCRT ieraksta komandas un sekojošo aparatūras atbildi un parāda gatavo skriptu jūsu vietā.

A. Sāciet rakstīt skriptu:
SecureCRT izvēlne => Skripts => Sākt ierakstīt skriptu
b. Veiciet darbības ar konsoli (veiciet konfigurācijas darbības CLI).
V. Pabeidziet skripta rakstīšanu:
SecureCRT izvēlne => Skripts => Pārtraukt skripta ierakstīšanu…
Saglabājiet skripta failu.

Izpildīto komandu un saglabātā skripta piemērs:

Ievades automatizācija SecureCRT, izmantojot skriptus

Skriptu palaišana vietnē SecureCRT.

Pēc skripta izveides/rediģēšanas rodas dabisks jautājums: Kā pielietot skriptu?
Ir vairāki veidi:

  • Darbojas manuāli no izvēlnes Skripts
  • Automātiska palaišana pēc savienojuma (pieteikšanās skripts)
  • Automātiska pieteikšanās, neizmantojot skriptu
  • Iedarbināšana manuāli ar pogu SecureCRT (poga vēl ir jāizveido un jāpievieno SecureCRT)

Darbojas manuāli no izvēlnes Skripts

SecureCRT izvēlne => Skripts => Palaist…
- Pēdējie 10 skripti tiek atcerēti un pieejami ātrai palaišanai:
SecureCRT izvēlne => Skripts => 1 "Skripta faila nosaukums"
SecureCRT izvēlne => Skripts => 2 "Skripta faila nosaukums"
SecureCRT izvēlne => Skripts => 3 "Skripta faila nosaukums"
SecureCRT izvēlne => Skripts => 4 "Skripta faila nosaukums"
SecureCRT izvēlne => Skripts => 5 "Skripta faila nosaukums"

Automātiska palaišana pēc savienojuma (pieteikšanās skripts)

Automātiskās reģistrēšanas skripta iestatījumi ir konfigurēti saglabātajai sesijai: Savienojums => Pieteikšanās darbības => Pieteikšanās skripts

Ievades automatizācija SecureCRT, izmantojot skriptus

Automātiska pieteikšanās, neizmantojot skriptu

Paroles lietotājvārdu iespējams ievadīt automātiski, nerakstot skriptu, izmantojot tikai SecureCRT iebūvēto funkcionalitāti. Savienojuma iestatījumos “Savienojums” => Pieteikšanās darbības => Automatizēt pieteikšanos - jāaizpilda vairāki komplekti, kas nozīmē pārus: “Paredzamais teksts” + “Nosūtītās rakstzīmes šim tekstam” šādu pāru var būt daudz. (Piemērs: pirmais pāris gaida lietotājvārdu, otrais gaida paroli, trešais gaida priviliģētā režīma uzvedni, ceturtais pāris priviliģētā režīma parolei.)

Automātiskās pieteikšanās piemērs Cisco ASA:

Ievades automatizācija SecureCRT, izmantojot skriptus

Iedarbināšana manuāli ar pogu SecureCRT (poga vēl ir jāizveido un jāpievieno SecureCRT)

Programmā SecureCRT pogai varat piešķirt skriptu. Poga tiek pievienota speciāli šim nolūkam izveidotam panelim.

A. Paneļa pievienošana saskarnei: SecureCRT Menu => View => Button Bar
b. Pievienojiet panelim pogu un pievienojiet skriptu. – Ar peles labo pogu noklikšķiniet uz pogu joslas un konteksta izvēlnē atlasiet “Jauna poga…”.
V. Dialoglodziņa “Kartes poga” laukā “Darbība” atlasiet darbību (funkciju “Palaist skriptu”).
Norādiet pogas parakstu. Pogas ikonas krāsa. Pabeidziet iestatījumus, noklikšķinot uz Labi.

Ievades automatizācija SecureCRT, izmantojot skriptus

Piezīme:

Panelis ar pogām ir ļoti noderīga funkcionalitāte.

1. Piesakoties noteiktā sesijā ir iespējams norādīt, kuru paneli pēc noklusējuma atvērt šai cilnei.

2. Ir iespējams iestatīt iepriekš noteiktas darbības standarta darbībām ar aprīkojumu: parādīt parādīt versiju, parādīt darbības konfigurāciju, saglabāt konfigurāciju.

Ievades automatizācija SecureCRT, izmantojot skriptus
Šīm pogām nav pievienots skripts. Tikai darbības virziens:

Ievades automatizācija SecureCRT, izmantojot skriptus
Iestatījums - lai, pārejot uz sesiju, sesijas iestatījumos tiktu atvērts nepieciešamais panelis ar pogām:

Ievades automatizācija SecureCRT, izmantojot skriptus
Klientam ir jēga iestatīt atsevišķus skriptus pieteikšanās funkcijai un pāriet uz paneli ar biežām pārdevēja komandām.

Ievades automatizācija SecureCRT, izmantojot skriptus
Nospiežot pogu Go Cisco, panelis pārslēdzas uz Cisco pogu joslu.

Ievades automatizācija SecureCRT, izmantojot skriptus

Vienkāršu un uzlabotu skriptu izmantošanas piemēri. (Prakse no reālās dzīves.)

Ar vienkāršiem skriptiem pietiek gandrīz visiem gadījumiem. Bet reiz vajadzēja nedaudz sarežģīt scenāriju – paātrināt darbu. Šī komplikācija vienkārši pieprasīja papildu datus no lietotāja dialoglodziņā.

Datu pieprasīšana no lietotāja, izmantojot dialoglodziņu

Man datu pieprasījuma skriptā bija 2. Šis ir saimniekdatora nosaukums un IP adreses 4. oktets. Lai veiktu šo darbību - Google meklēju, kā to izdarīt, un atradu to oficiālajā SecureCRT (vandyke) vietnē. - funkcionalitāti sauc par uzvedni.

	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") 

Šī skripta daļa prasīja resursdatora nosaukumu un numurus no pēdējā okteta. Tā kā bija 15 iekārtas. Un dati tika parādīti tabulā, pēc tam es nokopēju vērtības no tabulas un ielīmēju tos dialoglodziņos. Tālāk skripts strādāja neatkarīgi.

FTP kopēšana uz tīkla aprīkojumu.

Šis skripts palaida manu komandu logu (apvalku) un nokopēja datus, izmantojot FTP. Beigās aizveriet sesiju. Šim nolūkam nav iespējams izmantot notepad, jo kopēšana aizņem ļoti ilgu laiku un FTP buferī esošie dati tik ilgi netiks glabāti:

# $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()

Lietotājvārda/paroles ievadīšana, izmantojot skriptu

Vienam klientam tika slēgta tieša piekļuve tīkla iekārtām. Iekārtā bija iespējams iekļūt, vispirms pieslēdzoties Default Gateway, un no tās pēc tam ar tai pievienoto aprīkojumu. Savienojuma izveidei tika izmantots IOS/aparatūras programmatūrā iebūvētais ssh klients. Attiecīgi konsolē tika pieprasīts lietotājvārds un parole. Izmantojot tālāk norādīto skriptu, lietotājvārds un parole tika ievadīti automātiski:

# $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()

Piezīme. Bija 2 skripti. Viens administratora kontam, otrs eSIGHT kontam.

Skripts ar iespēju tieši pievienot datus skripta izpildes laikā.

Uzdevums bija pievienot statisku maršrutu visās tīkla iekārtās. Taču vārteja uz internetu katrā iekārtā bija atšķirīga (un tā atšķīrās no noklusējuma vārtejas). Nākamais skripts parādīja maršrutēšanas tabulu, iegāja konfigurācijas režīmā, neierakstīja komandu līdz galam (interneta vārtejas IP adrese) - es pievienoju šo daļu. Kad es nospiedu Enter, skripts turpināja izpildīt komandu.

# $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()

Šajā skriptā rindā: crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ") vārtejas IP adrese nav pievienota un nav karieta atgriešanas rakstzīmes. Skripts gaida nākamo rindiņu ar rakstzīmēm "(config) #" Šīs rakstzīmes parādījās pēc tam, kad es ievadīju IP adresi un ievadīju.

secinājums:

Rakstot skriptu un izpildot to, ir jāievēro noteikums: Skripta rakstīšanas un skripta izpildes laiks nekad nedrīkst pārsniegt laiku, kas teorētiski tiek pavadīts viena un tā paša darba manuālai veikšanai (kopēšanai / ielīmēšanai no piezīmju grāmatiņas, rakstīšanai un atkļūdošanai rokasgrāmata ansible, python skripta rakstīšanai un atkļūdošanai). Tas ir, skripta izmantošanai vajadzētu ietaupīt laiku, nevis tērēt laiku vienreizējai procesu automatizācijai (t.i., kad skripts ir unikāls un vairs nebūs atkārtošanās). Bet, ja skripts ir unikāls un automatizācija ar skriptu un skripta rakstīšana/atkļūdošana aizņem mazāk laika, nekā to darot jebkurā citā veidā (iespējams, komandu logs), tad skripts ir labākais risinājums.
Skripta atkļūdošana. Skripts attīstās pakāpeniski, atkļūdošana notiek pirmajā, otrajā, trešajā ierīcē, un ceturtajā skripts, visticamāk, būs pilnībā darbspējīgs.

Skripta palaišana (ievadot lietotājvārdu+paroli) ar peli parasti ir ātrāka nekā lietotājvārda un paroles kopēšana no piezīmju grāmatiņas. Bet tas nav drošs no drošības viedokļa.
Vēl viens (reāls) piemērs, izmantojot skriptu: Jums nav tiešas piekļuves tīkla aprīkojumam. Bet ir nepieciešams konfigurēt visas tīkla iekārtas (ienesiet to uzraudzības sistēmā, konfigurējiet papildu Lietotājvārds/parole/snmpv3lietotājvārds/parole). Ir piekļuve, kad jūs ejat uz Core slēdzi, no tā atverat SSH uz citu aprīkojumu. Kāpēc jūs nevarat izmantot Ansible. - Tā kā mēs saskaramies ar ierobežojumu atļauto vienlaicīgo sesiju skaitam tīkla iekārtās (līnija vty 0 4, lietotāja interfeiss vty 0 4) (cits jautājums ir par to, kā Ansible startēt dažādu aprīkojumu ar to pašu SSH pirmo lēcienu).

Skripts samazina laiku ilgu darbību laikā, piemēram, kopējot failus, izmantojot FTP. Pēc kopēšanas pabeigšanas skripts nekavējoties sāk darboties. Personai būs jāredz kopēšanas beigas, pēc tam jāsaprot kopēšanas beigas, pēc tam jāievada atbilstošās komandas. Skripts to dara objektīvi ātrāk.

Skripti ir piemērojami, ja nav iespējams izmantot masveida datu piegādes rīkus: konsole. Vai arī tad, ja daži iekārtas dati ir unikāli: resursdatora nosaukums, pārvaldības IP adrese. Vai arī rakstot programmu un atkļūdojot, tas ir grūtāk nekā pievienot datus, kas saņemti no iekārtas, kamēr darbojas skripts. - Piemērs ar skriptu maršruta izrakstīšanai, kad katrai iekārtai ir sava interneta pakalpojumu sniedzēja IP adrese. (Mani kolēģi rakstīja tādus skriptus - kad DMVPN runā bija virs 3. Bija jāmaina DMVPN iestatījumi).

Gadījuma izpēte: Jauna slēdža sākotnējo iestatījumu konfigurēšana, izmantojot konsoles portus:

A. Ieslēdza konsoles kabeli ierīcē.
B. Palaidiet skriptu
B. Gaidīja skripta izpildi
D. Pievienojiet konsoles kabeli nākamajai ierīcei.
E. Ja slēdzis nav pēdējais, pārejiet uz darbību B.

Scenārija darba rezultātā:

  • iekārtā ir iestatīta sākotnējā parole.
  • Ievadīts lietotājvārds
  • tiek ievadīta unikālā ierīces IP adrese.

PS operācija bija jāatkārto. Tā kā noklusējuma ssh nebija konfigurēts/atspējots. (Jā, tā ir mana kļūda.)

Izmantotie avoti.

1. Par skriptu veidošanu
2. Skriptu piemēri

1. pielikums: Skriptu paraugi.


Gara skripta piemērs ar diviem vaicājumiem: resursdatora nosaukums un IP adrese. Tas tika izveidots aprīkojuma iepriekšējai iestatīšanai, izmantojot konsoli (9600 bodi). Un arī sagatavot iekārtu pieslēgšanu tīklam.

# $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()

Šādi skripti parasti nav vajadzīgi, bet aprīkojuma apjoms ir 15 gab. Atļauta ātrāka iestatīšana. Iekārtas iestatīšana bija ātrāka, izmantojot SecureCRT Command logu.

Konta iestatīšana ssh.

Vēl viens piemērs. Konfigurācija notiek arī caur konsoli.

# $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()


Par SecureCRT:Maksas programmatūra: no 99 USD (mazākā cena ir tikai SecureCRT vienam gadam)
Oficiālā mājas lapa
Programmatūras licence tiek iegādāta vienreiz, ar atbalstu (atjaunināšanai), pēc tam programmatūra tiek izmantota ar šo licenci neierobežotu laiku.

Darbojas operētājsistēmās Mac OS X un Windows.

Ir skriptu atbalsts (šis raksts)
Ir Komandu logs
Serial/Telnet/SSH1/SSH2/Shell operētājsistēma

Avots: www.habr.com

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster