เชฌเชจเชพเชจเชพ เชชเซ€ เช†เชฐ 64 เชฐเชพเช‰เชŸเชฐ - เชกเซ‡เชฌเชฟเชฏเชจ, เชตเชพเชฏเชฐเช—เชพเชฐเซเชก, เช†เชฐเช•เซ‡เชเชจ

เชฌเชจเชพเชจเชพ เชชเซ€ 64 เช เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเซ€ เชœเซ‡เชตเซเช‚ เชœ เชธเชฟเช‚เช—เชฒ-เชฌเซ‹เชฐเซเชก เช•เซ‹เชฎเซเชชเซเชฏเซเชŸเชฐ เช›เซ‡, เชชเชฐเช‚เชคเซ เช•เซ‡เชŸเชฒเชพเช• เชˆเชฅเชฐเชจเซ‡เชŸ เชชเซ‹เชฐเซเชŸ เชธเชพเชฅเซ‡, เชœเซ‡ เชคเซ‡เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชนเซ‡เชคเซเชจเชพ Linux เชตเชฟเชคเชฐเชฃเชจเชพ เช†เชงเชพเชฐเซ‡ เชฐเชพเช‰เชŸเชฐเชฎเชพเช‚ เชซเซ‡เชฐเชตเชตเชพเชจเซเช‚ เชถเช•เซเชฏ เชฌเชจเชพเชตเซ‡ เช›เซ‡.

เชฌเชจเชพเชจเชพ เชชเซ€ เช†เชฐ 64 เชฐเชพเช‰เชŸเชฐ - เชกเซ‡เชฌเชฟเชฏเชจ, เชตเชพเชฏเชฐเช—เชพเชฐเซเชก, เช†เชฐเช•เซ‡เชเชจ

เชนเชพ, เชคเซเชฏเชพเช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ Openwrt เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชธเชฎเชธเซเชฏเชพเช“ เช›เซ‡, เชคเซ‡เชจเซ€ GUI เช…เชจเซ‡ CLI; เชฎเชฟเช•เซเชฐเซ‹เชŸเชฟเช• เช›เซ‡, เชชเชฐเช‚เชคเซ เชซเชฐเซ€เชฅเซ€ เชคเซ‡เชจเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ GUI/CLI เช›เซ‡, เช…เชจเซ‡ เชตเชพเชฏเชฐเช—เชพเชฐเซเชก เชฌเซ‰เช•เซเชธเชจเซ€ เชฌเชนเชพเชฐ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€... เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชฎเชจเซ‡ เชธเซเชŸเชพเชจเซเชกเชฐเซเชก เชฒเชฟเชจเช•เซเชธเชจเชพ เชฎเชพเชณเช–เชพเชฎเชพเช‚ เชฐเชนเซ€เชจเซ‡, เชฒเชตเชšเซ€เช• เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชธเชพเชฅเซ‡เชจเซเช‚ เชฐเชพเช‰เชŸเชฐ เชœเซ‹เชˆเช เช›เซ‡, เชœเซ‡ เชคเชฎเซ‡ เช•เชพเชฎ เช•เชฐเซ‹ เช›เซ‹. เชฆเชฐเซ‡เช• เชฆเชฟเชตเชธ เชธเชพเชฅเซ‡.

BPI, R64, เชธเชฟเช‚เช—เชฒ-เชฌเซ‹เชฐเซเชก เชจเชพเชฎเซ‹ เชนเซ‡เช เชณเชจเชพ เชฒเซ‡เช–เชฎเชพเช‚, เชฎเชพเชฐเซ‹ เช…เชฐเซเชฅ เช เชœ เชนเชถเซ‡ - เชฌเชจเชพเชจเชพ เชชเซ€ R64 เชธเชฟเช‚เช—เชฒ-เชฌเซ‹เชฐเซเชก เชชเซ‹เชคเซ‡.

เชเช• เช›เชฌเซ€ เชชเชธเช‚เชฆ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช. eMMC เชฆเซเชตเชพเชฐเชพ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹

เช•เชพเชฎ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชคเชฎเชพเชฐเซ‡ เชœเซ‡ เชชเซเชฐเชฅเชฎ เช•เซŒเชถเชฒเซเชฏ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชเชธเชฌเซ€เชธเซ€ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เช…เชจเซ‡ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ R64 เชธเชพเชฅเซ‡, เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชคเซ‡เชฎเชพเช‚ เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเซ‹เชก เช•เชฐเชตเซ€ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชฌเชจเชตเซเช‚, เช•เชพเชฐเชฃ เช•เซ‡ R64 เชชเชพเชธเซ‡ เชฎเซ‹เชจเชฟเชŸเชฐ เชฎเชพเชŸเซ‡ เชชเซ‹เชฐเซเชŸ เชจเชฅเซ€ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ HDMI). เชœเซเชฏเชพเชฐเซ‡ เชฌเชงเซเช‚ เชฌเช‚เชง เชฅเชˆ เช—เชฏเซเช‚ - เชตเชพเช‡เชซเชพเช‡, เช‡เชฅเชฐเชจเซ‡เชŸ, เชฌเซเชฒเซ‚เชŸเซ‚เชฅ, เชฏเซเชเชธเชฌเซ€, เชตเช—เซ‡เชฐเซ‡เช เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชฌเช‚เชง เช•เชฐเซเชฏเซเช‚, เชคเซเชฏเชพเช‚ เชเช• UART เช›เซ‡, เชœเซ‡เชจเชพ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชฆเซเชตเชพเชฐเชพ เชคเชฎเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เชถเซเช‚ เช–เซ‹เชŸเซเช‚ เชฅเชฏเซเช‚ เช›เซ‡, เช…เชจเซ‡ เชœเซ‹ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ เชคเซ‹, เช•เชจเซเชธเซ‹เชฒเชฎเชพเช‚เชฅเซ€ เช•เซ‡เชŸเชฒเชพเช• เช†เชฆเซ‡เชถเซ‹ เชชเชฃ เชšเชฒเชพเชตเซ‹.

USB-UART เชฆเซเชตเชพเชฐเชพ R64 เชฅเซ€ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ:

  • เช…เชฎเซ‡ เชฏเซเชเชธเชฌเซ€-เชฏเซเชเช†เชฐเชŸเซ€ เช•เซ‡เชฌเชฒ (PL2303, เชธเซ€เชฐเซ€เชฏเชฒ-เชŸเซ-เชฏเซเชเชธเชฌเซ€) เชฎเชพเชŸเซ‡ เชฐเซ‡เชกเชฟเชฏเซ‹ เชชเชพเชฐเซเชŸเซเชธ เชธเซเชŸเซ‹เชฐ เชชเชฐ เชฆเซ‹เชกเซ€เช เช›เซ€เช.
  • เชเช• USB เช›เซ‡เชกเชพเชจเซ‡ เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เชธเชพเชฅเซ‡ เช…เชจเซ‡ เชฌเซ€เชœเชพ, UART เชจเซ‡ R64 เชธเชพเชฅเซ‡, เชšเชพเชฐเชฎเชพเช‚เชฅเซ€ เชคเซเชฐเชฃ เชตเชพเชฏเชฐ เชธเชพเชฅเซ‡, เชจเซ€เชšเซ‡ เช†เชชเซ‡เชฒเชพ เชšเชฟเชคเซเชฐเชจเซ€ เชœเซ‡เชฎ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ‹
  • เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เช•เชจเซเชธเซ‹เชฒเชฎเชพเช‚ เชšเชฒเชพเชตเซ‹ sudo minicom

เช† เชชเช›เซ€, เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ เช•เชฟเชธเซเชธเชพเช“เชฎเชพเช‚ เชธเชฟเช‚เช—เชฒ-เชฌเซ‹เชฐเซเชก เช•เชจเซเชธเซ‹เชฒ เชฆเซ‡เช–เชพเชถเซ‡ = เชธเชซเชณเชคเชพ.
เชคเชฎเซ‡ เชตเชงเซ เชตเชฟเช—เชคเซ‹ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช…เชนเซ€เช‚.

