ZTP ผ่าน USB — เอกสารทดสอบหน้างาน

ยังไม่เคยใช้ ZTP จริง หน้านี้คือการทดสอบครั้งแรก ใช้ สวิตช์ตัวเดียว ที่หยิบออกมาจากล็อตที่กำลังจะทำอยู่แล้ว — ถ้าไม่ขึ้นก็เสียบ console ทำตามปกติ เสียเวลาเพิ่มไม่กี่นาที และ downside คือสิ่งที่จะทำอยู่แล้ว

ทุกอย่างในหน้านี้อ้างจากคู่มือ Huawei โดยตรง (V200R011 Basic Configuration และ CloudEngine S3700/S5700/S6700 V600R025C00 Basic Configuration) ไม่มีส่วนที่เดา — ลิงก์อยู่ท้ายหน้า

? ห้าคำถามที่การทดสอบนี้ต้องตอบ

  1. ไฟล์แบบไหนที่อุปกรณ์กิน — ไล่เป็นขั้น อย่าลองแค่แบบเดียว ชี้ขาดว่าเครื่องมือ access-switch จะต่อยอดไป export ให้ ZTP ได้แบบไหน — ถ้า batch file ใช้ได้ แทบไม่ต้องแปลงอะไรเลยเพราะมันพ่นคำสั่งอยู่แล้ว · ต้องมีตัวเปรียบเทียบ ไม่งั้นถ้าไฟล์ของเราไม่ขึ้น จะแยกไม่ออกว่าเพราะไฟล์ หรือเพราะ index file / แฟลชไดรฟ์ / ESN ผิด
  2. กับดัก TIMESN เป็นยังไง — ตั้งใจให้ล้มหนึ่งครั้ง แล้วลองใหม่โดยไม่แก้ TIMESN อยากเห็นอาการ "เสียบแล้วเงียบ" ด้วยตาตัวเองตอนนี้ ดีกว่าไปเจอครั้งแรก ตอนอยู่หน้างานกับสวิตช์ 30 ตัว
  3. config ที่ลงไปตรงกับที่ตั้งใจไหมdisplay current-configuration เทียบกับที่เครื่องมือพ่นออกมา
  4. ปิดไฟแล้วเปิดใหม่ config ยังอยู่ไหม — deploy เสร็จ → ถอดไฟ → เปิดใหม่ → display current-configuration ข้อที่เสียหายหนักที่สุดถ้าพลาด เพราะเวิร์กโฟลว์จริงคือ deploy เสร็จ ถอดไฟเก็บกล่องส่งมอบทันที · เอกสารเขียนเรื่อง batch file ว่า "the command needs to be saved to the configuration file. Otherwise, the command will be lost after the device restarts" — แปลว่า batch file ทำงานกับ running config และไม่ได้แปลว่าจะลง startup เสมอไป · ส่วน .cfg (EFFECTIVE_MODE=0) ระบุว่า activate ตอนรีสตาร์ต คือไปเป็น startup config ปลอดภัยกว่า · ถ้าไม่เช็คข้อนี้ อาจส่งมอบสวิตช์ 30 กล่องที่ข้างในว่าง
  5. เครื่องที่ออนไฟทิ้งไว้ ยังรับ USB อยู่ไหม — ออนไฟไว้ ~20-30 นาทีโดยไม่เสียบอะไร แล้วค่อยเสียบแฟลชไดรฟ์ เอกสารไม่ได้บอกเรื่องนี้ไว้ (ไล่ดู Understanding ZTP, Default ZTP Settings, Starting USB-based Deployment แล้ว) แต่ขั้นตอนทางการมี "(Optional) reboot fast" อยู่ก่อนบรรทัดให้เสียบ USB ซึ่งถ้ารอได้ตลอดก็ไม่ต้องมีขั้นนี้ · ตอบข้อนี้แล้วจะรู้ว่าหน้างาน 30 ตัว ควรออนไฟทีละเครื่อง หรือออนทิ้งไว้ทั้งแถวได้เลย

§ ไฟล์ config เอามาจากไหน — และลำดับที่ควรลอง

ลองทีละขั้น ขั้นก่อนหน้าคือตัวเปรียบเทียบของขั้นถัดไป · ล้มขั้นไหนก็รู้ทันทีว่าปัญหาอยู่ตรงไหน

