1.å®è£
linuxç³»ç»
2.自动化运维初级村Paramiko vs Netmiko
å®è£ linuxç³»ç»
å®è£ Linuxç³»ç»
3.1 åå¤å·¥ä½
å¨å®è£ ä»»ä½Linuxåè¡çæ¬ä¹åï¼ä½ é¦å åºè¯¥åä¸äºåå¤å·¥ä½ï¼å æ¬æ¶éç³»ç»ä¿¡æ¯ï¼å
å¤å®è£ çæ¬ççï¼ç¹å«å°ï¼ä½ åºè¯¥è¿è¡ä¸ä¸ªå®è£ è§åãæ们ç°å¨å°±æ¥ä»ç»ä¸ä¸å®è£ ä¹å
çåå¤è¦ç¹ã
3.1.1 è·åLinuxåè¡ç
Linuxåè¡çæ¬å¯ä»¥ä»ç½ç»ä¸è½½ï¼ä¹å¯ä»¥ç´æ¥è´ä¹°åè¡å çã
ç®åä¸è½½Linuxåè¡çæ¬çç«ç¹ç¸å½å¤ï¼å¦æä½ æä¸æ¡KB以ä¸çDDNæè ISDNä¸çº¿ï¼
并ä¸æ让ä¸è½½å·¥å ·è¿ç»è¿è¡å 天å å¤çåå¤ï¼é£ä¹ä¸è½½æ»æ¯è¦æ¯è´ä¹°cdromæ¥ç容æä¸äº
ï¼å 为Linuxçæ¬å级é常快ï¼å¾å¾å级çæ¨åºå个æ以åæè½å¨æ¬å°ä¹°å°åè¡çï¼ã
å¦æä½ ä¸æ¶åå½é æµéé®é¢ï¼å¯ä»¥ç´æ¥å°åè¡åç主ç«ç¹å»ä¸è½½å çæ åï¼ç¶åç§å¶
æCD-Rï¼æè æ·è´å°ç¡¬çä¸å®è£ ãç±äºå®è£ æ¶çæ件å大å°åé®é¢ï¼æ们ä¸è¬å»ºè®®å°ä¸
è½½çæ件æ¾å°ä½ çæ¬å°æå¡å¨ä¸ï¼éè¿ftpå®è£ ï¼ç¶èè¿è¦æ±ä½ é¦å æä¸å°åºæ¬çlinux
æå¡å¨ãå¦åï¼ä½ å°±éè¦ç§å¶CD-Räºã
å¦ææå½é æµéé®é¢ï¼å¯ä»¥èèå°æè²ç½å çæ个ç«ç¹ä¸è½½ãå¦å¤ï¼Turbo Linuxå ¬å¸
设æå½å åå ¬å¸ï¼å¯ä»¥å°www.turbolinux.com.cnå»ä¸è½½TLCçææ°çæ¬ã
å°å¸åºä¸ç软件è¿éåºç´æ¥è´ä¹°Linux å çåè¡çï¼ç¨å çæ¥å®è£ æ¯ææ¹ä¾¿å¿«æ·çã
ç®åRedHatï¼TurboLinuxåcorelé½å¯ä»¥å¨è¿éåºä¹°å°ãä¸å®è¦æ³¨æï¼å¤§é¨åLinuxåè¡
çæ¬æâå®æ´çâåâç²¾ç®çâçåºåï¼ä¾å¦TurboLinuxæ1CDï¼3 CDåCDä¸ä¸ªçæ¬ã
å¦æä½ æ¯ç¨Linuxä¸ºä½ çåä½æé ç½ç»æå¡å¨ï¼æ们æ»æ¯å»ºè®®ä½ è´ä¹°å®æ´çæ¬ï¼æ¯ç«ä»·æ ¼
å·®ä¸å¤ãä¸è¿å¦æä½ æ³è¦ä½¿ç¨SuSEä¹ç±»ä¸å¸¸è§ççæ¬ï¼ä½ è¿æ¯å¾æç½ç»æå¼è½¬ä¸å 天å
å¤ã
æä»¬å»ºè®®ä½ ç¨ä¸ç§Linuxçæ¬ä¸ºåºç¡ï¼ç¶åæ½åå«ççæ¬ä¸çä¼ç§äº§åç»åæä½ çæ
å¡å¨è½¯ä»¶ãä½ä¸ºåºç¹ï¼RedHat(3CDç)åTurboLinux(CD)é½ä¸éã
3.1.2 åå¤æå¡å¨ç¡¬ä»¶
â CPU
Linux å¨Intel ï¼ ï¼ Pentiumï¼ Pentium Proï¼ Pentium IIï¼ Pentium
III ï¼Celeron ï¼AMD K6-2 (3DNow)ï¼AMD K6-3è¿å 款cpuä¸è½å¾å¥½çå·¥ä½ï¼èéInte
l ç CPU ï¼ä¸»è¦å æ¬ï¼Cyrix 6xï¼AMD K6ï¼AMD K5ï¼AMDï¼Cyrix MediaGX chipï¼WA
RNINGåºç°é®é¢çæºä¼ä¼¼ä¹æ¯è¾å¤ãéè¦è¡¥å çæ¯6xMXæ®è¯´å¨Linuxä¸ç表ç°è¿å¥½äºå
æ¥ç6xãä¸è¿ï¼è¯è¯´åæ¥ï¼ä½ ççç©·å°è¦ç¨6xMXåæå¡å¨çç¨åº¦åï¼
ä¸å°è£ é PII以ä¸CPUçLinuxå¨æå¡éä¸æ¯é常大æ¶å°±è½å¾å¥½çå·¥ä½ï¼å¦æé å¤åCPU
é£å°±å¯ä»¥åä¸å°ä¸æ¡£çåçæå¡å¨ç¸åª²ç¾ãLinux对åCPUçæ¯æè¿ç®ä¸éï¼ä½å¦æä½ æ¯
è´ä¹°çåè¡çæ¬ï¼é£ä¹ä½ å¨å®è£ åç»å¸¸éè¦éæ°ç¼è¯å æ ¸æè½å ååæ¥åCPUçå¨åã详
æ å¯ä»¥åè第åç« ã
â¡ä¸»ç
Linuxæ¯æå¸é¢ä¸åºå®ç大å¤æ°ä¸»æ¿ï¼å¨éè´ä¸»æ¿åºè¯¥èèæ¯ä¸æ¯æ¯æä½ çCPUï¼å¦æ
éç¨åCPUè¿èèä¹°ä¸åå ¼å®¹ç主æ¿ãç¬è 认为å¨ä¸»ççéè´æ¶è¦æ³¨æåçæåºï¼æ¡ä»¶å
许ä¸å®è¦ä¹°åççã
â¢å å
Linux对å åçåç没æç¹æ®çéå¶ï¼åªæ¯è¦æ±å åæå°æ¯ MBï¼å½ç¶è¿ä¸ªæ°åå°±æ
æè§è·è¯´ç¨MBå åè·Windows NTå·®ä¸å¤ã大ä½ä¸ï¼ä½ä¸ºä¸å°æå¡å¨ï¼ä½ å¯ä»¥ä»MBå
åå¼å§ï¼è³äºå¤å°å¤å°ï¼åæ£ä¸éæ¯2GBï¼ç°å¨æ¡åè¿ä¹ä¾¿å®ï¼ä½ èªå·±ççä½ çæºå¨ä¸æ
å¤å°ä¸ªæ§½å°±è¡äºãLinux对å åçè´¨éè¦æ±æ¯è¾ä¸è¬ã
â£Linuxæ¯æç硬çæ§å¶å¨/硬ç
Linux æ¯ææ åçIDEãEIDEãMFM/RTLæ§å¶å¨ã
IDE设å¤å¨å·¥ä½æ¯è¦å ç¨CPUçå¤çæ¶é´ï¼å¦æåæ¶æå ç¾ä¸ªè®¿é®ï¼è¿æ ·å ç¨CPUå¤çç
æ¶é´å°±æ¥å§å¢å ï¼ç³»ç»çè´æ æ¥å§ä¸åï¼å¦æéç¨SCSIæ¥å£å¡è®¾å¤çè¯å°±å¯æé«ç³»ç»ç
æçãLinux 并ä¸æ¯æ并å£ç SCSI å¡ï¼å¨Linuxä¸å ¼å®¹çSCSI å表ä¹â¦â¦åæ£æä¸æ³
ä»ç»äºï¼ä½ èªå·±å»çå ¼å®¹æ§å表ï¼ç®åçLinuxå æ ¸å¯¹BusLogicï¼AHAä¹ç±»ç大çSCSIå¡
æ¯æè¿ä¸éï¼ä½æ¯è¯å®ä¸å¦windows NTé£ä¹å¤ãå®å¨ä¸è¡ä½ å¯ä»¥è·é¶å®å说ï¼âä¸æ¯æ
Linuxæå¯ä¸è¦åãâå¦æä½ ççé¢ç®ç´§å¼ ï¼é£ä¹ä¹å¯ä»¥ä½¿ç¨IDE硬çï¼ä¸è¿ç®åçLinu
xå æ ¸ä¼¼ä¹å¯¹UDMAä¸è½æ£ç¡®æ¯æï¼ä½ å¯è½ä»ç¶ä½¿ç¨æ åçDMA-硬çã
Linux ä¹æ¯æç£çéµåã
â¤ç½å¡
Linux ä»¥å ¶å¼ºå¤§çç½ç»åè½èè称ï¼éæ©ä¸ååéçç½å¡æ¯ååå¿ è¦çãå¨éæ©ç½å¡
æ¯è¦æ³¨æç½çæ§è½åå ¼å®¹æ§ã对äºç¨Linuxä½ä¸ºæå¡å¨çç¨æ·éæ©ä¸åMç以太ç½å¡å¯
å¨å¾å¤§ç¨åº¦ä¸æé«æå¡æçãä¸é¢å°±æ¯ä¸äºå¨Linuxä¸è½å¾å¥½å·¥ä½çç½å¡ï¼
3Com Etherlink III (3c EISA)
3Com 3cx, 3c, 3c (Not the 3cB and C, see below) 3c
Digital DE, DE, DE, DE, DE (uses DE4x5)
Digital x,x ``Tulip'' chip cards, SMC DEC , SMC PCI EtherPowe
r (uses Tulip driver)
Intel EEPro (PCI),EtherExpress i/i PCI Pro/+ã
3Com 3c, 3c/, 3c, 3Com Etherlink (3c)
Allied Telesis AT (uses Lance driver), AMD Lance/PCnet, HP JA, NE2
, NE
AMD PCnet and AMD PCnetPCI
Apricot Xen-II, x0 VME ( chipset)
Ansel Communications AC EISA
AT&T GIS WaveLAN ISA
Alteon AceNIC Gigabit Ethernet Driver
Allied Telesis AT
Aironet Arlan
Cabletron Exx
Crystal LAN CS/CS
Comtrol Hostess SV
Compaq Netelligent / TX PCI UTP, T PCI UTP, Compaq Integrated
NetFlex 3/P, Compaq Netelligent Dual / TX PCI UTP, Compaq Netelligent I
ntegrated / TX UTP, Compaq Netelligent / TX Embedded UTP, Compaq N
etelligent T/2 PCI UTP/Coax, Compaq Netelligent / TX UTP, Compaq Net
Flex 3/P
VG-AnyLan Network Adapters, HP JB, JA, J, J, J,Comp
ex ReadyLink ENET-VG4 & FreedomLine /VG
D-Link DE, DE pocket adapters
D-Link DFE--TX PCI /, VIA Rhine PCI Fast Ethernet cards with eithe
r the VIA VTcA Rhine-II PC or Rhine-I
Digital DEPCA & EtherWORKS, DE, DE, DE Turbo, DE Turbo, DE
Turbo, DE, DE
Digi Intl. RightSwitch SE-X EISA and PCI
EtherWORKS 3 (DE, DE, and DE)
Fujitsu FMV-///
HP PC-LAN Plus
HP PC-LAN (B and xxx series)
HP AnyLAN, /VG, PCLAN (J, J, B, )
Intel EtherExpress
Intel EtherExpress i Pro/+ (ISA only)
MiCom-Interlan NI ethercard
Mylex LNE EISA cards (LNEA, LNEB)
NE/ and compatible ISA cards
NE (PCI), RealTEk RTL-, Winbond C, Compex RL, KTI ETP2,
NetVin NVSC, Via C, SureCom NE3
NI card (i Ethernet chip), NI, ni EtherBlaster
Novell NE EISA Network Adapter
Yellowfin (and Compatibles)
G-NIC
Racal-Interlan ES EISA Network Adapter
RedCreek Communications PCI
RealTek cards using RTL or RTL Fast Ethernet chipsets
Sangoma S/S multi-protocol FR, Sangoma SA, ESA, SE, S, S
, S, S
SMC Ultra / EtherEZ (ISA, 8k c), SMC series, SMC series, SM
C Ultra EISA (K) SMC EtherPower II PCI (c/ EPIC series),
Tangent ATB-II, Novel NL-, Daystar Digital LT-, Dayna DL, Dayn
aTalk PC (HL), COPS LT-, Farallon PhoneNET PC II & III
Western Digital WD, WD
Any IBM Token Ring card that does not use DMA
SysKonnect Token Ring ISA/PCI Adapter TR4/(+) ISA or PCI, TR4/ PCI, an
d older SK NET TR4/ ISA cards
IBM PCI tokenring cards based on the Pit/Pit-Phy/Olympic chipset
IBM Tropic chip-set cards
Linuxæ¯æçç½å¡åçå¾å¤ï¼è¯¦ç»çæ åµå¯ä»¥åèLinuxçç¡¬ä»¶å ¼å®¹æ§å表ï¼/usr/doc
/HOWTO/HARDWARE-HOWTOï¼ã
â¥æ¾ç¤ºå¡
å°±æçæ¥ï¼æå¡å¨çå¾å½¢çé¢å®å ¨æ¯ä¸å¿ è¦çï¼Solarisçé£ä¸ªopenlookç¡®å®å¾æ¼äº®ï¼
ä½æ¯æè°ç¨å¢ï¼è¿ä¸å¦å¹²èç¨M$å¢ã对äºLinuxæ´æ¯å¦æ¤ï¼ä½ åªè¦å¼ä¸åååçè½ä¸
4*ç4MBæ¾å¡å°±è¡äºï¼å½ç¶åææ¯LinuxçXFreeå ¼å®¹ãææ¨èçæ¯Trident å
S3 virgeï¼å ¼å®¹æ§ç»å¯¹æ²¡é®é¢ãå¦æä½ è§å¾è¿ç§ä¸è¥¿å®å¨å¤ªå¤èäºï¼åµåµã
3.1.3 åå¤å®è£ è§å
为äºå®è£ Linuxï¼ å¿ é¡»ä¸ºå®åå¤ç¡¬ç空é´ãè¿ä¸ªç¡¬ç空é´å¿ é¡»åæ¨ç计ç®æºä¸å®è£ ç
å ¶ä»æä½ç³»ç»(å¦Windowsï¼ OS/2æçå ¶ä»çæ¬çLinux)æ使ç¨ç硬ç空é´åå¼ï¼æè æ¯
ä¸ä¸ªç¬ç«ç硬çãå¨ä½ å³å®å建Linuxååºä¹åæ好å å¤ä»½ä½ çéè¦æ°æ®ï¼ä»¥å é æä¸å¿
è¦çæ失ãå®é ä¸ï¼æ¢ç¶ä½ åå¤å®è£ çæ¯ä¸å°æå¡å¨ï¼é£ä¹ä½ å¹²èææ´ä¸ªç¡¬çé½äº¤ç»Li
nuxå¾äºã
Linuxæ´ä¸ªç³»ç»å¯å®è£ å¨1GBå·¦å³ç硬ç空é´ä¸ï¼å¯æ¯ï¼æ们å®è£ Linuxæ¯ä¸ºäºè®©å®å®æ
å¦ï¼Webï¼Mailï¼Ftpçä¸äºæå¡ï¼è¿äºæå¡ççå¼å¯ä¹åï¼å¯¹ç¡¬çç空é´è¦æ±ç¹å¤§ï¼æ¯
å¦ä½ å¼å¯ä¸æ2G大å°çFtpæå¡ï¼ä½ è³å°è¦æ3Gç硬ç空é´ï¼æ们åä½æçæ¯ä¸ä¸ªGç
硬çå¯æ¯å¨ä¸å°ä¸å¹´çåºç¨ä¸å°±ä½¿ç¨äº%ï¼å¦æä½ æ£å¨è§åä¸ä¸ªæå¡å¨æ¯ï¼é£ä½ ä¸å®è¦
èèä½ éæ©ä¸å容é大å°åéç硬çï¼ä¸è¦çå°ä¸å¤ç¨æ¶åæ³åæ³ï¼è¦å ä¸ä¸ªç¡¬ç容æ
ï¼æ¹å/homeå/varçç®å½ç»æå´å¯è½æ¯é常讨åçã
Linux å¨è£ æ¶éè¦å»ºç«ä¸¤ç§ç±»åçååºï¼å³âLinux nativeâ硬çååºåâLinux s
wapâ交æ¢ååºã
尽管å¯ä»¥å°Linuxè£ å¨ä¸ä¸ªåä¸ç大ååºä¸(æ ¹æ®æ们已ç»æå°çååºåå)ï¼ä½æ们æ¨
èä½ æç³»ç»åå¼å®è£ å¨ä¸åçååºä¸ãå¦æä½ æä¸ä¸ªè£ 满ç8G以ä¸çååºï¼ä¸æ¦åçæ
件系ç»é®é¢ï¼ä½ è¯å®ä¼æ麻ç¦çã
ä¸é¢æ¯æ们建议çååºè§åï¼
ä¸ä¸ªäº¤æ¢ååº -- 交æ¢ååºç¨æ¥æ¯æèæå åã æ¨å¿ é¡»å建交æ¢ååºï¼ å³ä½¿æ¨ææ´
å¤çå åï¼ä»ç¶æ¨è使ç¨äº¤æ¢ååºã ç®åç交æ¢ååºå·²ç»å¯ä»¥è®¾ç½®å°é常大ï¼ä¸è¿å¤ªå¤§
ä¹ä¸è§å¾æä»ä¹æä¹ï¼æ们建议æ§å¶å¨MB以ä¸ï¼MB以ä¸ï¼èä¸å¯ä»¥ä½¿ç¨å¤ä¸ªäº¤æ¢
ååºãéè¦æ³¨æçæ¯ï¼å¦æä½ è®¾ç½®äºå¤ä¸ªäº¤æ¢ååºï¼é£ä¹Linuxå®è£ ç¨åºé常åªä¼æ¿æ´»ç¬¬
ä¸ä¸ªï¼ä½ éè¦æå·¥å¯å¨å ¶å®ç交æ¢ååºï¼è¯¦è§ç¬¬åç« ã
ä¸ä¸ªæ ¹ååº -- æ ¹ååºæ¯/(æ ¹ç®å½)æå¨å°.ãå®åªéè¦å¯å¨ç³»ç»æé¡»çæ件åç³»ç»é
ç½®æ件ï¼è¿äºæ件并ä¸å¤§ãä½æ¯ç±äºç¼ºçç/tmp(åå¨ä¸´æ¶æ件çç®å½)ä¹å¨è¿ä¸ªç®å½ä¸
é¢ï¼æ以åºè¯¥çåºè¶³å¤ç空é´ï¼ä¸è¬å¯ä»¥è®¾ç½®å¨MBå°1GBãä¸è¿å¦æä½ æç §æ们ä¸é¢
解éçä¸é¨å建äº/tmpååºï¼é£ä¹å°±å¯ä»¥å°ä¸ç¹ï¼åªè¦MBå·¦å³ã
ä¸ä¸ª /usr ååº -- /usr æ¯Linuxç³»ç»å¤§é¨ååºç¨è½¯ä»¶çæå¨çå°æ¹ã æ ¹æ®æ¨äº¤æ¢å®
è£ çå çæ°é以ååè¡çæ¬çä¸åï¼ è¿ä¸ªååºåºè¯¥å¨MBå°MBä¹é´ã å¦æå¯è½ï¼
å°æ大ç空é´ç¨äº/usrååºã ä»»ä½æ¨ä»¥åå°è¦å®è£ çåºäºRPMçå é½ä¼ä½¿ç¨æ¯å ¶ä»ååº
æ´å¤ç/usr空é´ã
ä¸ä¸ª /home ååº â è¿æ¯ç¨æ·çhomeç®å½æå¨å°ï¼å®ç大å°åå³äºæ¨çRed Hat Lin
ux ç³»ç»æå¤å°ç¨æ·ï¼ 以åè¿äºç¨æ·å°åæ¾å¤å°æ°æ®ã
ä¸ä¸ª /var ååº â ææçé®ä»¶åæå°éåï¼ç³»ç»æ¥å¿æ件ççé½åæ¾å¨è¿ä¸ªååºé
é¢ï¼æä»¥ä½ åºè¯¥éå½éæ©ä¸ä¸ªè¶³å¤å¤§ç/varååºã
ä¸ä¸ª /tmp ååº -- 就象å®çååï¼/tmpååºç¨æ¥åæ¾ä¸´æ¶æ件ã 对äºä¸ä¸ªå¤§åçï¼
å¤ç¨æ·çç³»ç»æè ç½ç»æå¡å¨ï¼ä¸é¨å建ä¸ä¸ª/tmpååºæ¯ä¸ä¸ªå¥½ä¸»æãè³äºååºç大å°
ï¼ä½ åªæå¨å®è·µä¸æ¸ç´¢äºã
ä¸ä¸ª /usr/local ååº â è¿ä¸ªååºç¨æ¥åæ¾å å«æç §BSDçç®å½ç»ç»åæ¾ç软件ï¼å¤§
é¨åæºä»£ç ç¼è¯åçç®æ ç¨åºä¹ç¼ºçæ¾å¨è¿éï¼ä½ éè¦ä¸å®ç空é´æ¥åæ¾è¿äºæ件ï¼ä¾
å¦1-2GBã
å°±æå¡å¨æ¥è¯´ï¼åå¨ä¸¤ç§åºæ¬çæè·¯ï¼ä¸ç§æ¯å¨å¼å§çæ¶åéæ©å®è£ ææåºç¨è½¯ä»¶å
ï¼å¦ä¸ç§æ¯å¼å§åªå®è£ æå°ç³»ç»ï¼ç¶åéæ¥å¢å éè¦çå ãé¤éä½ çåºç¨å¯¹å®å ¨æ§å¾æ
æï¼å¦åå»ºè®®ä½ ç¨ç¬¬ä¸ç§æ¹æ³ï¼å¦åä½ ä¼åç°ç 究软件å ä¹é´çä¾èµå ³ç³»æ¯ä¸ç§å¾è®¨å
çå·¥ä½ã
大é¨ååè¡çæ¬å¨å®è£ ç³»ç»çåæ¶å®æ对系ç»çåºæ¬è®¾ç½®ãä½æ¯è¿ç§è®¾ç½®ç¨åºå¹¶ä¸æ¯
é常å¯é ï¼å¦æä½ å¨å®è£ è¿ç¨ä¸åç°é ç½®æç§ç¡¬ä»¶æè ç½ç»ä¿¡æ¯å¤±è´¥ï¼ä½ æ两ç§éæ©ï¼
åæ¢å®è£ æè 忽ç¥ãæ®æ们çç»éªï¼éå¸¸ä½ åºè¯¥å¿½ç¥è¿äºä¿¡æ¯ï¼åªè¦Linuxå®è£ å°äºç³»ç»
ä¸å¹¶ä¸å¯ä»¥å¯å¨ï¼ææçä¸è¥¿é½å¯ä»¥æ工设置ãä¸è¦è½»æå°åæ¢å®è£ è¿ç¨æè éæ°å®è£
ï¼é£æ¯è§£å³windows 9xé®é¢çéå¾ï¼ä¸æ¯Linuxçã
Linuxå¨å®è£ è¿ç¨ä¸éè¦ä¸äºç¡¬ä»¶çç¸å ³ä¿¡æ¯æè½æ£ç¡®é ç½®ç¸åºç硬件ï¼å¨å®è£ Linux
åä¸å®è¦ç¥éä½ ä½¿ç¨ç硬件信æ¯ï¼æ好å¨å®è£ æ¶æä½ ä½¿ç¨çææ硬件说æ书æ¾å¨æè¾¹ï¼
å¦ï¼ä¸»æ¿ãæ¾ç¤ºå¡ãæ¾ç¤ºå¨ãè°å¶è§£è°ãScsiå¡çï¼ï¼ä¹å¯åºç¨ä¸äºç¸åºç软件æ£æµä½
ç硬件信æ¯ç¶åè®°å½ä¸æ¥ãå½ç¶å¦æä½ æ©å¯¹ä½ ç硬件äºå¦ææå°±ä¸å¿ è¿æ ·éº»ç¦äºã
ä¸è¬ç¨æ·åªéç¥éç½å¡çåå·ãä¸æå·åå°åãé¼ æ åè°å¶è§£è°çç±»åå端å£ãæ¾ç¤º
å¡çç±»ååæ¾åç大å°ãæ¾ç¤ºå¨çç±»åååæ°ãå åç大å°ãå 驱çç±»åè¿æ¥å°åªä¸ªå£
ä¸ã声å¡çç±»åä¸æåå°åãå¦ç¨scsiå¡å¿ é¡»ç¥éç±»åã为äºè¿æ¥ç½ç»ï¼è¿éç¥éæºå¨
çååãIPå°åãåç½æ©ç ãè·¯ç±å°åãååæå¡å¨çå°åã
å¨è®°å½äºåç§å®è£ çå¿ è¦ä¿¡æ¯ä¹å,ä¸ä¸æ¥æ¯éæ©å®è£ ä»è´¨ã
ä»CDROMå®è£ æ»æ¯æç®åçãç®å大é¨åç³»ç»å¯ä»¥ä»å çå¯å¨ï¼æä»¥ä½ éè¦çä» ä» æ¯è®¾
置系ç»å¯å¨é¡ºåºä¸ºCDROMä¼å ãå¦æä½ çLinuxåè¡çæ¬æ¯å¤å ççï¼é常å¨åºæ¬å®è£ ç
æ¶ååªéè¦ç¬¬ä¸å¼ å çã
ä»ftpå®è£ ä¹æ¯ä¸ç§å¾å¸¸ç¨çæ段ãè¿ç§å®è£ æ常è§çåºç¨æ¯ä½ æ³è¦å¨ä¸å°æ°çæºå¨ä¸
å®è£ ä¸ä¸ªå ¨æ°çLinuxåè¡çæ¬çæ¶åï¼æ¯ç«CD-Rå»å½æºä¸æ¯æ¯äººé½æçãå¦æè¦ç¨ftp
å®è£ ï¼ä½ å¿ é¡»é¦å ç¡®å®ä½ 使ç¨çåè¡çæ¬æ¯å¦æ¯æftpå®è£ ãæäºçæ¬æ¯æ æ³ä»ftpå®è£
çã
å¦æä½ ç¡®å®ä½ ççæ¬æ¯æftpå®è£ åè½ï¼èä¸ä½ çLinuxåè¡çæ¬ç¨çå æ ¸æ¯æä½ çç½
å¡ï¼ä½ éè¦å两件äºï¼ï¼1ï¼æåè¡ççå 容æ·è´å°ftpæå¡å¨çæ个ç®å½ä¸é¢ï¼å¹¶ä¸è®°
ä¸ç®å½åï¼ï¼2ï¼å¶ä½è½¯çå¼å¯¼çã
å¦å¤çå®è£ æ¹å¼æ¯éè¿NFSæè sambaæ°æ®æºãè¿ä¸¤ç§ä¸è¥¿åç¨ftpå®è£ å·®ä¸å¤ï¼ä¸è¿ä¸
个使ç¨NFSï¼å¦ä¸ä¸ªä½¿ç¨çæ¯Windows çæ件/ç®å½å ±äº«ï¼æ¯æSAMBAæ°æ®æºçå®è£ çåè¡
çæ¬æ´å°ä¸äºï¼èä¸ä¸è¬æ们ä¹ä¸å»ºè®®ä½¿ç¨è¿ç§åè½ï¼ä¸»è¦æ¯æ件å大å°åçé®é¢ï¼ã
å¦æä½ éæ©çæ¯ä»è½¯çå¯å¨ï¼é£ä¹ä½ éè¦æ ¹æ®æ¯CD-ROMè¿æ¯ç½ç»å®è£ æ¥ç¡®å®ä½¿ç¨åªä¸
ç§è½¯çæ åï¼ä¸è¬æ åµä¸ï¼Linuxçå¯å¨è½¯çæ¯ç¨å ¨çæ åçæ¹æ³åæ¾å¨å çä¸ï¼å¯ä»¥ä½¿
ç¨DOSä¸é¢çrawriteï¼å¨å çä¸æï¼æè Linuxä¸é¢çddå½ä»¤å¤å¶å°è½¯çä¸ä½¿ç¨ã
3.2 RedHat çå®è£ è¿ç¨
ä»è¿ä¸èå¼å§ï¼æ们ä»ç»å ç§Linuxåè¡çæ¬çå®è£ è¿ç¨ãè¿ééæ©äºä¸ä¸ªçæ¬ï¼Red
Hatï¼Turbo Linuxä¸æçåSuSEãRedHatæ¯æ容æå®è£ ççæ¬ï¼å¦æä½ æ¯ä¸ä¸ªæ°æï¼ç
çä¸é¢çå®è£ è¿ç¨å°±åºè¯¥å¯ä»¥é¡ºå©å°å®è£ æåã
3.2.1 建ç«Linuxå¼å¯¼ç
å¦æä½ ç主æ¿ä¸æ¯æå 驱å¯å¨æè ä½ è¦ä»è½¯çå¯å¨æ¥å®è£ RedHaté£ä¹å°±éè¦å¶ä½å¯å¨
çï¼å¨RedHat çå çä¸å å«ä¸ä¸ªå¯å¨çæ 象æ件ï¼åªè¦å°è¿ä¸ªæ件ç¨ç¸åºçç¨åºåå°è½¯
çä¸å°±å¯ä»¥å¶æå¯å¨è½¯çã
ä»Redhat 6.1以åççæ¬åªæä¾ä¸ä¸ªæ 象æ件å³å¯å®è£ ï¼å¦ä»å 驱å硬çå®è£ ç¨\ima
ges\boot.imgï¼å¦ä»ç½ç»å®è£ ç¨\images\bootnet.imgãå¯å¨çå¯ä»¥å¨DOSæè Linuxä¸é¢
å¶ä½:
å¨ Dos ä¸å¶ä½å¯å¨ç
E:\images>\dosutils\rawrite (E 为 å ççç符)
åå¦æ¯ä½¿ç¨boot.imgï¼åªè¦å¨æ示âEnter dis images source files name ï¼âæ¶è¾
å ¥ boot.imgï¼æå车åºç°æ示âEnter target diskette driver: âè¾å ¥ Aï¼ å车
ãå ¶ä»ç±»åçå¯å¨çå¶ä½æ¹æ³ç±»ä¼¼ã
å¨Linux ä¸å¶ä½å¯å¨ç
å¶ä½å¯å¨çï¼ dd if=boot.img of /dev/fd0 bs=k
建ç«DOSå¼å¯¼çåç¨Loadlinå¼å¯¼
Linuxæä¾äºä¸ä¸ª Loadlinçåºç¨ç¨åºå¯å¨dos ä¸å¯å¨Linuxçå®è£ ç¨åºï¼é¦å å¶ä½ä¸
å¼ doså¯å¨çæ·è´ç¸åºçæ件ï¼åå¨è¿å¼ çä¸å è½½å 驱ç驱å¨ç¨åºï¼ç¶åç¨è¿å¼ çå¯å¨è®¡
ç®æºï¼è¿å ¥Linux åè¡æ¿ç dosutils ç®å½è¿è¡ autoboot .bat å°±å¯è¿å ¥å®è£ çé¢ã
autoboot.batçå 容å¦ä¸ï¼
loadlin autoboot\vmlinuz initrd=autoboot\initrd.img
3.2.2 å¼å§ç³»ç»å®è£
æ¬ä¹¦ä½¿ç¨Redhat 6.1ä½èä¾.
使ç¨åè¡å çæè å¶ä½å¥½çå¯å¨è½¯ççå¯å¨æºå¨ï¼å¨lilo:æ示符ä¸é¢ç´æ¥å车ï¼å°è¿
å ¥å®è£ çé¢ã
å¦æä½ æ¯ä»è½¯çå¯å¨æºå¨ï¼é£ä¹å°è¿å ¥ä¸é¢çå®è£ è¿ç¨ï¼å¦åï¼å¦ææ¯ä»cd-romå®è£
ï¼å°ç´æ¥è¿å ¥ç¬¬åæ¥ã
éæ©è¯è¨
å¾3.1 éæ©è¯è¨
Redhatæä¾äºå¤ç§è¨æ¯æï¼å¾éæ¾æ²¡æä¸æï¼åªå¥½éæ© Englishã
éæ©é®ç
ç³»ç»æ示ç¨æ·éæ©é®çç±»å,éæ© uså³å¯ ,ä¹å¯å¨å®è£ åç¨ setup ç¨åºæ´æ¹æ¤é¡¹ã
å¾3.2 éæ©é®ç
éæ©å®è£ æ¹å¼
å¾3.3 éæ©å®è£ æ¹å¼
é常æ们éæ©ä»cdromå®è£ ï¼åªè¦ç´æ¥å¨å¯¹åºæ ç®éé¢æä¸å车就å¯ä»¥äºãå¦æè¦éæ©
ä»ftpå®è£ ï¼é£ä¹å¨éæ©äºftpä¹åï¼è¿è¦ç»åºftpæå¡å¨çipå°åï¼æ¬æºå¨çipå°ååL
inuxåè¡çå¨æå¡å¨ä¸çç®å½ã
å¦æä½ æ¯ä»è½¯çå®è£ ï¼é£ä¹è¿ä¸æ¥ä¹åï¼ç³»ç»å°åæ¢å°å¾å½¢æ¨¡å¼ï¼ç»§ç»å®è£ è¿ç¨ã
é ç½®é¼ æ
ç³»ç»è½è¯å«å¤æ°çé¼ æ ç±»åï¼è¿é¡¹å¯ä½¿ç¨é»è®¤å¼ï¼å¦æä½ ç¨çæ¯ä¸¤é®é¼ æ ä½ è¿åºè¯¥é
æ© 'Emulate 3 mouse'å¦åå¨x windows ä¸æä¸äºåè½ä¸è½ç¨ã
å¾3.4 é ç½®é¼ æ
欢è¿çé¢
è¿æ¯ä¸ä¸ªæ¬¢è¿çé¢ï¼æ å¿ä¸ä¸æ¥å°è¿å ¥æ件æ·è´åç³»ç»è®¾ç½®ã
å¾3-5 欢è¿çé¢
å®è£ ç±»å
å¾3-6 éæ©å®è£ å 容
为äºæ¹ä¾¿ç¨æ·Redhatçå¼å人å设计äºå ç§å®è£ ç±»åï¼å¯æ ¹æ®éè¦æ¥éæ©ï¼ä½å¤§å¤æ°
ç¨æ·éæ©'Custom'å®å¶å®è£ ï¼è¿æ ·å¨ä»¥åçå®è£ è¿ç¨ä¸å¯è¯¦ç»ç对Redhatæä¾ç软件å
è¿è¡éæ©ï¼èªç±åº¦æ´å¤§ã
建ç«ååº
å¾3-7 建ç«ååº
Redhat æä¾äºä¸ä¸ªç®å使ç¨çå¾å½¢åçååºå·¥å ·ï¼å©ç¨è¿ä¸ªå·¥å ·ä½ å¯æ¹ä¾¿ç建ç«ï¼ä¿®
æ¹ï¼å é¤ååºï¼ååºçç§ç±»å大å°å¯åçæ¬ç« ç1.3ä¸çè§åååºï¼å¦å»ºç«ä¸Mçæ ¹å
åºï¼éå Add ï¼ç¶åå¨ä¸å¾ç 'Mount Point:'ä¸è¾å ¥ '/'ï¼'Size(Megs):' ä¸è¾å ¥ '
' ï¼ 'Partition Type:' éæ© 'Linux Native ' ï¼æåæ Ok 确认å³å¯ã
å¾3-8 建ç«ååºï¼2ï¼
éæ©æ ¼å¼åçååº
å¾3-9 æ ¼å¼åååº
ä¸å ¶å®çæä½ç³»ç»ä¸æ ·å¨ä½¿ç¨ååºåè¦å¯¹ååºè¿è¡æ ¼å¼åï¼æ ¼å¼åæRedhat å¯è¯å«ç
ååºã注æååä¸æ¯ä¸ªååºé½åºè¯¥æ ¼å¼åãå¦æä½ ç硬ç使ç¨çæ¶é´è¾é¿æåæååï¼
é£ä¹å°±éæ©' Check for bad blocks while formatting'æåçåºåæ å¿ä¸ï¼ä»¥å æ°æ®
åå°ååä¸ä¸¢å¤±ãå¦åï¼å¯¹äºæ°ç硬çåªè¦ç®åå°éæ©æ ¼å¼åå°±è¡äºã
Liloçé ç½®
å¼å¯¼Linux éè¦å®è£ ä¸ä¸ªç¨æ¥æå æ ¸è£ å ¥è®¡ç®æºçç¨åºï¼å¨Intel çå ¼å®¹PC ä¸ä½¿ç¨L
iloãå¨å®è£ çé¢å æå¦ä¸å 个é项ï¼
Create boot disk
å建软çå¯å¨çãé»è®¤æ¯å 许ï¼å¦ä¸å建ï¼ç¨é¼ æ ç¹å»åé¢çå°æ¹åè®©å ¶å¸èµ·ãä¸è¬
æ们ä¸å¿ å建è¿ä¸ªä¸è¥¿ï¼è¯¦æ è§ç¬¬åç« å第ä¹ç« ã
Do not install LILO
ä¸å®è£ LILOï¼å»ºè®®ä½ ä¸è¦éæ©è¿ä¸ªé项ï¼å¦åä½ æ æ³å¯å¨ç³»ç»ã
Install LILO boot record onï¼
询é®LILO å®è£ å¨åªå¿ï¼é常éåå®è£ å¨ MBR ä¸ã
Use linear mode
è¿ä¸ªé项æ¯è¦æ±Linux使ç¨SCSIç线æ§æ¨¡å¼ãå¦æä½ æä¸ä¸ªè¶ 大çæè æ¯è¾ç¹æ®çSCS
I硬çï¼éæ©è¿ä¸ªé项ã
ä¸é¢çåºåæ¯è¡¨æäºååºç详ç»æ åµï¼é常ä¸ç¨ä½ä¿®æ¹ã
å¾3- é ç½®lilo
éæ©æ¶åº
ä¸å½ç¨æ·å¨WORLD项éæ©äºæ´²ï¼å¨ç¸é¢çæ»å¨æ¡å éä¸æµ·æ¶é´ã
å¾3- 设置æ¶åº
è´¦å·é ç½®
å¾3- 设置å¯ç åè´¦å·
Redhat å¨å®è£ è¿ç¨ä¸éè¦è®¾ç½® ROOT ç¨æ·çå¯ç ï¼åæ¶ä¹å¯å»ºç«æ°çç¨æ·ï¼ä¸è¿å¾å°
æ人å¨æ¤æ¶å»ºç«ç¨æ·ãåªè¦è¾å ¥rootå¯ç 并ä¸ç¡®è®¤å°±å¯ä»¥äºã
认è¯é ç½®
å¾3- 身份éªè¯è®¾ç½®
è¿ä¸ªé ç½®é常ä¸éè¦æ¹å¨ï¼å®è¡¨ç¤ºè´¦å·ç身份认è¯åå£ä»¤çå å¯æ¹å¼ãå¨Redhat 6.1
ä¸ï¼å£ä»¤éªè¯ä½¿ç¨MD5å å¯æ¹å¼ï¼å®å ·ææ´é«ç对æè®åçæµç®æ³çè½åãä¸è¿MD5ä¸æ¯
ä¸ä¸ªä¸¥æ ¼æä¹ä¸çå å¯ç®æ³ï¼å æ¤æ¯ä¸ä¸ªå¯é项ãä½ ä¹å¯ä»¥ä½¿ç¨åå§çDES并ä¸ä¸ä½¿ç¨M
D5ãå½ç¶è¿æå³çéä½äºç³»ç»çå®å ¨å¼ºåº¦ã
Xé ç½®
å¾3- X windowé ç½®
æè°X é 置主è¦æ¯ææ¾ç¤ºå¡åæ¾ç¤ºå¨çé ç½®ï¼å¦ä¸æ³å¨æ¤é ç½®å¯é Skip x configur
ation ï¼çå®è£ ç»æåç¨ setup åºç¨ç¨åºæ¥è®¾ç½®ã
éæ©å®è£ çåºç¨ç¨åº
ä½ å¯æ ¹æ®éè¦éæ©ä½ æ³è¦çåºç¨ç¨åºï¼å¦æä½ ç硬ç空é´è¶³å¤å¤§æ们æ»æ¯å»ºè®®å®è£ æ
æç软件å ãï¼æåçeverythingé项ï¼
å¾3- éæ©å®è£ ç软件å
ï¼ï¼å®è£ 软件å
ç°å¨å¼å§è½¯ä»¶å çæ·è´äºï¼èå¿ççå ååéå°±å¯ä»¥äºã
å¾3- å®è£ 软件å
å¨æ¤å®è£ è¿ç¨ä¸æ²¡ææå°ç½ç»é¨åï¼å¯ç¨å®è£ åç¨ netconf è¿ä¸ªåºç¨ç¨åºæ¥å®æï¼
åé¢çç« èæ详ç»ç说æã
3.3 Turbolinuxä¸æçå®è£ è¿ç¨
è¿éä»ç»çæ¯TurboLinux 4.0Chineseçå®è£ è¿ç¨ãç®åTurboLinux 6.0å·²ç»åå¸äºï¼
ä¸è¿ä¸¤è å¨å®è£ ä¹é´çå·®å«å ä¹å¯ä»¥å¿½ç¥ï¼ä½ å¯ä»¥èªå·±ççèªå·±æ¿å°çTLCçæ¬ã
3.3.1 å¯å¨Turbolinux å®è£ ç¨åº
ç´æ¥ç¨CDROMå¯å¨
åªè¦ä½ çBIOSæ¯æCD-ROMå¯å¨ï¼ä½ å°±å¯ä»¥ç¨è¿ç§æ¹å¼ã ç´æ¥æå çæå ¥å 驱ï¼å¼å¯¼æº
å¨å°±å¯ä»¥äº.
å¨DOSä¸ç¨LoadLinå¯å¨
ä»DOSå¯å¨ï¼è½¬æ¢å°å ç驱å¨å¨ï¼ä¾å¦e:ï¼ç¶åè¿å ¥åç®å½dosutils/ ï¼è¾å ¥å½ä»¤aut
oboot 并å车ï¼å°±å¯ä»¥å¼å§å®è£ TurboLinuxã
å©ç¨è½¯çå¯å¨
å¦æä¸é¢ç两ç§å®è£ æ¹å¼é½ä¸è½å·¥ä½ï¼ å°±å¿ é¡»å©ç¨è½¯çæ¥å¯å¨å®è£ TurboLinuxï¼ä¸ç®¡
ææ ·ï¼æä¸å»ºè®®ä½ 使ç¨è¿ç§åè½ãå¦æä½ ä¸å®è¦ç¨ï¼ä½ å¯ä»¥èªå·±çTurboLinuxé带çå®
è£ æåã
3.3.2 TurboLinuxå®è£ è¿ç¨
TurboLinuxçå®è£ è¿ç¨æ¯ä¸æçï¼æ以æ们ä¸é¢åªæ¯ç®åå°ä»ç»ä¸ä¸ï¼å ¶å®ä½ åªè¦ä»
ç»ç 究ä¸ä¸è¯´æ就差ä¸å¤äºã
1) éæ©æ¾ç¤ºæ¨¡å¼
æ¬çªå£ä¼è¯¢é®ç¨æ·æ¯å¦ä½¿ç¨å½©è²çæ¾ç¤ºæ¨¡å¼ï¼ç¼ºçæ¯YESï¼ä¸è¬æ åµä¸ï¼æå车 å°±å¯
以ãé¤äºæäºåè²æ¾ç¤ºå¨ä»¥å¤ã
å¾3- éæ©æ¾ç¤ºå¨ç±»å
欢è¿ç»é¢ï¼ç¶åå®è£ ç¨åºå°ä¼æ¾ç¤ºä¸ä¸ªæ¬¢è¿ç»é¢ï¼æ¨åªéè¦æå车跳è¿å³å¯ã
2) éæ©é®çç±»å
å¾3- éæ©é®çç±»å
ç¨æ·å¨æ¤å¤è®¾ç½®é®çå¸å±ï¼èä¸å½ç¨æ·ä¸è¬é½ç´æ¥é®å ¥å车使ç¨ç¼ºç设置US é®çã
3) PCMCIA
å¦ææ¨çç³»ç»ä¸æPCMCIAå¡ï¼ææ¶è¢«ç§°ä½PC Cardï¼ï¼éæ©'æ¯'ï¼å®è£ ç¨åºä¼æéæ¨æ
å ¥ç¹å«è®¾å¤é©±å¨çï¼ä¸ç¶æ¨å°æ æ³é©±å¨æ¨çPCMCIA设å¤ã å¦æ没æï¼ç´æ¥éâå¦â继ç»
ã
4ï¼ ç¹å«è®¾å¤é©±å¨
å¦æå®è£ ç¨åºæéæ¨éè¦ç¹å«è®¾å¤é©±å¨çï¼ç§»å»å¯å¨çï¼å¹¶ä¸æå ¥ç¹å«è®¾å¤é©±å¨çã
é常è¿æ¯ä¸å¿ è¦çï¼é¤éä½ ä½¿ç¨æç§ä»è½¯çå¯å¨çå®è£ æ¹å¼ã
TurboProbe
å¾3- æ£æµç¡¬ä»¶
TurboProbeæ¯TurboLinuxå®è£ ç¨åºæç¹æçä¸é¨åï¼ TurboProbeå¯ä»¥èªå¨æ£æµæ¨ç³»ç»
ä¸å®è£ çISA设å¤/PCI设å¤/SCSI设å¤/ç½å¡/并å£IDE设å¤ãå¦æç³»ç»å¨è¿ä¸ªè¿ç¨ä¸æèµ·
äºï¼éæ°å¯å¨æºå¨ã
6ï¼ å®è£ ä»è´¨
å¾3- éæ©å®è£ ä»è´¨
TurboLinuxæä¾äº4ç§çæ¹å¼ï¼æ们åªä»ç»é¤'硬çå®è£ 'æ¹å¼å¤ç3ç§æ¹å¼ã
CD-ROM å®è£ - æ常ç¨çå®è£ æ¹å¼ï¼å¦ææ¨éæ©äºè¿ç§å®è£ æ¹å¼ï¼ä½ å°±è¦ç¨ç¬¬ä¸å¼ Tu
rboLinuxå çå¯å¨è®¡ç®æºï¼èåTurboLinuxå°èªå¨è¿å ¥å®è£ çé¢ã
NFS æ¹å¼å®è£ - å¦ææ¨çæºå¨å¨ä¸ä¸ªå±åç½ä¸ï¼ 并ä¸è¯¥å±åç½ä¸æå¦å¤ä¸å°æå¡å¨
ä¸ä»¥NFSæ¹å¼å ±äº«åºä¸ä»½TurboLinuxçæ·è´ãé£ä¹æ¨å°±å¯ä»¥å©ç¨è¿å° æºå¨ä½ä¸ºNFSæå¡å¨
æ¥å®è£ TurboLinuxãå¨å®è£ ä¹åæ¨å¿ é¡»ä»æ¨çç³»ç»ç®¡çåå¤è·å¾æ¨ç³»ç»çTCP/IP设置å
NFSæå¡å¨ çé 置信æ¯ãéæ©è¿ç§å®è£ æ¹å¼å°ä¼å¼¹åºå¯¹è¯æ¡ ç½ç»è®¾ç½®ã æ¨éè¦è¾å ¥æ¨
å¾å°
自动化运维初级村Paramiko vs Netmiko
秉承着“最小化上手范围”的原则,相信大家经过新手村二十多个章节的学习,都已经对Python有了初步的了解,基础的学习必然是略显枯燥无聊的,但希望大家可以在“新手村”系列视频和文章的指导下有自己阅读程序,分析需求,美女图源码编写程序,调试程序的基本技能。
以上也是进入初级村的最低门槛,如果还没有具备上述能力的朋友,衷心的希望你可以返回新手村进行学习,切勿囫囵吞枣,以太访 源码 解析盲目求快。
初级村包含的内容:Paramiko和Netmiko,两者的使用方式及优劣;Python正则解析,将通过SSH收集回来的各种信息进行正则解析;番外:Text-FSM解析;Python SNMP,如何使用Python调用SNMP采集指令,并讲解OID使用方式;NetConf,如何通过NetConf对网络设备进行操作;Crontab并回调CMDB,如何设置定时执行SSH任务进行定期巡检,并更新回写CMDB;番外:Python Scheduler;Flask Web框架,将SSH和NetConf与Web框架相结合,通过API方式或前端调用其执行。ubuntu redis源码安装
在自动化运维领域里面,单从服务器运维的角度来讲,由于可以提前对服务器做系统的定制安装,所以一些大厂会选择在装机时植入特定的Agent,以此实现远程控制服务器的目的。不过对于大部分的公司,服务器运维或者网络设备运维都仍然依靠远程SSH这一方法,所以我们使用Python作为自动化运维的编程语言的话,就非常需要一个第三方包来实现这一功能,而Paramiko和Netmiko可以说是扛把子的角色。相信看这个教程的在线报价软件源码朋友肯定都听过这两个工具包,但可能并不是所有的人都了解这两个包之间的关系。除此之外,网上五花八门的对于用哪个更好的争论也难以分辨。那么这个章节就先给大家介绍一下这两个包的来龙去脉,以及我个人在工作中对两个包都深度使用过之后的体验。
OpenSSH,介绍第三方库之前有必要先科普一下关于SSH的知识。我们经常谈论的SSH是一个传输层协议,相比Telnet来说可以与远端设备建立更安全的连接通道,对传输的内容进行加解密处理,所以基于安全考虑,oppo售后平台源码企业中几乎所有的对远程设备的连接都要求使用SSH连接。
SSH协议有两种不兼容的版本:SSHv1和SSHv2。那么设备想要支持SSH协议,就需要在设备上安装一个与之相匹配的服务端/客户端的应用程序,而OpenSSH就是目前使用最为广泛的SSH协议的开源实现。
对于较老的SSHv1,由于存在加密算法的专利问题和数据完整性的缺陷,OpenSSH已经删除了对其的支持。所以目前OpenSSH主要支持SSHv2。
OpenSSH套件包含以下工具:
整体的结构图如下所示:
Paramiko/Netmiko简介:Paramiko遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接;模块本身使用Python语言编写和开发,只有像crypto这样的核心函数才会用到C语言。
Paramiko目前是Python中应用最广的SSH模块,大家耳熟能详的Ansible, Netmiko,Nornir,NAPALM其实都是用到了Paramiko来做SSH的实现,所以也可以从中看出,其实Paramiko的角色其实是Python语言里实现SSH功能的底层工具包。
那么既然是底层工具包就必然为了具备完备的通用性而损失了易用性,而Paramiko过于底层的方法调用也是被网友最为诟病的原因。
但我们已经提到,Python想要实现SSH远程连接,就逃不开Paramiko,那么我们就非常有必要了解一下Paramiko的基本实现原理和主要的组成类。
源码核心架构图:Paramiko中几个大的概念和相互之间的关系基本就是如上图所示了(一些身份认证类和其他杂类并没有包含其中,在学习初期也没有深究这些的必要)。
总体来说Paramiko的源码核心架构并不复杂,但对于使用该包的编程人员来说,暴露了太多底层细节。因为其最High-Level的类就是一个SSHClient对象,而一个SSHClient对象又必须通过创建Channel来完成数据的收发。
所以说Paramiko其实就是一个实现了SSH功能的底层工具包,它可以连接任何兼容SSHv2的设备,包括:服务器,网络设备,打印机,甚至是监控摄像头,并且它最核心的功能就是:建立SSH连接 -> 发数据 -> 收数据。
Netmiko:但看本系列的教程的朋友应该大多数都是具备网络运维背景的朋友,想实现一些网络运维中的自动化能力,那么平时所要面对的就都是网络设备,我这里推荐大家使用Netmiko。
我们可以通过一个流程图来表示一下除了Paramiko本身的底层能力外,还需要哪些步骤才能完成一次与网络设备的交互。
交互流程图:从上述的流程图中可以看出,除了Paramiko支持的底层SSH连接与数据发送接收功能之外,我们想要与网络设备进行交互还需要诸多地方需要处理,而Netmiko正好可以提供以上这些功能,这也是我们为什么选择用Netmiko的原因。
其实网上有很多文章都有对Paramiko和Netmiko的对比,但大多数的解释都不够准确,并且还有很多直接通过代码来演示区别的,更是让一些编程基础不太好的朋友十分头疼,所以我希望大家可以通过这一章节,非常清晰的知道,两者之间的区别究竟有哪些。
这一章节并没有提到关于使用Paramiko或者Netmiko来进行连接设备的代码,但对Paramiko的源码核心架构做了介绍,这也是大家后续使用Netmiko必须要掌握的基础知识,并且对于Netmiko基于Paramiko的改进也通过流程图展示给大家,对后续的深入理解及二次开发会非常有帮助。