เชฌเชจเชพเชจเชพ เชชเซ€ เช†เชฐ 64 เชฐเชพเช‰เชŸเชฐ - เชกเซ‡เชฌเชฟเชฏเชจ, เชตเชพเชฏเชฐเช—เชพเชฐเซเชก, เช†เชฐเช•เซ‡เชเชจ

เช†เช—เชณ, SD เช•เชพเชฐเซเชกเชฎเชพเช‚เชฅเซ€ เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ‹ เชธเซŒเชฅเซ€ เชธเชนเซ‡เชฒเซ‹ เชฐเชธเซเชคเซ‹ เช›เซ‡: เชฆเซเชตเชพเชฐเชพ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹ เช•เชกเซ€ เช›เชฌเซ€ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชญเชฐเซ‹:

unzip -p 2019-08-23-ubuntu-16.04-lite-preview-bpi-r64-sd-emmc.img.zip | pv | sudo dd of=/dev/mmcblk0 bs=10M status=noxfer

เช…เชฎเซ‡ เช•เชพเชฐเซเชกเชจเซ‡ R64 SD เชธเซเชฒเซ‹เชŸเชฎเชพเช‚ เชฆเชพเช–เชฒ เช•เชฐเซ€เช เช›เซ€เช, เชคเซ‡เชจเซ‡ เชšเชพเชฒเซ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เช•เชจเซ‡เช•เซเชŸเซ‡เชก เช•เชจเซเชธเซ‹เชฒ เชฒเซ‹เชกเชฟเช‚เช—เชจเซ‡ เชชเชนเซ‡เชฒเชพ uboot, เชชเช›เซ€ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค Linux เชฒเซ‹เชกเชฟเช‚เช—เชจเซเช‚ เช…เชตเชฒเซ‹เช•เชจ เช•เชฐเซ€เช เช›เซ€เช.

เชตเซˆเช•เชฒเซเชชเชฟเช• เชฌเซเชŸ เชตเชฟเช•เชฒเซเชช R64 เชฎเชพเช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชฌเชจเซ‡เชฒ 8Gb เช•เชพเชฐเซเชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡, เชœเซ‡เชจเซ‡ eMMC เช•เชนเซ‡เชตเชพเชฏ เช›เซ‡. เชตเชฟเช•เชฟเชฎเชพเช‚เชจเซ€ เชธเซ‚เชšเชจเชพเช“ เช…เชจเซเชธเชพเชฐ, เช…เชฎเซ‡ เช‰เชชเช•เชฐเชฃ เชชเชฐ เช›เชฌเซ€เชจเซ€ เชจเช•เชฒ เช•เชฐเซ€เช เช›เซ€เช
/dev/mmcblk0 เชฅเซ€ BPI, เชฐเซ€เชฌเซ‚เชŸ เช•เชฐเซ‹, SD เช•เชพเชฐเซเชก เชฆเซ‚เชฐ เช•เชฐเซ‹, BPI เชซเชฐเซ€เชฅเซ€ เชšเชพเชฒเซ เช•เชฐเซ‹... เช…เชจเซ‡ เชคเซ‡ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช†เช—เชณ เชชเชพเช›เชณ เชœเชตเซเช‚ Boot select เชชเชฐเซ‡เชถเชพเชจ เช•เชฐเชถเซ‹ เชจเชนเซ€เช‚.

เชนเช•เซ€เช•เชค เช เช›เซ‡ เช•เซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ BPI เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เช†เช‚เชคเชฐเชฟเช• เชซเซเชฒเซ‡เชถ เชกเซเชฐเชพเช‡เชตเชฎเชพเช‚เชฅเซ€ เชฌเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเช•เซเชทเชฎ เชฅเชตเชพ เชฎเชพเชŸเซ‡ เช–เชพเชธ เชซเซเชฒเซ‡เช— เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

root@bpi-r64:~# ./mmc extcsd read /dev/mmcblk1 | grep 'PARTITION_CONFIG'
Boot configuration bytes [PARTITION_CONFIG: 0x00]
root@bpi-r64:~# ./mmc bootpart enable 1 1 /dev/mmcblk1
root@bpi-r64:~# ./mmc extcsd read /dev/mmcblk1 | grep 'PARTITION_CONFIG'
Boot configuration bytes [PARTITION_CONFIG: 0x48]

เช†เช—เชณ, เชคเชฎเชพเชฐเซ‡ เชตเชฟเชถเชฟเชทเซเชŸ เชฌเซเชŸ เชชเชพเชฐเซเชŸเซ€เชถเชจเชฎเชพเช‚ เชชเซเชฐเซ€เชฒเซ‹เชกเชฐ เชฒเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡

root@bpi-r64:~# echo 0 > /sys/block/mmcblk0boot0/force_ro 
root@bpi-r64:~# dd if=preloader_evb7622_64_foremmc.bin of=/dev/mmcblk0boot0

เช‰เชคเซเชชเชพเชฆเช• R64 (เชšเซ€เชจ) เช เช† เชฌเชพเชˆเชจเชฐเซ€ เชชเซ‹เชธเซเชŸ เช•เชฐเซ€ เช›เซ‡ เช…เชนเซ€เช‚. เชคเซ‡ เชถเซเช‚ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เช…เชœเชพเชฃ เช›เซ‡ (เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชธเซเชฐเซ‹เชค เช•เซ‹เชก เชจเชฅเซ€), เชชเชฐเช‚เชคเซ เชคเซ‡ เชคเซ‡เชจเชพ เชตเชฟเชจเชพ เชชเชฃ เช•เชพเชฎ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚.

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เช† เชชเช›เซ€, เช›เชฌเซ€เช“ eMMC เชฅเซ€ เชฒเซ‹เชก เชฅเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชถเซ‹เชงเชตเชพ เช…เชจเซ‡ เชถเชฐเซ‚เช†เชคเชฅเซ€ เชˆเชฎเซ‡เชœเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เชชเช›เซ€ เชฌเช‚เชจเซ‡ เช•เซ‡เชธ (SD/eMMC) เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เช•เชฐเซเชจเชฒ เชฒเซ‹เชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช˜เชฃเซ€ เชตเชงเซ เชซเชพเชˆเชฒเซ‹ (SD เช•เชพเชฐเซเชก, ATF, u-boot เชฎเชพเชŸเซ‡ เชชเซเชฐเซ€เชฒเซ‹เชกเชฐ) เชฒเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช† เชตเชฟเชทเชฏ เชนเชœเซ เชชเชฃ เช›เซ‡ เชตเชฟเช•เชพเชธ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชฎเซเช–เซเชฏ เชตเชธเซเชคเซ เช เช›เซ‡ เช•เซ‡ เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช เซ€เช• เช›เซ‡.

เชนเชตเซ‡ เชนเซเช‚ eMMC เชฆเซเชตเชพเชฐเชพ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซเช‚ เช›เซเช‚, เชชเซเชฐเชฎเชพเชฃเชฟเช•เชชเชฃเซ‡, เชนเซเช‚ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ‹ เชจเชฅเซ€, เชเช• SD เช•เชพเชฐเซเชก เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฎเซ‡เช‚ เชคเซ‡เชจเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช˜เชฃเซ‹ เชธเชฎเชฏ เชชเชธเชพเชฐ เช•เชฐเซเชฏเซ‹, เชคเซ‡เชฅเซ€ เชคเซ‡เชจเซ‡ เชฒเซ‡เช–เชฎเชพเช‚ เชฐเชนเซ‡เชตเชพ เชฆเซ‹.

เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชชเชธเช‚เชฆ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช. เช†เชฐเซเชฎเซเชฌเชฟเชฏเชจ

เชชเซเชฐเชฅเชฎ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เชพเชฐเซเชฏ VPN, เช•เซเชฆเชฐเชคเซ€ เชฐเซ€เชคเซ‡ เชตเชพเชฏเชฐเช—เชพเชฐเซเชก เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡. เชคเซ‡ เชคเชฐเชค เชœ เชถเซ‹เชงเซ€ เช•เชพเชขเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช•เซ‡ เช•เชฐเซเชจเชฒ เชฌเชพเชœเซ เชชเชฐ เชคเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชจ เชนเชคเซเช‚ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชนเซ‡เชกเชฐเซ‹ เชจเชฅเซ€. เชฎเซ‡เช‚ เช•เชฐเซเชจเชฒ เชซเชฐเซ€เชฅเซ€ เชฌเชจเชพเชตเซเชฏเซเช‚ เช…เชจเซ‡, x86 เชธเชพเชฅเซ‡ เชฎเชพเชฐเซ€ เช†เชฆเชคเชจเซ€ เชœเซ‡เชฎ, DKMS เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชฐเซเชจเชฒ เชฎเซ‹เชกเซเชฏเซเชฒเชจเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเซเชฏเซเช‚. เชœเซ‹ เช•เซ‡, เช†เชฐเซเชฎ 64 เชชเชฐ เชชเชฃ เชจเชพเชจเซ€ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเช“ เชฌเชจเชพเชตเชตเชพเชจเซ€ เช—เชคเชฟเช เชฎเชจเซ‡ เช…เชชเซเชฐเชฟเชฏ เชฐเซ€เชคเซ‡ เช†เชถเซเชšเชฐเซเชฏเชšเช•เชฟเชค เช•เชฐเซเชฏเซเช‚. เช…เชจเซ‡ เชชเช›เซ€ เชฌเซ€เชœเชพ เช•เชฐเซเชจเชฒ เชฎเซ‹เชกเซเชฏเซเชฒเชจเซ€ เชœเชฐเซ‚เชฐ เชนเชคเซ€, เชตเช—เซ‡เชฐเซ‡. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เช•เชฐเซเชจเชฒเชจเซ‡ เชฒเช—เชคเซ€ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซ เช—เชฐเชฎ x86 เชฒเซ‡เชชเชŸเซ‹เชช เชชเชฐ เชถเซเชฐเซ‡เชทเซเช  เชฐเซ€เชคเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชชเช›เซ€ เชธเชฐเชณ เชจเช•เชฒ, เชฐเซ€เชฌเซ‚เชŸ เช…เชจเซ‡ เชชเชฐเซ€เช•เซเชทเชฃ เชฆเซเชตเชพเชฐเชพ R64 เชฎเชพเช‚ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เชฅเชพเชฏ เช›เซ‡.

เชฌเซ€เชœเซ€ เชตเชธเซเชคเซ เชฏเซเชเชฐเชธเซเชชเซ‡เชธ เชญเชพเช— เช›เซ‡. เชกเซ‡เชฌเชฟเชฏเชจเชจเซ‡ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชจเชพ เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, arm64 เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡ เชฌเชงเซเช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ packages.debian.org เชชเชฐ เช›เซ‡ เช…เชจเซ‡ เช•เช‚เชˆเชชเชฃ เชซเชฐเซ€เชฅเซ€ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€.

เชฌเซ€เชœเซ€ เชธเชพเชฏเช•เชฒเชจเซเช‚ เช‰เชคเซเชชเชพเชฆเชจ เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช†เช‡ เชชเซ‹เชฐเซเชŸเซ‡เชก เช†เชฐเซเชฎเซเชฌเชฟเชฏเชจ BPI R64 เชชเชฐ.
เช…เชฅเชตเชพ เชคเซ‡เชจเชพ เชฌเชฆเชฒเซ‡, เช†: เชฏเซเชเชฐเชธเซเชชเซ‡เชธ เชญเชพเช— เช†เชฐเซเชฎเซเชฌเชฟเชฏเชจ เช›เซ‡, เช…เชจเซ‡ เช•เชฐเซเชจเชฒ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚เชฅเซ€ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชซเซเชฐเซ‡เชจเซเช•-เช. เชจเชตเซ€เชจเชคเชฎ เช›เชฌเซ€ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ เช…เชนเซ€เช‚.

R64 เชจเชพ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชญเชพเช—เชจเชพ เชตเชฟเช•เชพเชธ เชชเชฐเชจเซ€ เชคเชฎเชพเชฎ เชชเซเชฐเชตเซƒเชคเซเชคเชฟ เชนเชพเชฅ เชงเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชฎเช‚เชš. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช•เชนเซ€เช เชคเซ‹, เช‰เชคเซเชชเชพเชฆเช• เชชเซ‹เชคเซ‡ Openwrt เชฎเชพเชŸเซ‡ เชฐเชพเช‰เชŸเชฐเชจเซ‡ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชฌเชจเชพเชตเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชคเซเชจ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชœเชฐเซเชฎเชจเซ€เชจเชพ เชกเซ‡เชตเชฒเชชเชฐ เชซเซเชฐเซ‡เชจเซเช•เชจเซ€ เชชเซเชฐเชตเซƒเชคเซเชคเชฟเชจเซ‡ เช†เชญเชพเชฐเซ€, เชคเชฎเชพเชฎ เชธเซเชตเชฟเชงเชพเช“ เชเชกเชชเชฅเซ€ เชกเซ‡เชฌเชฟเชฏเชจ เชฎเชพเชŸเซ‡ เช•เชฐเซเชจเชฒเชฎเชพเช‚ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡. เช†เชถเซเชšเชฐเซเชฏเชœเชจเช• เชฐเซ€เชคเซ‡, เชซเซเชฐเซ‡เชจเซเช• เชฆเชฐเซ‡เช• เชซเซ‹เชฐเชฎ เชฅเซเชฐเซ‡เชกเชฎเชพเช‚ เชธเช•เซเชฐเชฟเชฏ เช›เซ‡.

เช•เชพเชฐเซเชฏเชธเซเชฅเชณ เชธเช‚เชธเซเชฅเชพ: เชตเชพเชฏเชฐ

เช…เชฒเช—เชฅเซ€, เชนเซเช‚ เชคเชฎเชจเซ‡ เชœเชฃเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เช•เซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡, เชตเชฟเช•เชพเชธ/เชชเชฐเซ€เช•เซเชทเชฃ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชŸเซ‡เชฌเชฒ เชชเชฐ SBC (เชฎเชพเชคเซเชฐ BPI เชจเชนเซ€เช‚) เชฎเซ‚เช•เซ‹ เชœเซ‡เชฅเซ€ เช•เชฐเซ€เชจเซ‡ เชธเชฎเช—เซเชฐ เชฐเซ‚เชฎ/เช“เชซเชฟเชธเชฎเชพเช‚ เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เชธเซเชคเซเชฐเซ‹เชคเชฎเชพเช‚เชฅเซ€ เชˆเชฅเชฐเชจเซ‡เชŸ เช•เซ‡เชฌเชฒ เชจ เชšเชฒเชพเชตเซ€ เชถเช•เชพเชฏ. เชนเช•เซ€เช•เชค เช เช›เซ‡ เช•เซ‡, เชเช• เชคเชฐเชซ, เชคเชฎเชพเชฐเซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชธเชพเชฅเซ‡ เชนเชพเชฐเซเชกเชตเซ‡เชฐเชจเซ‹ เชŸเซเช•เชกเซ‹ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฌเซ€เชœเซ€ เชฌเชพเชœเซ, เชนเชพเชฐเซเชกเชตเซ‡เชฐเชจเชพ เชคเซ‡ เชญเชพเช—เชฎเชพเช‚ เชฌเชงเซเช‚ เชคเซ‚เชŸเซ€ เชถเช•เซ‡ เช›เซ‡, เช…เชจเซ‡ เชธเซŒ เชชเซเชฐเชฅเชฎ เชตเชพเช‡เชซเชพเช‡.