#ไฟล์ได้มายังไงตอบอะไร
1export จากเครื่องจริง ไม่แก้เลย จากสวิตช์ที่ config เสร็จแล้ว control — เส้นทาง USB ทั้งหมด (index file, แฟลชไดรฟ์, ESN) ใช้ได้ไหม
2export แล้วแก้แค่ sysname / IP เปิดไฟล์ขั้น 1 แก้สองบรรทัด อุปกรณ์ตรวจ integrity ของไฟล์ config หรือเปล่า — ถ้าขั้นนี้พัง ขั้น 3 ไม่มีทางผ่าน
3สร้างเองทั้งไฟล์ จากหน้า access-switch คำถามจริง
4batch file (คำสั่งดิบ) ก๊อปคำสั่งจากหน้า access-switch ตรง ๆ ทางเลือกที่เครื่องมือเราพ่นอยู่แล้ว

คำสั่งดึงไฟล์ออกมา:
V600 — save shareable-configuration <ชื่อ>.cfg (เอกสารแนะนำอันนี้ ได้ไฟล์ที่ตัดส่วนเฉพาะเครื่องออก)
V200 — save ตามปกติ แล้วดูชื่อไฟล์ที่ระบบใช้ด้วย display startup (ปกติ vrpcfg.zip) แล้ว copy ลงแฟลชไดรฟ์ · ชื่ออุปกรณ์ USB ต่างรุ่นไม่เหมือนกัน (usb1: / usb:) เช็คด้วย dir ก่อน

โครงของ batch file (ขั้น 4) — ตามตัวอย่างในเอกสาร V600 ซึ่งขึ้นต้นด้วย return แล้ว mmi-mode enable:

return
mmi-mode enable          ← ปิดการถามยืนยัน เพราะไม่มีคนตอบ Y/N
system-view
  ...คำสั่งทั้งหมดจากหน้า access-switch...
return
save                     ← ต้องมี ไม่งั้นค่าอยู่แค่ running config

mmi-mode enable คือหัวใจ — มันคือคำสั่งที่ปิดการถามยืนยัน แบบโต้ตอบ มีไว้สำหรับตอนที่คำสั่งถูกป้อนโดยเครื่องไม่ใช่คน · Huawei ใส่ไว้ในตัวอย่างเอง เพราะ batch file ทำงานแบบไม่มีใครตอบ Y/N · ถ้ามันทำงานอย่างที่ควร save ท้ายไฟล์ก็จะไม่ค้างรอคำตอบ — ยืนยันข้อนี้ตอนเทสต์ พร้อมกับคำถามข้อ 4

save กลับด้านกันระหว่างสองโหมด หน้า access-switch ตัด save ออกจากปุ่มคัดลอก เพราะมันถามกลับแล้วทำให้ paste ผ่าน console รวน · แต่ใน batch file ต้องมี ไม่งั้น config อยู่แค่ running แล้วหายตอนถอดไฟ · คำสั่งเดียวกัน ข้อกำหนดตรงข้าม ขึ้นกับว่าปลายทางเป็นคนพิมพ์หรือเครื่องอ่าน

ทำไม .cfg ปลอดภัยกว่าโดยโครงสร้าง — ไม่ต้อง save เพราะมัน กลายเป็น startup config เลย อุปกรณ์ถูกบอกว่านี่คือไฟล์ config แล้วรีสตาร์ตเข้ามาใช้ ไม่มีสถานะ "อยู่ใน running แต่ยังไม่ลง startup" ให้หายได้ · EFFECTIVE_MODE=0 (activated upon restart) ซึ่งเป็นค่าเริ่มต้นของไฟล์ config ก็สอดคล้องกัน แต่ยังต้องเทสต์ยืนยัน

ขั้น 1 จะได้เครื่องฝาแฝด ไฟล์ที่ export มามี sysname และ IP ของเครื่องต้นทางติดมาด้วย — อย่าลองบนเน็ตเวิร์กที่ใช้งานจริง IP จะชนกัน · ทำบนโต๊ะ ไม่ต้องต่อ uplink

1 เตรียมก่อนไป

2 สร้างไฟล์ index

ปุ่ม ↻ คือทางออกของกับดักข้อ 2 — ลองใหม่ทุกครั้งต้องเปลี่ยนค่านี้ ไม่งั้นอุปกรณ์จะเมินแฟลชไดรฟ์เงียบ ๆ

ทดสอบใช้เครื่องเดียวก็พอ · ถ้ามีสองตัว ตั้งตัวหนึ่งเป็น .cfg อีกตัวเป็น batch file จะตอบคำถามข้อ 1 ได้ในรอบเดียว

