Banana Pi 64 Raspberry Pi рдЬрд╕реНрддреИ рдПрдХрд▓-рдмреЛрд░реНрдб рдХрдореНрдкреНрдпреБрдЯрд░ рд╣реЛ, рддрд░ рдзреЗрд░реИ рдЗрдерд░рдиреЗрдЯ рдкреЛрд░реНрдЯрд╣рд░реВрд╕рдБрдЧ, рдЬрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд░рд╛рдЙрдЯрд░рдорд╛ рдмрджрд▓реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред
рд╣реЛ, рддреНрдпрд╣рд╛рдБ рдкрд╣рд┐рд▓реЗ рдиреИ Openwrt рдЫ, рддрд░ рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреН, рдпрд╕рдХреЛ GUI рд░ CLI; рддреНрдпрд╣рд╛рдБ Mikrotik рдЫ, рддрд░ рдлреЗрд░рд┐ рдпрд╕рдХреЛ рдЖрдлреНрдиреИ GUI/CLI рдЫ, рд░ Wireguard рд▓реЗ рдмрд╛рдХрд╕ рдмрд╛рд╣рд┐рд░ рдХрд╛рдо рдЧрд░реНрджреИрди... рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдо рд▓рдЪрд┐рд▓реЛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рднрдПрдХреЛ рд░рд╛рдЙрдЯрд░ рдЪрд╛рд╣рдиреНрдЫреБ, рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рднрд┐рддреНрд░ рд░рд╣рдБрджрд╛, рдЬреБрди рддрдкрд╛рдИрдВрд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рд╣рд░реЗрдХ рджрд┐рди рд╕рдВрдЧред
BPI, R64, рдПрдХрд▓-рдмреЛрд░реНрдб рдирд╛рдорд╣рд░реВ рдЕрдиреНрддрд░реНрдЧрдд рд▓реЗрдЦрдорд╛, рдо рдПрдЙрдЯреИ рдХреБрд░рд╛рдХреЛ рдорддрд▓рдм рдЧрд░реНрдиреЗрдЫреБ - рдХреЗрд▓реЗ Pi R64 рдПрдХрд▓-рдмреЛрд░реНрдб рдЖрдлреИред
рдЫрд╡рд┐ рдЪрдпрди рдЧрд░реНрджреИред eMMC рдорд╛рд░реНрдлрдд рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН
рддрдкрд╛рдИрдВрд▓реЗ рдХрд╛рдо рдЧрд░реНрджрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдкрд╣рд┐рд▓реЛ рд╕реАрдк
USB-UART рдорд╛рд░реНрдлрдд R64 рдЬрдбрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо:
- рд╣рд╛рдореА USB-UART рдХреЗрдмрд▓ (PL2303, Serial-to-USB) рдХреЛ рд▓рд╛рдЧрд┐ рд░реЗрдбрд┐рдпреЛ рдкрд╛рд░реНрдЯреНрд╕ рд╕реНрдЯреЛрд░рдорд╛ рдЬрд╛рдиреНрдЫреМрдВ
- рдПрдЙрдЯрд╛ USB рдЫреЗрдЙрд▓рд╛рдИ рдХрдореНрдкреНрдпреБрдЯрд░рдорд╛ рд░ рдЕрд░реНрдХреЛ UART рд▓рд╛рдИ R64 рдорд╛ рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН, рддрд▓рдХреЛ рддрд╕реНрдмрд┐рд░рдорд╛ рдЬрд╕реНрддреИ рдЪрд╛рд░ рдордзреНрдпреЗ рддреАрдирд╡рдЯрд╛ рддрд╛рд░рд╣рд░реВ рдЫрдиреНред
- рдХрдореНрдкреНрдпреБрдЯрд░ рдХрдиреНрд╕реЛрд▓рдорд╛ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН
sudo minicom
рдпрд╕ рдкрдЫрд┐, рдзреЗрд░реИ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдПрдХрд▓-рдмреЛрд░реНрдб рдХрдиреНрд╕реЛрд▓ рджреЗрдЦрд╛ рдкрд░реНрдиреЗрдЫ = рд╕рдлрд▓рддрд╛ред
рддрдкрд╛рдИрдВ рдердк рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
рдЕрд░реНрдХреЛ, рд╕рдЬрд┐рд▓реЛ рддрд░реАрдХрд╛ рднрдиреЗрдХреЛ 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, рддреНрдпрд╕рдкрдЫрд┐ рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕ рд▓реЛрдбрд┐рдЩ рдЕрд╡рд▓реЛрдХрди рдЧрд░реНрдЫреМрдВред
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмреБрдЯ рд╡рд┐рдХрд▓реНрдкрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ 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
Manufacturer R64 (China) рд▓реЗ рдпреЛ рдмрд╛рдЗрдирд░реА рдкреЛрд╕реНрдЯ рдЧрд░реНрдиреБрднрдпреЛ
рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпрд╕ рдкрдЫрд┐, рдЫрд╡рд┐рд╣рд░реВ eMMC рдмрд╛рдЯ рд▓реЛрдб рд╣реБрди рдерд╛рд▓реНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдмрд╛рд╣рд┐рд░ рдирд┐рдХрд╛рд▓реНрди рд░ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдЫрд╡рд┐рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рджреБрд╡реИ рдХреЗрд╕рд╣рд░реВ (SD/eMMC) рдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдЗрдБрд▓реЗ рдХрд░реНрдиреЗрд▓ рд▓реЛрдб рдЧрд░реНрди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдлрд╛рдЗрд▓рд╣рд░реВ (SD рдХрд╛рд░реНрдб, ATF, u-boot рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рд┐рд▓реЛрдбрд░) рд▓реЗрдЦреНрдиреБ рдкрд░реНрдЫред рдпреЛ рд╡рд┐рд╖рдп рдЕрдЭреИ рдЫ
рдЕрдм рдо eMMC рдорд╛рд░реНрдлрдд рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдЫреБ, рдЗрдорд╛рдирджрд╛рд░ рд╣реБрди, рдо рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд┐рди, рдПрдХ SD рдХрд╛рд░реНрдб рдкрд░реНрдпрд╛рдкреНрдд рдЫ, рддрд░ рдореИрд▓реЗ рдпрд╕рд▓рд╛рдИ рдХрд╛рдо рдЧрд░реНрди рдзреЗрд░реИ рд╕рдордп рдЦрд░реНрдЪ рдЧрд░реЗрдВ, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рд▓рд╛рдИ рд▓реЗрдЦрдорд╛ рд░рд╛рдЦреНрди рджрд┐рдиреБрд╣реЛрд╕реНред
рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рдЪрдпрди рдЧрд░реНрджреИред рдЖрд░реНрдореНрдмрд┐рдпрди
рдкрд╣рд┐рд▓реЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рд░реНрдп VPN рд╕реБрд░реБ рдЧрд░реНрдиреБ рд╣реЛ, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдкрдорд╛ Wireguardред рдпреЛ рддреБрд░реБрдиреНрддреИ рдкрддреНрддрд╛ рд▓рд╛рдЧреНрдпреЛ рдХрд┐ рдХрд░реНрдиреЗрд▓ рдЫреЗрдЙрдорд╛ рдпреЛ рднреЗрд▓рд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдПрди рд░ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рд╣реЗрдбрд░рд╣рд░реВ рдерд┐рдПрдирдиреНред рдореИрд▓реЗ рдХрд░реНрдиреЗрд▓ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░реЗрдВ рд░, x86 рдХреЛ рд╕рд╛рде рдореЗрд░реЛ рдмрд╛рдиреА рдЬрд╕реНрддреИ, DKMS рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд░реНрдиреЗрд▓ рдореЛрдбреНрдпреБрд▓ рднреЗрд▓рд╛ рдЧрд░реЗрдВред рдпрджреНрдпрдкрд┐, arm64 рдорд╛ рдкрдирд┐ рд╕рд╛рдирд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗ рдЧрддрд┐рд▓реЗ рдорд▓рд╛рдИ рдЕрдЪрдореНрдорд┐рдд рдмрдирд╛рдпреЛред рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЕрд░реНрдХреЛ рдХрд░реНрдиреЗрд▓ рдореЛрдбреНрдпреБрд▓ рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛ, рдЖрджрд┐ред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ рдХрд┐ рдХрд░реНрдиреЗрд▓рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рдиреНрдпрд╛рдиреЛ x86 рд▓реНрдпрд╛рдкрдЯрдкрдорд╛ рдЙрддреНрддрдо рд░реВрдкрдорд╛ рднреЗрд▓рд╛ рд╣реБрдиреНрдЫрдиреН, рддреНрдпрд╕рдкрдЫрд┐ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рддрд┐рд▓рд┐рдкрд┐, рд░рд┐рдмреБрдЯ рд░ рдкрд░реАрдХреНрд╖рдг рдЧрд░реЗрд░ R64 рдорд╛ рд╣рд╕реНрддрд╛рдиреНрддрд░рдг рдЧрд░рд┐рдиреНрдЫред
рдЕрд░реНрдХреЛ рдХреБрд░рд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╕реНрдкреЗрд╕ рднрд╛рдЧ рд╣реЛред рдбреЗрдмрд┐рдпрди рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ рдореЗрд░реЛ рдорд╛рдорд▓рд╛рдорд╛, arm64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рдХреБрд░рд╛ рдкрд╣рд┐рд▓реЗ рдиреИ packages.debian.org рдорд╛ рдЫ рд░ рддреНрдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рдкрдирд┐ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред
рдЕрд░реНрдХреЛ рд╕рд╛рдЗрдХрд▓ рдЙрддреНрдкрд╛рджрди рдирдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдо
рд╡рд╛ рдмрд░реБ, рдпреЛ: рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╕реНрдкреЗрд╕ рднрд╛рдЧ рдЖрд░реНрдореНрдмрд┐рдпрди рд╣реЛ, рд░ рдХрд░реНрдиреЗрд▓ рднрдгреНрдбрд╛рд░рдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ рд╣реЛред
R64 рдХреЛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рднрд╛рдЧ рдХреЛ рд╡рд┐рдХрд╛рд╕ рдорд╛ рд╕рдмреИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдорд╛ рдЧрд░рд┐рдиреНрдЫ
рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рд╕рдВрдЧрдарди: рддрд╛рд░
рдЕрд▓рдЧ рд░реВрдкрдорд╛, рдо рддрдкрд╛рдИрд▓рд╛рдИ рдмрддрд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреБ рдХрд┐ рдХрд╕рд░реА рд╡рд┐рдХрд╛рд╕/рдкрд░реАрдХреНрд╖рдгрдХреЛ рдХреНрд░рдордорд╛, рдЯреЗрдмрд▓рдорд╛ SBC (рдХреЗрд╡рд▓ BPI рдорд╛рддреНрд░ рд╣реЛрдЗрди) рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рддрд╛рдХрд┐ рд╕рдореНрдкреВрд░реНрдг рдХреЛрдард╛/рдХрд╛рд░реНрдпрд╛рд▓рдпрдорд╛ рдЗрдиреНрдЯрд░рдиреЗрдЯ рд╕реНрд░реЛрддрдмрд╛рдЯ рдИрдерд░рдиреЗрдЯ рдХреЗрдмрд▓ рдЪрд▓рд╛рдЙрди рдирдкрд░реЛрд╕реНред рддрдереНрдп рдпреЛ рд╣реЛ рдХрд┐, рдПрдХрд╛рддрд┐рд░, рддрдкрд╛рдИрд▓реЗ рдЗрдиреНрдЯрд░рдиреЗрдЯрдХреЛ рд╕рд╛рде рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдХреЛ рдЯреБрдХреНрд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рддрд░ рдЕрд░реНрдХреЛрддрд░реНрдл, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдХреЛ рддреНрдпреЛ рдЯреБрдХреНрд░рд╛рдорд╛ рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рдмрд┐рдЧреНрд░рди рд╕рдХреНрдЫрдиреН, рд░ рд╕рдмреИ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ рд╡рд╛рдЗрдлрд╛рдЗред
рдкрд╣рд┐рд▓реЗ, рдореИрд▓реЗ рд╕рд╕реНрддреЛ USB-Wifi "рд╕реАрдЯреА" рдХрд┐рдиреНрди рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВ, рдпрд╕рд▓рд╛рдИ BPI рдорд╛ рдорд╛рддреНрд░ рдкреЛрд░реНрдЯрдорд╛ рдкреНрд▓рдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рддрд╛рд░рд╣рд░реВ рдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реНред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдореИрд▓реЗ рд╕рд╕реНрддреЛ TP-LINK TL-WN725N USB 2.0 рдЦрд░рд┐рдж рдЧрд░реЗрдВ, рддрд░ рдзреЗрд░реИ рдЪрд╛рдБрдбреИ рдпреЛ рд╕реНрдкрд╖реНрдЯ рднрдпреЛ рдХрд┐ рдпреЛ рдмрдиреНрдж рд╣реБрдиреЗрдЫреИрди: рд╕реАрдЯреА рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрд░реНрдиреЗрд▓ рдбреНрд░рд╛рдЗрднрд░ рдЪрд╛рд╣рд┐рдиреНрдЫ, рдЬреБрди рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рддреНрдпрд╣рд╛рдБ рдерд┐рдПрдиред (рдкрдЫрд┐ рдореИрд▓реЗ рдЖрд╡рд╢реНрдпрдХ RTL8XXXU рдЪрд╛рд▓рдХ рднреЗрд▓рд╛ рдЧрд░реЗрдВ, рддрд░ рдпреЛ рдЕрдЭреИ рдЕрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЫ)ред рд░ рдЗрдерд░рдиреЗрдЯ рдХреЗрдмрд▓рд▓реЗ рдХреЗрд╣реА рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдХреЛрдард╛рдХреЛ рд░реВрдк рдмрд┐рдЧрд╛рд░реНрдпреЛред
рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдореИрд▓реЗ Tenda MW3 (Wifi рдЬрд╛рд▓ рдкреНрд░рдгрд╛рд▓реА) рдХреЛ рдорджреНрджрддрд▓реЗ рдХреЗрдмрд▓рдмрд╛рдЯ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдЙрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗрдВ: рдореИрд▓реЗ рдЯреЗрдмрд▓рдореБрдирд┐ рдПрдЙрдЯрд╛ рдХреНрдпреВрдм рд░рд╛рдЦреЗрдВ рд░ BPI рд▓рд╛рдИ рдкрдЫрд┐рд▓реНрд▓реЛрдХреЛ LAN рдкреЛрд░реНрдЯрдорд╛ рдорд┐рдЯрд░-рд▓рд╛рдореЛ рдЗрдерд░рдиреЗрдЯ рдХреЗрдмрд▓рджреНрд╡рд╛рд░рд╛ рдЬрдбрд╛рди рдЧрд░реЗрдВред рд╕рдлрд▓рддрд╛ред
рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб, рдЖрд░рдХреЗрдПрди, рдмрд░реНрдб
рдореИрд▓реЗ Banana PI рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреЗ рдЪреАрдЬрд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рднрдиреЗрдХреЛ RKN рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд░реБрджреНрдз рдЧрд░рд┐рдПрдХрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛ рдирд┐:рд╢реБрд▓реНрдХ рдкрд╣реБрдБрдЪ рд╣реБрдиреБ рд╣реЛ, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рддрд╛рдХрд┐ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд░ рд╕реНрд▓реНрдпрд╛рдХ рдХрд▓рд╣рд░реВ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреВрдиреНред Habr├й рдорд╛ рд▓реЗрдЦ рдкрд╣рд┐рд▓реЗ рдиреИ рдпрд╕ рд╡рд┐рд╖рдпрдорд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ:
рдореИрд▓реЗ рдареНрдпрд╛рдХреНрдХреИ рдпреЛ рд╕рдорд╛рдзрд╛рди Ansible рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддреИрдирд╛рдд рдЧрд░реЗрдВ:
VPS Ubuntu 18.04 рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдорд╛рдирд┐рдиреНрдЫред рдореИрд▓реЗ рдпреБрд░реЛрдкрдорд╛ рджреБрдИ рд╣реЛрд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬрд╛рдБрдЪ рдЧрд░реЗрдВ: рдЕрдореЗрдЬрди рд░ рдбрд┐рдЬрд┐рдЯрд▓ рдорд╣рд╛рд╕рд╛рдЧрд░ред
рддреНрдпрд╕реЛрднрдП, рд╣рд╛рдореАрд▓реЗ R64 рдорд╛ рдорд╛рдерд┐рдХреЛ Armbian рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдпреМрдВ, рдпреЛ рдирд╛рдо рдЕрдиреНрддрд░реНрдЧрдд 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
рдпрд╣рд╛рдБ рддрд░реНрдХ рд╕рдзреИрдВ рд╡рд░реНрддрдорд╛рди-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
рдУ рд╣реЛ, рдпреА рд╕рдмреИ рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рдЕрдШрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдлреЛрд▓реНрдбрд░рдорд╛ рдЧреЛрдкреНрдп (рд╡рд┐рд╢реЗрд╖ рдЧрд░реА Wireguard рдХреБрдЮреНрдЬреАрд╣рд░реВ) рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред ./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")
рдкреНрд░рдХрд╛рд░реНрдп рдХреЛрдб рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН
рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рднрдирд┐рдиреНрдЫ pybook
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдпреЛ
рдЙрд╕рд▓рд╛рдИ рдХреЗ рд▓рд╛рдЧреНрдЫ
рдЕрдиреБрдЧрдордиред рдкреНрд░реЛрдореЗрдерд┐рдпрд╕
рдХреБрд▓: рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдХрд╛рдо рдЧрд░реНрджрдЫ, рд▓рд┐рдЩреНрдХрдбрдЗрди рд░ рдкреЛрд░реНрдирд╣рдм рдкрдирд┐, рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдареАрдХ рдЫред рддрд░ рдЪрд┐рдирд┐рдпрд╛рдБ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рд╣рд┐рдд рд╕рдмреИ рдХреБрд░рд╛ рддреЛрдбреНрди рд╕рдХреНрдЫред
рдХрд░реНрдиреЗрд▓ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдкрдирд┐ рд░реЛрдЪрдХ рд╣реБрди рд╕рдХреНрдЫрдиреН: рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдо рдХрд░реНрдиреЗрд▓ 5.4 => 5.6 рдЕрдкрдбреЗрдЯ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдереЗрдВ, рдЦреИрд░, Wireguard рддреНрдпрд╣рд╛рдБ рдмрд╛рдХрд╕ рдмрд╛рд╣рд┐рд░ рдЫ, рдкреНрдпрд╛рдЪ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди... рдпрд╕реЛ рднрдиреНрджрд╛ рдЪрд╛рдБрдбреЛ рднрдирд┐рдПрдХреЛ рдЫреИрди: рдореИрд▓реЗ рдореЗрд╣рдирддрдкреВрд░реНрд╡рдХ 5.4 рдмрд╛рдЯ рдкреНрдпрд╛рдЪрд╣рд░реВ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реЗрдВред 5.6 рдорд╛, рдХрд░реНрдиреЗрд▓ рд╕реБрд░реБ рднрдпреЛ, VPS рдХреЛ рд╕реБрд░реБрдЩ рдкрд┐рдВрдЧ рдЧрд░рд┐рдпреЛ, рддрд░ рдкрдХреНрд╖реА рддреНрд░реБрдЯрд┐рд╕рдБрдЧ рдЬрдбрд╛рди рд╣реБрди рд╕рдХреНрджреИрди "BGP рддреНрд░реБрдЯрд┐" ... "рдо рдбрд░рдорд╛ рдлрд░реНрдХрд┐рдпреЛ" (c) 5.4 рдорд╛; TODO рдорд╛ 5.6 рдорд╛ рд╕рд╛рд░рд┐рдПрдХреЛ рдерд┐рдпреЛред
рддрд╕рд░реНрде, рд░рд╛рдЙрдЯрд░ рд░ VPS рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореИрд▓реЗ рдирд┐рдЧрд░рд╛рдиреА рдердкреЗ (x86 Ubuntu 18.04 рдорд╛), рдЬреБрди рдирд┐рдореНрди рдШрдЯрдХрд╣рд░реВрд╕рдБрдЧ рдЫреБрдЯреНрдЯреИ рд╣реЛрд╕реНрдЯрдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ:
- prometheus, alertmanager, blackbox_exporter - рд╕рдмреИ рдбрдХрд░рдорд╛
- рдЕрд▓рд░реНрдЯрд╣рд░реВ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЪреНрдпрд╛рдирд▓рдорд╛ metalmatze/alertmanager-bot bot рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрдард╛рдЗрдиреНрдЫ - рдбрдХрд░рдорд╛ рдкрдирд┐
- рдмреЛрдЯрдХреЛ рд▓рд╛рдЧрд┐ tor, рддрд╛рдХрд┐ рдмреЛрдЯрд▓реЗ рдЗрдиреНрдЯрд░рдиреЗрдЯ рд╣реБрдБрджрд╛ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрд▓рд╛рдИ рд╕рдЪреЗрдд рдЧрд░рд╛рдЙрди рд╕рдХреНрдЫ, рддрд░ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдорд▓реЗ рдЕрдЭреИ рдХрд╛рдо рдЧрд░реНрджреИрди, рд░ рдмреЛрдЯ рдЖрдлреИрдВ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрджреИрдиред
- рд▓рд╛рдЧреВ рдЧрд░рд┐рдпреЛ
рдЕрд▓рд░реНрдЯрд╣рд░реВ : NodeVPNtroubles (VPS рдорд╛ рдкрд┐рдВрдЧ рдЫреИрди), BirdVPNtroubles (рдХреБрдиреИ рдмрд░реНрдб рд╕рддреНрд░), AntifilterDownloadTroubles (рддреНрд░реБрдЯрд┐ рд▓реЛрдб рдЧрд░реНрджрд╛ рдЕрд╡рд░реБрджреНрдз рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рд╣рд░реВ), 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, anycast рдлреЗрд▓рдУрднрд░
рд╕рдмреИ рдХреБрд░рд╛рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореИрд▓реЗ рджреБрдИ рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрд╕рдБрдЧ рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдХреЛ рдЫреБ рддрд╛рдХрд┐ рдЗрдиреНрдЯрд░рдиреЗрдЯрд▓реЗ рдХрд╛рдо рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдЫ, рдПрдХ рдкреНрд░рджрд╛рдпрдХрдХреЛ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рд╕рдорд╕реНрдпрд╛ рднрдП рддрд╛рдкрдирд┐, рд╡рд╛ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдЗрдиреНрдЯрд░рдиреЗрдЯ, рдЖрджрд┐, рд░ рдЕрдиреНрдп рдорд╛рдирд╡ рдХрд╛рд░рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рднреБрдХреНрддрд╛рди рдЧрд░реНрди рдмрд┐рд░реНрд╕рдиреБрднрдпреЛред
рдмрд╣реБ-рд╡рд╛рдирдХреЛ рд╡рд┐рд╖рдпрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЙрдиреНрдирдд рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ
рдпреЛ рдЕрдиреБрднрд╡рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрджреИ, рдореИрд▓реЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВ рдХрд┐ рдорд▓реНрдЯрд┐рд╣реЛрдорд┐рдЩ рдЕрдЭреИ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдЗрди, рдХреЗрд╡рд▓ рдлреЗрд▓рдУрднрд░ рд╣реЛред рдЬреЗ рд╣реЛрд╕реН, рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рд▓рд┐рдирдХреНрд╕рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рд╕рдмреИрд▓реЗ рдПрдЙрдЯрд╛ рдЖрджреЗрд╢рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреБрдкрд░реНрдЫ рдЬрд╕реНрддреИ:
ip route add default
nexthop via 192.168.1.1 weight 10
nexthop via 192.168.2.1 weight 5
рддреНрдпрд╕реЛрднрдП, рдЕрд╕рдлрд▓рддрд╛рдХреЛ рдПрдХрд▓ рдмрд┐рдиреНрджреБрдмрд╛рдЯ рдмрдЪреНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА 2 BPI рд╣рд░реВ рд▓рд┐рдиреНрдЫреМрдВ, рдкреНрд░рддреНрдпреЗрдХрд▓рд╛рдИ рдПрдХ рдкреНрд░рджрд╛рдпрдХрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдЫреМрдВ, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рдЬреЛрдбреНрдЫреМрдВ рд░ рдмрд░реНрдб/рдУрдПрд╕рдкреАрдПрдл рдорд╛рд░реНрдлрдд рдПрдХ-рдЕрд░реНрдХрд╛рд▓рд╛рдИ рдЧрддрд┐рд╢реАрд▓ рд░реВрдЯрд┐рдЩрд╕рдБрдЧ рдЬрдбрд╛рди рдЧрд░реНрдЫреМрдВред
рдЕрд░реНрдХреЛ, рдпрджрд┐ рд╕реЗрд╡рд╛ рдЙрдкрд▓рдмреНрдз рдЫ рднрдиреЗ рд╣рд╛рдореА рдкреНрд░рддреНрдпреЗрдХрдорд╛ рд╕рдорд╛рди рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рдХреЛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЧрд░реНрдЫреМрдВ (рдЗрдиреНрдЯрд░рдиреЗрдЯ, DNS)ред рддреНрдпреЛ рд╣реЛ, рд╣рд╛рдореА рдЖрдлреИрдВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рд░реНрдЧ рд╕реЗрдЯ рдЧрд░реНрджреИрдиреМрдВ, рддрд░ рдкрдХреНрд╖реА рдорд╛рд░реНрдлрддред рдореИрд▓реЗ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬреЗрдБ
рдпреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдЭреИ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди, рдХрдкрдЯреА рдХреЛрд░реЛрдирд╛рднрд╛рдЗрд░рд╕рд▓реЗ рдпрд╣рд╛рдБ рдПрдХ рдЪрд╛рд▓ рдЦреЗрд▓реНрдпреЛ (рд╕рдмреИ рдХреБрд░рд╛ Aliexpress рдмрд╛рдЯ рдЖрдЗрдкреБрдЧреЗрдХреЛ рдЫреИрди; рдЕрд░реНрдХреЛ рдЕрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░, Layta рд▓реЗ рдПрдХ рд╣рдкреНрддрд╛рдорд╛ рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрдиреЗ рд╡рд╛рдЪрд╛ рдЧрд░реНрдпреЛ, рддрд░ рдПрдХ рдорд╣рд┐рдирд╛ рднрдиреНрджрд╛ рдмрдвреА рдмрд┐рддрд┐рд╕рдХреЗрдХреЛ рдЫ; рджреЛрд╕реНрд░реЛ рдкреНрд░рджрд╛рдпрдХрд╕рдБрдЧ рд╕рдордп рдЫреИрдиред рдХреНрд╡рд╛рд░реЗрдиреНрдЯрд╛рдЗрди рдЕрдШрд┐ рдХреЗрдмрд▓ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди, рдХреЗрд╡рд▓ рдХреЗрдмрд▓ рдХреЛ рд▓рд╛рдЧреА рднрд┐рддреНрддрд╛ рдорд╛ рдбреНрд░рд┐рд▓ рдорд╛ рдПрдХ рдкреНрд╡рд╛рд▓ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рд╡реНрдпрд╡рд╕реНрдерд┐рдд)ред
R64 рдХрд╕рд░реА рдЕрд░реНрдбрд░ рдЧрд░реНрдиреЗ
рдмреЛрд░реНрдб рдЖрдлреИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрдЯреЛрд░рдорд╛ рдЫ
рдпреЛ рддреБрд░реБрдиреНрддреИ рдЕрд░реНрдбрд░ рдЧрд░реНрди рд░рд╛рдореНрд░реЛ рдЫ:
рдкреЛрд╖рдг + EU рд╡рд╛ US рдкреНрд▓рдЧ рдорд╛рдирдХрд▓рд╛рдИ рд╕реВрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН- рдЧрд░реНрдореА рд╕рд┐рдВрдХ: рд░реЗрдбрд┐рдПрдЯрд░ / рдкреНрд░рд╢рдВрд╕рдХ; рдХрд┐рдирднрдиреЗ CPU рд░ рд╕реНрд╡рд┐рдЪ рдЪрд┐рдк рджреБрд╡реИ рддрддрд┐рд░рд╣реЗрдХрд╛ рдЫрдиреН
- рд╡рд╛рдЗрдлрд╛рдЗ рдПрдиреНрдЯреЗрдирд╛,
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐
рддреНрдпрд╣рд╛рдБ рдПрдХ рд╕реВрдХреНрд╖реНрдорддрд╛ рдЫ - рд╡рд┐рддрд░рдг рдореВрд▓реНрдп рдХреЗрд╣реА рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрдЯреЛрд░рдорд╛ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд░реВрдкрдорд╛ рдЙрдЪреНрдЪ рднрдПрдХреЛ рдЫред рдкреНрд░рдмрдиреНрдзрдХ рдЬреБрдбреА рд╣реБрдЖрдВрдЧрд▓реЗ рдорд▓рд╛рдИ рдХреБрдиреИ рддреНрд░реБрдЯрд┐ рдирднрдПрдХреЛ рдХреБрд░рд╛рдорд╛ рд╡рд┐рд╢реНрд╡рд╕реНрдд рдЧрд░рд╛рдЙрдиреБрднрдпреЛ, рд░ рддрдкрд╛рдИрдВрд▓реЗ $ 5 рдХреЛ рд▓рд╛рдЧрд┐ ePacket рдЫрдиреМрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рдореИрд▓реЗ рджреЗрдЦреЗрдХреЛ рдЫреБ рдХрд┐ рд░реВрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ EMS рдЫ >$33ред рдЕрдкреНрд░рд┐рдп, рддрд░ рдЖрд▓реЛрдЪрдирд╛рддреНрдордХ рдЫреИрдиред рдпрд╕рдмрд╛рд╣реЗрдХ, рдпрджрд┐ рддрдкрд╛рдЗрдБ рдбреЗрд▓рд┐рднрд░реАрдХреЛ рд▓рд╛рдЧрд┐ рдХреБрдиреИ рдЕрдиреНрдп рджреЗрд╢ рдЫрдиреМрдЯ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ (рдо рд╕рдмреИ рдорд╣рд╛рджреНрд╡реАрдкрд╣рд░реВ рдорд╛рд░реНрдлрдд рдЧрдПрдБ), рдбреЗрд▓рд┐рднрд░реАрдХреЛ рд▓рд╛рдЧрдд ~ $ 5 рд╣реБрдиреЗрдЫред Russophobes? .. рддрд░ рддреНрдпрд╕рдкрдЫрд┐ рдореИрд▓реЗ рдлреНрд░рд╛рдиреНрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдбреЗрд▓рд┐рднрд░реА рдореВрд▓реНрдп рдкрдирд┐ ~ 30$ рд╣реЛ рднрдиреЗрд░ рдлреЗрд▓рд╛ рдкрд╛рд░реЗ, рд░ рдо рд╢рд╛рдиреНрдд рднрдПрдБред
рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдЬреБрдбреАрд▓реЗ рдЕрд░реНрдбрд░ рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реЗ, рддрд░ рднреБрдХреНрддрд╛рди рдирдЧрд░реНрдиреЗ (рд╕рдЩреНрдХреЗрдд: рдХрд╛рд░реНрдбрдорд╛ рдХрдо рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рддрд╛рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рднреБрдХреНрддрд╛рдиреА рдорд╛рд░реНрдлрдд рдЬрд╛рдБрджреИрди); рдЙрд╕рд▓рд╛рдИ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН рд░ рдЙрд╕рд▓реЗ рдбреЗрд▓рд┐рднрд░реА рдореВрд▓реНрдп рд╕рд╛рдорд╛рдиреНрдпрдорд╛ рдШрдЯрд╛рдЙрдиреЗрдЫред рд╕рдлрд▓рддрд╛ред
рдореБрджреНрджрд╛
рдЕрдЭреИ рдкрдирд┐ рд╕рдмреИ рдХреБрд░рд╛ рд░рд╛рдореНрд░рд░реА рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫреИрдиред
рдЙрддреНрдкрд╛рджрдХрддрд╛
Ansible=рдкрд╛рдЗрдерди рдЖрджреЗрд╢рд╣рд░реВ рдмрд┐рд╕реНрддрд╛рд░реИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫ, рдирд┐рд╖реНрдХреНрд░рд┐рдп рдкрдирд┐, реиреж-рейреж рд╕реЗрдХреЗрдиреНрдбрдХрд╛ рд▓рд╛рдЧрд┐; x20 рд▓реНрдпрд╛рдкрдЯрдкрдорд╛ рднрдиреНрджрд╛ рд▓рд╛рдореЛ рдореНрдпрд╛рдЧреНрдирд┐рдЪреНрдпреБрдбрдХреЛ рдЕрд░реНрдбрд░ред рдпрд╕рдмрд╛рд╣реЗрдХ, рд╕реБрд░реБрдорд╛ рддрд┐рдиреАрд╣рд░реВ рдПрдХрджрдо рдЪрд╛рдБрдбреИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдиреНрдЫрдиреН, ~ 30 рд╕реЗрдХреЗрдиреНрдб, рддреНрдпрд╕рдкрдЫрд┐ рддрд┐рдиреАрд╣рд░реВ рддреАрд╡реНрд░ рд░реВрдкрдорд╛ рдврд┐рд▓реЛ рд╣реБрдиреНрдЫрдиреНред рдпреЛ 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