เชชเซเชฐเชฅเชฎ, เชฎเซ‡เช‚ เชธเชธเซเชคเซ€ USB-Wifi โ€œเชตเซเชนเชฟเชธเชฒโ€ เช–เชฐเซ€เชฆเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚, เชคเซ‡เชจเซ‡ BPI เชชเชฐเชจเชพ เชเช•เชฎเชพเชคเซเชฐ เชชเซ‹เชฐเซเชŸเชฎเชพเช‚ เชชเซเชฒเช— เช•เชฐเซ‹ เช…เชจเซ‡ เชตเชพเชฏเชฐ เชตเชฟเชถเซ‡ เชญเซ‚เชฒเซ€ เชœเชพเชต. เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชฎเซ‡เช‚ เชเช• เชธเชธเซเชคเซเช‚ TP-LINK TL-WN725N USB 2.0 เช–เชฐเซ€เชฆเซเชฏเซเช‚, เชชเชฐเช‚เชคเซ เช–เซ‚เชฌ เชœ เชŸเซ‚เช‚เช• เชธเชฎเชฏเชฎเชพเช‚ เชคเซ‡ เชธเซเชชเชทเซเชŸ เชฅเชˆ เช—เชฏเซเช‚ เช•เซ‡ เชคเซ‡ เช‰เชชเชกเชถเซ‡ เชจเชนเซ€เช‚: เชตเซเชนเชฟเชธเชฒ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เช•เชฐเซเชจเชฒ เชกเซเชฐเชพเช‡เชตเชฐเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชœเซ‡, เช…เชฒเชฌเชคเซเชค, เชคเซเชฏเชพเช‚ เชจ เชนเชคเซ‹. (เชฌเชพเชฆเชฎเชพเช‚ เชฎเซ‡เช‚ เชœเชฐเซ‚เชฐเซ€ RTL8XXXU เชกเซเชฐเชพเช‡เชตเชฐเชจเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเซเชฏเซเช‚, เชชเชฐเช‚เชคเซ เชคเซ‡ เชนเชœเซ เชชเชฃ เช…เชตเซเชฏเชตเชนเชพเชฐเซ เช›เซ‡). เช…เชจเซ‡ เชˆเชฅเชฐเชจเซ‡เชŸ เช•เซ‡เชฌเชฒเซ‡ เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชฎเชพเชŸเซ‡ เชฐเซ‚เชฎเชจเซ‹ เชฆเซ‡เช–เชพเชต เชฌเช—เชพเชกเซเชฏเซ‹.

เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชฎเซ‡เช‚ Tenda MW3 (Wifi เชฎเซ‡เชถ เชธเชฟเชธเซเชŸเชฎ) เชจเซ€ เชฎเชฆเชฆเชฅเซ€ เช•เซ‡เชฌเชฒเชฎเชพเช‚เชฅเซ€ เช›เซ‚เชŸเช•เชพเชฐเซ‹ เชฎเซ‡เชณเชตเชตเชพเชฎเชพเช‚ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซเชฏเซเช‚: เชฎเซ‡เช‚ เชŸเซ‡เชฌเชฒเชจเซ€ เชจเซ€เชšเซ‡ เช–เชพเชฒเซ€ เชเช• เช•เซเชฏเซเชฌ เชฎเซ‚เช•เซเชฏเซเช‚ เช…เชจเซ‡ BPI เชจเซ‡ เชชเช›เซ€เชจเชพ LAN เชชเซ‹เชฐเซเชŸ เชธเชพเชฅเซ‡ เชฎเซ€เชŸเชฐ-เชฒเชพเช‚เชฌเชพ เช‡เชฅเชฐเชจเซ‡เชŸ เช•เซ‡เชฌเชฒ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซเชฏเซเช‚. เชธเชซเชณเชคเชพ.

เชตเชพเชฏเชฐเช—เชพเชฐเซเชก, เช†เชฐเช•เซ‡เชเชจ, เชฌเชฐเซเชก

เชนเซเช‚ เชœเซ‡ เชฎเชพเชŸเซ‡ เชฌเชจเชพเชจเชพ PI เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เชคเซ‡เชฎเชพเช‚เชจเซ€ เชเช• RKN เชฆเซเชตเชพเชฐเชพ เช…เชตเชฐเซ‹เชงเชฟเชค เชธเชพเช‡เชŸเซเชธเชจเซ€ เชฎเชซเชค เชเช•เซเชธเซ‡เชธ เช›เซ‡, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡, เชœเซ‡เชฅเซ€ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เช…เชจเซ‡ เชธเซเชฒเซ‡เช• เช•เซ‰เชฒเซเชธ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡. เช† เชตเชฟเชทเชฏ เชชเชฐ เชนเซ‡เชฌเซเชฐเซ‡ เชชเชฐเชจเชพ เชฒเซ‡เช–เซ‹ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชชเซเชฐเชธเซเชคเชพเชตเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡: เชตเช–เชค, ะดะฒะฐ, เชคเซเชฐเชฃ.

เชฎเซ‡เช‚ Ansible เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฌเชฐเชพเชฌเชฐ เช† เชธเซ‹เชฒเซเชฏเซเชถเชจ เชœเชฎเชพเชตเซเชฏเซเช‚: ััั‹ะปะบะฐ.

VPS เช เช‰เชฌเซเชจเซเชŸเซ 18.04 เชšเชฒเชพเชตเซ€ เชฐเชนเซเชฏเซเช‚ เชนเซ‹เชตเชพเชจเซเช‚ เชฎเชพเชจเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชฎเซ‡เช‚ เชฏเซเชฐเซ‹เชชเชฎเชพเช‚ เชฌเซ‡ เชนเซ‹เชธเซเชŸเชฐเซเชธ เชชเชฐ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชคเชชเชพเชธเซ€: Amazon เช…เชจเซ‡ Digital Ocean.

เชคเซ‡เชฅเซ€, เช…เชฎเซ‡ R64 เชชเชฐ เช‰เชชเชฐเซ‹เช•เซเชค เช†เชฐเซเชฎเซเชฌเชฟเชฏเชจ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซเชฏเซเช‚ เช›เซ‡, เชคเซ‡ เชจเชพเชฎ เชนเซ‡เช เชณ ssh เชฆเซเชตเชพเชฐเชพ เชธเซเชฒเชญ เช›เซ‡ hm-bananapi-1 เช…เชจเซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชเช•เซเชธเซ‡เชธ เชงเชฐเชพเชตเซ‡ เช›เซ‡. เช…เชฎเซ‡ เชธเชคเชค เชœเชตเชพเชฌเซ€, เช“เชŸเซ‹เชฎเซ‡เชถเชจ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เชœเชฎเชพเชตเซ€เช เช›เซ€เช เช…เชจเซ‡ R64 เชชเชฐ เชœ เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เชถเชฐเซ‚ เช•เชฐเซ€เช เช›เซ€เช:

# ะทะฐะฒะธัะธะผะพัั‚ะธ ะดะปั Debian-based ะดะธัั‚ั€ะธะฑัƒั‚ะธะฒะพะฒ
$ sudo apt install --no-install-recommends python3-pip python3-setuptools python3-wheel git
$ which pip3
/usr/bin/pip3

# ansible ั pybook, ัะบั€ะธะฟั‚ะพะฒะฐะฝะธะต ะฝะฐ Python
$ pip3 install https://github.com/muravjov/ansible/archive/ansible-2.10.0.dev0-pybook2019.tar.gz

$ export PATH=~/.local/bin:$PATH
$ which ansible-playbook
/home/sa/.local/bin/ansible-playbook