ไฟล์ที่ได้

    วางที่ root ของแฟลชไดรฟ์ ชื่อไฟล์ต้องตรงเป๊ะตามแพลตฟอร์ม — smart_config.ini · ไฟล์ config/script วางที่ root เหมือนกัน (หรือระบุ DIRECTORY ถ้าจะแยกโฟลเดอร์)

    เวิร์กโฟลว์ตอนทำจริง (คน 2-4 คน)

    สายพาน: คนแกะกล่อง+เสียบไฟ → คนเดินเสียบ USB → คนถอดไฟเก็บกล่องส่งมอบ

    3 ขั้นตอนที่ไซต์

    1. เปิดไฟทีละเครื่องตอนจะเสียบ อย่าออนทิ้งไว้ทั้งแถวแล้วเดินไล่ — ยังไม่รู้ว่าเครื่องที่ออนไฟค้างไว้นาน ๆ ยังรับ USB อยู่หรือเปล่า (ดูคำถามข้อ 4) · คุณยืนอยู่ตรงนั้นอยู่แล้ว การกดเปิดไฟไม่ได้เสียเวลาเพิ่ม
    2. ให้บูตขึ้นมาก่อน แล้วค่อยเสียบแฟลชไดรฟ์
    3. เผลอออนทิ้งไว้แล้ว → reboot fast หรือปิดเปิดไฟ แล้วค่อยเสียบ · เสีย 1 รีบูต ไม่ใช่ 1 เซสชัน console · อยากเช็คก่อนว่ายังรออยู่ไหม: display ops process current ถ้ายังเห็น ZTP process อยู่ แปลว่ายังทำงาน
    4. เครื่องที่ config ว่าง จะเข้ากระบวนการเอง ไม่ต้องสั่งอะไร · เครื่องที่มี config อยู่แล้วต้องเปิดฟีเจอร์ก่อนถึงจะทำ (ของแกะกล่องจึงใช้ได้เลย)
    5. อย่าพิมพ์ config เดียวกันด้วยมือระหว่างที่มันกำลังทำงาน — เอกสารเตือนไว้ว่า ถ้า deployment ล้ม ค่าที่พิมพ์ไปจะถูกลบไปด้วย
    6. ดูไฟ SYS / USB:
      เหลือง กะพริบช้า (2 วิ/ครั้ง)สำเร็จ
      แดง กะพริบล้มเหลว
    7. ล้มเหลว → อ่าน usbload_error.txt ที่ root ของแฟลชไดรฟ์ บอกสาเหตุไว้
    8. สำเร็จ → ถอดแฟลชไดรฟ์ แล้วเสียบเครื่องถัดไปได้เลยด้วยไดรฟ์อันเดิม
    9. อยากหยุดกลางคัน: display ops process current เอา process ID แล้ว ops stop process <id> (ZTP ทำงานบน OPS) — แต่ค่าที่ลงไปแล้วจะค้างอยู่

    4 บันทึกผล

    พิมพ์ตรงนี้ได้เลย เก็บไว้ในเบราว์เซอร์เครื่องนี้ — กลับมาเปิดทีหลังยังอยู่

    ! กับดักที่เอกสารระบุไว้

    § อ้างอิงเร็ว

    V600 — TYPE_n ที่ใช้ได้: SOFTWARE CFG LIC PAT USER FEATURE-PLUGIN SCRIPT PYTHON_SCRIPT PACKAGE-POOL

    V600 — EFFECTIVE_MODE_n: 0 = มีผลเมื่อรีสตาร์ต (software, config, patch, batch) · 1 = มีผลทันที (license, config, batch, python, patch) · 2 = ไม่ต้อง activate (customized file)
    ค่าเริ่มต้น: software/config = 0 · patch/license/batch/python = 1 · user = 2

    V200 — ฟิลด์ไฟล์: SYSTEM-SOFTWARE (.cc) · SYSTEM-CONFIG (.cfg/.zip) · SYSTEM-PAT (.pat) · SYSTEM-SCRIPT · SYSTEM-USERDEF1..3 · ลำดับการจับคู่เครื่อง: MAC > ESN > DEVICETYPE > DEFAULT

    คำสั่งหา ESN: display device esn · หา MAC: display bridge mac-address · หา DEVICE_TYPE/UNAME: display version

    คุม ZTP: set ztp enable / set ztp disable (เครื่อง config ว่าง เปิดอยู่แล้วโดยค่าเริ่มต้น ไม่ต้องสั่ง) · เครื่องที่มี config อยู่แล้วต้องสั่ง ztp usb-deployment enable ใน system-view ก่อนถึงจะรับ USB — และเอกสารแนะนำให้ undo ztp usb-deployment enable หลังทำเสร็จ ไม่งั้นใครเผลอเสียบแฟลชไดรฟ์ทีหลังจะกลายเป็นอัปเกรดโดยไม่ตั้งใจ บริการสะดุด

    ที่มา — Huawei Support: Making an Index File (V200R011) · Understanding USB-based Deployment (V600R025) · Intermediate File in the INI Format (V600R025) · Configuration Precautions for ZTP (V600R025)