$ git clone https://github.com/muravjov/ansible-bpi-r64.git
$ cd ansible-bpi-r64

$ git submodule update --init

# ัƒะฑะตะถะดะฐะตะผัั ะฒ ะดะพัั‚ัƒะฟะฝะพัั‚ะธ hm-bananapi-1
$ ssh hm-bananapi-1 which python3
/usr/bin/python3

# ัะพะฑัั‚ะฒะตะฝะฝะพ ัƒัั‚ะฐะฝะพะฒะบะฐ
$ ansible-playbook ./router.py -l hm-bananapi-1

เช†เช—เชณ, เชคเชฎเชพเชฐเซ‡ เช…เชฎเชพเชฐเชพ VPN เชจเซ‡ VPS เชชเชฐ เชคเซ‡ เชœ เชฐเซ€เชคเซ‡ เชœเชฎเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

ansible-playbook ./router.py -l current-vpn

เช…เชนเซ€เช‚ เชฆเชฒเซ€เชฒ เชนเช‚เชฎเซ‡เชถเชพ เชตเชฐเซเชคเชฎเชพเชจ-เชตเซ€เชชเซ€เชเชจ เชนเซ‹เชฏ เช›เซ‡, เช…เชจเซ‡ เชตเชพเชธเซเชคเชตเชฟเช• VPS เชจเชพเชฎ เชšเชฒเชฎเชพเช‚ เช—เซ‹เช เชตเซ‡เชฒ เช›เซ‡ (เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชคเซ‡ paris-vpn-aws-t2-micro-1 เช›เซ‡):

$ grep current_vpn group_vars/all 
current_vpn: paris-vpn-aws-t2-micro-1
#current_vpn: frankfurt-vpn-d0-starter-1

เช“เชน เชนเชพ, เช† เชคเชฎเชพเชฎ เช•เชพเชฎเช—เซ€เชฐเซ€ เชชเชนเซ‡เชฒเชพ เชคเชฎเชพเชฐเซ‡ เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชฐเชนเชธเซเชฏเซ‹ (เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชตเชพเชฏเชฐเช—เชพเชฐเซเชก เช•เซ€) เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. ./secrets, เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชœเซ‡เชตเซ€ เชฆเซ‡เช–เชพเชตเซ€ เชœเซ‹เชˆเช เชคเซ‡เชฅเซ€.

เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชœเชตเชพเชฌเชฆเชพเชฐ เช“เชŸเซ‹เชฎเซ‡เชถเชจ

เชคเชฎเซ‡ เชœเซ‹เชถเซ‹ เช•เซ‡ YAML เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชนเซ‹เชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡, เชœเชตเชพเชฌเซ€ เช†เชฆเซ‡เชถเซ‹ เชชเชพเชฏเชฅเซ‹เชจ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธเชฎเชพเช‚ เชเชจเซเช•เซ‹เชก เช•เชฐเซ‡เชฒเชพ เช›เซ‡. เชธเชฐเช–เชพเชฎเชฃเซ€ เชฎเชพเชŸเซ‡, เชชเช•เซเชทเซ€ เชกเชฟเชฎเชจเชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเซเช‚:

- name: start bird
  systemd:
    name: bird
    state: started
    enabled: yes

เช…เชจเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เชฆเซเชตเชพเชฐเชพ เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚:

with mapping:
    append("name", "start bird")
    with mapping("systemd"):
        append("name",  "bird")
        append("state", "started")
        append("enabled", "yes")

เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชœเชตเชพเชฌเซ€ เช†เชฆเซ‡เชถเซ‹ เชฒเช–เชตเชพเชฅเซ€ เชคเชฎเซ‡ เช•เซ‹เชกเชจเซ‹ เชชเซเชจเชƒเช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เช…เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชนเซ‡เชคเซเชจเซ€ เชญเชพเชทเชพเชจเซ€ เชคเชฎเชพเชฎ เชถเช•เซเชฏเชคเชพเช“ เช–เซ‹เชฒเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, R64 เช…เชจเซ‡ VPS เชชเชฐ เชฌเชฐเซเชก เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเซเช‚:

install_bird("router/bird.conf.j2")
install_bird("vpn/bird.conf.j2")

เชซเช‚เช•เซเชถเชจ เช•เซ‹เชก เชœเซเช“ install_bird().

เช† เชฒเช•เซเชทเชฃ เช•เชนเซ‡เชตเชพเชฏ เช›เซ‡ pybook เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซ‹ เช…เชนเซ€เช‚. pybook เชชเชฐ เชนเชœเซ€ เชธเซเชงเซ€ เช•เซ‹เชˆ เชฆเชธเซเชคเชพเชตเซ‡เชœ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชนเซเช‚ เช† เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชชเช›เซ€เชฅเซ€ เช เซ€เช• เช•เชฐเซ€เชถ.

เชคเซ‡ เชถเซเช‚ เชตเชฟเชšเชพเชฐเซ‡ เช›เซ‡ เช…เชชเชธเซเชŸเซเชฐเซ€เชฎ เช† เชชเซเชฐเชธเช‚เช—เซ‡.

เชฎเซ‹เชจเซ€เชŸเชฐเซ€เช‚เช—. เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ

เช•เซเชฒ: เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เชฒเชฟเช‚เช•เซเชกเช‡เชจ เช…เชจเซ‡ เชชเซ‹เชฐเซเชจเชนเชฌ เชชเชฃ, เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช…เชจเซเชญเชต เชฌเชฐเชพเชฌเชฐ เช›เซ‡. เชชเชฐเช‚เชคเซ เชšเซ€เชจเซ€ เชนเชพเชฐเซเชกเชตเซ‡เชฐ เชธเชนเชฟเชค เชฌเชงเซเช‚ เชคเซ‚เชŸเซ€ เชถเช•เซ‡ เช›เซ‡.

เช•เชฐเซเชจเชฒ เช…เชชเชกเซ‡เชŸเซเชธ เชชเชฃ เชฐเชธเชชเซเชฐเชฆ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡: เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชนเซเช‚ เช•เชฐเซเชจเชฒ 5.4 => 5.6 เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเซ‹ เชนเชคเซ‹, เชธเชพเชฐเซเช‚, เชตเชพเชฏเชฐเช—เชพเชฐเซเชก เชฌเซ‹เช•เซเชธเชจเซ€ เชฌเชนเชพเชฐ เช›เซ‡, เชชเซ‡เชš เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€... เชชเซ‚เชฐเซเชฃ เช•เชฐเชคเชพเช‚ เชตเชนเซ‡เชฒเซเช‚ เช•เชนเซเชฏเซเช‚ เชจเชนเซ€เช‚: เชฎเซ‡เช‚ เช–เซ‚เชฌ เชœ เชฎเชนเซ‡เชจเชคเชฅเซ€ 5.4 เชฎเชพเช‚เชฅเซ€ เชชเซ‡เชšเซ‹ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช•เชฐเซเชฏเชพ 5.6 เชธเซเชงเซ€, เช•เชฐเซเชจเชฒ เชถเชฐเซ‚ เชฅเชˆ, VPS เชชเชฐเชจเซ€ เชŸเชจเชฒ เชชเชฟเช‚เช— เชฅเชˆ, เชชเชฐเช‚เชคเซ เชชเช•เซเชทเซ€ "BGP เชเชฐเชฐ" เชญเซ‚เชฒ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เชฅเชˆ เชถเช•เชคเซเช‚ เชจเชฅเซ€... "เชนเซเช‚ เชญเชฏเชพเชจเช• เชฐเซ€เชคเซ‡ เชชเชพเช›เซ‹ เชซเชฐเซเชฏเซ‹" (c) 5.4 เชชเชฐ; TODO เชฎเชพเช‚ 5.6 เชชเชฐ เช–เชธเซ‡เชกเชตเชพเชจเซเช‚ เชฎเซเชฒเชคเชตเซ€ เชฐเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚.

เชคเซ‡เชฅเซ€, เชฐเชพเช‰เชŸเชฐ เช…เชจเซ‡ VPS เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพ เช‰เชชเชฐเชพเช‚เชค, เชฎเซ‡เช‚ เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช— เช‰เชฎเซ‡เชฐเซเชฏเซเช‚ (x86 เช‰เชฌเซเชจเซเชŸเซ 18.04 เชชเชฐ), เชœเซ‡ เชจเซ€เชšเซ‡เชจเชพ เช˜เชŸเช•เซ‹ เชธเชพเชฅเซ‡ เช…เชฒเช— เชนเซ‹เชธเซเชŸ เชชเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเซเช‚ เช›เซ‡:

  • prometheus, alertmanager, blackbox_exporter - เชฌเชงเชพ เชกเซ‹เช•เชฐเชฎเชพเช‚
  • เชฎเซ‡เชŸเชฒเชฎเซ‡เชŸเซเช/เช…เชฒเชฐเซเชŸเชฎเซ‡เชจเซ‡เชœเชฐ-เชฌเซ‹เชŸ เชฌเซ‹เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชšเซ‡เชจเชฒ เชชเชฐ เชšเซ‡เชคเชตเชฃเซ€เช“ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เชกเซ‹เช•เชฐเชฎเชพเช‚ เชชเชฃ
  • เชฌเซ‹เชŸ เชฎเชพเชŸเซ‡ เชŸเซ‹เชฐ, เชœเซ‡เชฅเซ€ เชœเซเชฏเชพเชฐเซ‡ เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เชฌเซ‹เชŸ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชจเซ‡ เชšเซ‡เชคเชตเชฃเซ€ เช†เชชเซ€ เชถเช•เซ‡, เชชเชฐเช‚เชคเซ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชนเชœเซ เชชเชฃ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€, เช…เชจเซ‡ เชฌเซ‹เชŸ เชชเซ‹เชคเซ‡ เช•เชจเซ‡เช•เซเชŸ เชฅเชˆ เชถเช•เชคเซเช‚ เชจเชฅเซ€.
  • เชฒเชพเช—เซ เชšเซ‡เชคเชตเชฃเซ€เช“: NodeVPNtroubles (VPS เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ เชชเชฟเช‚เช— เชจเชฅเซ€), BirdVPNtroubles (เช•เซ‹เชˆ เชฌเชฐเซเชก เชธเซ‡เชถเชจ เชจเชฅเซ€), AntifilterDownload Troubles (เชฌเซเชฒเซ‰เช• เช•เชฐเซ‡เชฒเชพ IP เชเชกเซเชฐเซ‡เชธ เชฒเซ‹เชก เช•เชฐเชตเชพเชฎเชพเช‚ เชญเซ‚เชฒ), SiteTroubles (เชฆเซเชƒเช–เชฆ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เช…เชจเซเชชเชฒเชฌเซเชง เช›เซ‡)
  • เชธเชฟเชธเซเชŸเชฎ เชšเซ‡เชคเชตเชฃเซ€เช“, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, HostGrowingDiskReadLatency (เชธเชธเซเชคเซเช‚ SD เช•เชพเชฐเซเชก เชตเชพเช‚เชšเซ€ เชจ เชถเช•เชพเชฏ เชคเซ‡เชตเซเช‚ เชฌเชจเซ€ เชœเชพเชฏ เช›เซ‡)

เชฎเซ‹เชจเซ€เชŸเชฐเซ€เช‚เช— เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เช‰เชฆเชพเชนเชฐเชฃ:

ansible-playbook ./monitoring.py -l monitoring-preprod

เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ เชฎเชพเชŸเซ‡ เช“เชŸเซ‹ เชกเชฟเชธเซเช•เชตเชฐเซ€ /etc/prometheus/auto_http เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เช—เซ‹เช เชตเซ‡เชฒ เช›เซ‡, เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช—เชฎเชพเช‚ เชนเซ‹เชธเซเชŸ เช‰เชฎเซ‡เชฐเชตเชพเชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ (เชฏเชœเชฎเชพเชจเซ‹เชจเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชฎเซ‹เชจเชฟเชŸเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเชพ เชจเชฅเซ€):

bash << 'EOF'
HOSTNAME=hm-bananapi-1
IP_ADDRESS=`ssh -G $HOSTNAME | awk '/^hostname / { print $2 }'`

ssh monitoring-preprod sudo sponge /etc/prometheus/auto_http/$HOSTNAME.json << EOF2
[
  {
    "targets": ["$IP_ADDRESS:9100"],
    "labels": {
      "env": "prod",
      "hostname": "$HOSTNAME"
    }
  }
]
EOF2
EOF

TODO: 2 เชชเซเชฐเชฆเชพเชคเชพเช“, 2 BPI, เช•เซ‹เชˆเชชเชฃ เช•เชพเชธเซเชŸ เชซเซ‡เชฒเช“เชตเชฐ

เชฆเชฐเซ‡เช• เชตเชธเซเชคเซ เช‰เชชเชฐเชพเช‚เชค, เชฎเซ‡เช‚ เชฌเซ‡ เชชเซเชฐเชฆเชพเชคเชพเช“ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ€ เชฏเซ‹เชœเชจเชพ เชฌเชจเชพเชตเซ€ เช›เซ‡ เชœเซ‡เชฅเซ€ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ‡, เชญเชฒเซ‡ เชเช• เชชเซเชฐเชฆเชพเชคเชพเชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช•เชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพ เชนเซ‹เชฏ, เช…เชฅเชตเชพ เชคเซ‡เช“ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชตเช—เซ‡เชฐเซ‡ เชฎเชพเชŸเซ‡ เชšเซ‚เช•เชตเชฃเซ€ เช•เชฐเชตเชพเชจเซเช‚ เชญเซ‚เชฒเซ€ เช—เชฏเชพ เชนเซ‹เชฏ, เช…เชจเซ‡ เช…เชจเซเชฏ เชฎเชพเชจเชต เชชเชฐเชฟเชฌเชณเซ‹.

เชฎเชฒเซเชŸเชฟ-เชตเชพเชจ เชตเชฟเชทเชฏ เชชเชฐ เชธเซŒเชฅเซ€ เช…เชฆเซเชฏเชคเชจ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช…เชจเซเชญเชต เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡ เช…เชนเซ€เช‚ Openwrt เชนเซ‡เช เชณ Mwan3 เชธเชฟเชธเซเชŸเชฎ เชฎเชพเชŸเซ‡. เช† เชธเซ‹เชฒเซเชฏเซเชถเชจเชฎเชพเช‚ เชธเชฎเซƒเชฆเซเชง เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฎเชฒเซเชŸเซ€-เชตเชพเชจ เชฎเชพเชŸเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชคเซ‡เชจเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เชคเซ‡เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเซเช‚ เชคเซ‡ เช–เซ‚เชฌ เชฎเซเชถเซเช•เซ‡เชฒเซ€เชœเชจเช• เช›เซ‡. เชฎเชพเชคเซเชฐ เชเช• เช‰เชฆเชพเชนเชฐเชฃ: เชœเซ‹ เชคเชฎเซ‡ เชเช• เชธเชพเชฅเซ‡ เชฌเซ‡ IP เชธเชฐเชจเชพเชฎเชพเช‚เช“เชฎเชพเช‚เชฅเซ€ เช•เซ‡เชŸเชฒเซ€เช• เชธเชพเช‡เชŸเซเชธ เชชเชฐ เช†เชตเซ‹ เช›เซ‹, เชคเซ‹ เชคเซ‡เช“เชจเซ‡ เชคเซ‡ เช—เชฎเชถเซ‡ เชจเชนเซ€เช‚, เชคเซ‡เช“ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชฌเช‚เชง เช•เชฐเชถเซ‡ => "เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€."

เช† เช…เชจเซเชญเชตเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เซ€เชจเซ‡, เชฎเซ‡เช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ เช•เซ‡ เชฎเชฒเซเชŸเชฟเชนเซ‹เชฎเชฟเช‚เช— เชนเชœเซ€ เชชเซเชฐเชพเชฅเชฎเชฟเช•เชคเชพ เชจเชฅเซ€, เชฎเชพเชคเซเชฐ เชซเซ‡เชฒเช“เชตเชฐ เช›เซ‡. เชคเซ‡เชฎ เช›เชคเชพเช‚, เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ Linux เชจเชพ เชจเชตเซ€เชจเชคเชฎ เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชฎเชพเช‚ เชฌเชงเซเช‚ เชเช• เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช เชœเซ‡เชฎ เช•เซ‡:

ip route add default 
    nexthop via 192.168.1.1 weight 10 
    nexthop via 192.168.2.1 weight 5

เชคเซ‡เชฅเซ€, เชจเชฟเชทเซเชซเชณเชคเชพเชจเชพ เชเช• เชฌเชฟเช‚เชฆเซเชจเซ‡ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ 2 BPIs เชฒเชˆเช เช›เซ€เช, เชฆเชฐเซ‡เช•เชจเซ‡ เชเช• เชชเซเชฐเชฆเชพเชคเชพ เชธเชพเชฅเซ‡ เชœเซ‹เชกเซ€เช เช›เซ€เช, เชคเซ‡เชฎเชจเซ‡ เชเช•เชฌเซ€เชœเชพ เชธเชพเชฅเซ‡ เชœเซ‹เชกเซ€เช เช›เซ€เช เช…เชจเซ‡ เชชเช•เซเชทเซ€/OSPF เชฆเซเชตเชพเชฐเชพ เชเช•เชฌเซ€เชœเชพ เชธเชพเชฅเซ‡ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ‚เชŸเซ€เช‚เช— เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฃ เช•เชฐเซ€เช เช›เซ€เช.

เช†เช—เชณ, เชœเซ‹ เชธเซ‡เชตเชพ เช‰เชชเชฒเชฌเซเชง เชนเซ‹เชฏ เชคเซ‹ เช…เชฎเซ‡ เชฆเชฐเซ‡เช• เชชเชฐ เชธเชฎเชพเชจ IP เชธเชฐเชจเชพเชฎเชพเช‚เชจเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเซ€เช เช›เซ€เช (เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ, DNS). เชเชŸเชฒเซ‡ เช•เซ‡, เช…เชฎเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชŸ เชœเชพเชคเซ‡ เชธเซ‡เชŸ เช•เชฐเซ€เชถเซเช‚ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชชเช•เซเชทเซ€ เชฆเซเชตเชพเชฐเชพ. เชฎเซ‡เช‚ เช‰เช•เซ‡เชฒเชจเซ€ เชœเชพเชธเซ‚เชธเซ€ เช•เชฐเซ€ เช…เชนเซ€เช‚ .

เช† เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชนเชœเซ เชธเซเชงเซ€ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชจเชฅเซ€, เช•เชชเชŸเซ€ เช•เซ‹เชฐเซ‹เชจเชพเชตเชพเชฏเชฐเชธเช เช…เชนเซ€เช‚ เชเช• เชฏเซเช•เซเชคเชฟ เชฐเชฎเซ€ เชนเชคเซ€ (เชฌเชงเซเช‚ Aliexpress เชชเชฐเชฅเซ€ เช†เชตเซเชฏเซเช‚ เชจเชฅเซ€; เช…เชจเซเชฏ เช‘เชจเชฒเชพเช‡เชจ เชธเซเชŸเซ‹เชฐ, เชฒเซ‡เชŸเชพเช เชเช• เช…เช เชตเชพเชกเชฟเชฏเชพเชฎเชพเช‚ เชชเชนเซ‹เช‚เชšเชพเชกเชตเชพเชจเซเช‚ เชตเชšเชจ เช†เชชเซเชฏเซเช‚ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เชเช• เชฎเชนเชฟเชจเชพเชฅเซ€ เชตเชงเซ เชธเชฎเชฏ เชชเชธเชพเชฐ เชฅเชˆ เช—เชฏเซ‹ เช›เซ‡; เชฌเซ€เชœเชพ เชชเซเชฐเชฆเชพเชคเชพ เชชเชพเชธเซ‡ เชธเชฎเชฏ เชจเชฅเซ€ เชธเช‚เชธเชฐเซเช—เชจเชฟเชทเซ‡เชง เชชเชนเซ‡เชฒเชพเช‚ เช•เซ‡เชฌเชฒเชจเซ‡ เชฒเช‚เชฌเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชซเช•เซเชค เช•เซ‡เชฌเชฒ เชฎเชพเชŸเซ‡ เชฆเชฟเชตเชพเชฒเชฎเชพเช‚ เชกเซเชฐเชฟเชฒเชฎเชพเช‚ เช›เชฟเชฆเซเชฐ เชฎเซ‡เชณเชตเชตเชพเชฎเชพเช‚ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เชนเชคเซ€).

R64 เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช“เชฐเซเชกเชฐ เช•เชฐเชตเซ‹

เชฌเซ‹เชฐเซเชก เชชเซ‹เชคเซ‡ เชธเชคเซเชคเชพเชตเชพเชฐ เชธเซเชŸเซ‹เชฐเชฎเชพเช‚ เช›เซ‡ SinoVoip.
เชคเชฐเชค เชœ เช“เชฐเซเชกเชฐ เช†เชชเชตเชพเชจเซเช‚ เชชเชฃ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡:

  • เชชเซ‹เชทเชฃ + EU เช…เชฅเชตเชพ US เชชเซเชฒเช— เชธเซเชŸเชพเชจเซเชกเชฐเซเชกเชจเซ‡ เชœเชพเชฃ เช•เชฐเซ‹
  • เชนเซ€เชŸ เชธเชฟเช‚เช•: เชฐเซ‡เชกเชฟเชเชŸเชฐเซเชธ/เชชเช‚เช–เชพ; เช•เชพเชฐเชฃ เช•เซ‡ CPU เช…เชจเซ‡ เชธเซเชตเซ€เชš เชšเชฟเชช เชฌเช‚เชจเซ‡ เช—เชฐเชฎ เชฅเชˆ เชฐเชนเซเชฏเชพ เช›เซ‡
  • เชตเชพเช‡เชซเชพเช‡ เชเชจเซเชŸเซ‡เชจเชพ, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡

เชคเซเชฏเชพเช‚ เชเช• เช‰เชชเชฆเซเชฐเชต เช›เซ‡ - เชกเชฟเชฒเชฟเชตเชฐเซ€ เช•เชฟเช‚เชฎเชค เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชฎเชพเชŸเซ‡ เชธเชคเซเชคเชพเชตเชพเชฐ เชธเซเชŸเซ‹เชฐเชฎเชพเช‚ เช…เชชเซ‚เชฐเชคเซ€ เชฐเซ€เชคเซ‡ เชŠเช‚เชšเซ€ เชฅเชˆ เช—เชˆ เช›เซ‡. เชฎเซ‡เชจเซ‡เชœเชฐ เชœเซเชกเซ€ เชนเซเช†เช‚เช—เซ‡ เชฎเชจเซ‡ เช–เชพเชคเชฐเซ€ เช†เชชเซ€ เช•เซ‡ เชคเซ‡เชฎเชพเช‚ เช•เซ‹เชˆ เชญเซ‚เชฒ เชจเชฅเซ€, เช…เชจเซ‡ เชคเชฎเซ‡ $5 เชฎเชพเชŸเซ‡ ePacket เชชเชธเช‚เชฆ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชฎเซ‡เช‚ เชœเซ‹เชฏเซเช‚ เช•เซ‡ เชฐเชถเชฟเชฏเชพ เชฎเชพเชŸเซ‡ เชฎเชพเชคเซเชฐ $33 เชฎเชพเชŸเซ‡ EMS เช›เซ‡. เช…เชชเซเชฐเชฟเชฏ, เชชเชฐเช‚เชคเซ เชœเชŸเชฟเชฒ เชจเชฅเซ€. เชคเชฆเซเชชเชฐเชพเช‚เชค, เชœเซ‹ เชคเชฎเซ‡ เชกเชฟเชฒเชฟเชตเชฐเซ€ เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ เช…เชจเซเชฏ เชฆเซ‡เชถ เชชเชธเช‚เชฆ เช•เชฐเซ‹ เช›เซ‹ (เชนเซเช‚ เชฌเชงเชพ เช–เช‚เชกเซ‹เชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชฏเซ‹ เช›เซเช‚), เชคเซ‹ เชกเชฟเชฒเชฟเชตเชฐเซ€เชจเซ€ เช•เชฟเช‚เชฎเชค ~$5 เชนเชถเซ‡. เชฐเซเชธเซ‹เชซเซ‹เชฌเซเชธ?.. เชชเชฃ เชชเช›เซ€ เชฎเชจเซ‡ เชœเชพเชฃเชตเชพ เชฎเชณเซเชฏเซเช‚ เช•เซ‡ เชซเซเชฐเชพเชจเซเชธ เชฎเชพเชŸเซ‡ เชกเชฟเชฒเชฟเชตเชฐเซ€ เช•เชฟเช‚เชฎเชค เชชเชฃ ~30$ เช›เซ‡, เช…เชจเซ‡ เชนเซเช‚ เชถเชพเช‚เชค เชฅเชˆ เช—เชฏเซ‹.

เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชœเซเชกเซ€เช เช“เชฐเซเชกเชฐ เช†เชชเชตเชพเชจเซ€ เช“เชซเชฐ เช•เชฐเซ€, เชชเชฐเช‚เชคเซ เชšเซ‚เช•เชตเชฃเซ€ เชจ เช•เชฐเซ€ (เชˆเชถเชพเชฐเซ‹: เช•เชพเชฐเซเชก เชชเชฐ เช“เช›เซเช‚ เชฎเซ‚เช•เซ‹ เชœเซ‡เชฅเซ€ เช†เชชเซ‹เช†เชช เชšเซเช•เชตเชฃเซ€ เชจ เชฅเชพเชฏ); เชคเซ‡เชฃเซ€เชจเซ‡ เชฒเช–เซ‹ เช…เชจเซ‡ เชคเซ‡ เชกเชฟเชฒเชฟเชตเชฐเซ€เชจเซ€ เช•เชฟเช‚เชฎเชค เช˜เชŸเชพเชกเซ€เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เช•เชฐเซ€ เชฆเซ‡เชถเซ‡. เชธเชซเชณเชคเชพ.

เชฎเซเชฆเซเชฆเชพเช“

เชนเชœเซ€ เชฌเชงเซเช‚ เชฌเชฐเชพเชฌเชฐ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เชจเชฅเซ€.

เช‰เชคเซเชชเชพเชฆเช•เชคเชพ

Ansible=Python เช†เชฆเซ‡เชถเซ‹ 20-30 เชธเซ‡เช•เชจเซเชก เชฎเชพเชŸเซ‡ เชงเซ€เชฎเซ‡ เชงเซ€เชฎเซ‡, เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เช†เชฆเซ‡เชถเซ‹ เชชเชฃ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡; x86 เชฒเซ‡เชชเชŸเซ‹เชช เช•เชฐเชคเชพเช‚ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ€ เชคเซ€เชตเซเชฐเชคเชพเชจเซ‹ เช“เชฐเซเชกเชฐ. เชคเชฆเซเชชเชฐเชพเช‚เชค, เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชคเซ‡เช“ เช–เซ‚เชฌ เชœ เชเชกเชชเชฅเซ€ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, ~3 เชธเซ‡เช•เชจเซเชก, เชชเช›เซ€ เชคเซ‡เช“ เชเชกเชชเชฅเซ€ เชงเซ€เชฎเซเช‚ เชฅเชพเชฏ เช›เซ‡. เช† CPU เชนเซ€เชŸเชฟเช‚เช— (เชฅเซเชฐเซ‹เชŸเชฒเชฟเช‚เช—) เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เช—เซ‹ เช•เซ‹เชก เชชเชฃ เช•เชพเชฎ เช•เชฐเชตเชพเชฎเชพเช‚ เชฒเชพเช‚เชฌเซ‹ เชธเชฎเชฏ เชฒเซ‡ เช›เซ‡:

# ะทะฐะฟั€ะพั ะผะตั‚ั€ะธะบ ะดะปั ะฟั€ะพะผะตั‚ะตั ะธะท node_exporter ะฝะฐ Go
$ time curl -s http://172.30.1.1:9100/metrics > /dev/null

real    0m6,118s
user    0m0,005s
sys     0m0,009s

# ะพะดะฝะฐะบะพ ั‚ะตะผะฟะตั€ะฐั‚ัƒั€ะฐ 51 ะณั€ะฐะดัƒั, ะฝะต ั‚ะฐะบ ะธ ะผะฝะพะณะพ
sa@bananapir64:~$ cat /sys/devices/virtual/thermal/thermal_zone0/temp
51700

เชตเชพเช‡เชซเชพเช‡

Wifi เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ Armbian เชชเชฐ เชคเซ‡ เชฒเช—เชญเช— เชเช• เชฆเชฟเชตเชธ เชชเช›เซ€ เชฌเช‚เชง เชฅเชˆ เชœเชพเชฏ เช›เซ‡, เชฒเช–เซ‡ เช›เซ‡:

sa@bananapir64:~$ dmesg | grep -E 'mt7622_wmac.*timeout'
[470303.802539] mt7622_wmac 18000000.wmac: Message 38 (seq 3) timeout
[470314.042508] mt7622_wmac 18000000.wmac: Message 50 (seq 4) timeout
...

เชฎเชพเชคเซเชฐ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡. เช†เชชเชฃเซ‡ เช†เช—เชณ เชตเชงเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชคเซ‡เชจเซ‡ เชฌเชนเชพเชฐ เช•เชพเชขเซ‹.

เช‡เชฅเชฐเชจเซ‡เชŸ

เชˆเชฅเชฐเชจเซ‡เชŸ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ ~64 เช•เชฒเชพเช• เชชเช›เซ€ RXNUMX เชจเชพ เชชเซ‡เช•เซ‡เชŸเซเชธ (DHCP) เช†เชตเชตเชพเชจเซเช‚ เชฌเช‚เชง เชฅเชˆ เชœเชพเชฏ เช›เซ‡.
เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชจเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเชพเชฅเซ€ เชฎเชฆเชฆ เชฎเชณเซ‡ เช›เซ‡:

ifdown br0; sleep 30; ifup br0

เชกเซเชฐเชพเชˆเชตเชฐ เชจเชตเซ‹ เช›เซ‡, เชคเซ‡ เชนเชœเซ เชธเซเชงเซ€ เช•เชฐเซเชจเชฒเชฎเชพเช‚ เชธเซเชตเซ€เช•เชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชจเชฅเซ€, เชฎเชจเซ‡ เช†เชถเชพ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชšเชพเชˆเชจเซ€เช เชฒเซ‡เชจเซเชกเซ‡เชจ เชšเชพเช“ เช›เซ‡ เชคเซ‡เชจเซ‡ เชธเชฎเชพเชชเซเชค เช•เชฐเซ‡ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