рдмрдирд╛рдирд╛ рдкрд╛рдИ рдЖрд░64 рд░рд╛рдЙрдЯрд░ - рдбреЗрдмрд┐рдпрди, рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб, рдЖрд░рдХреЗрдПрди

рдмрдирд╛рдирд╛ рдкрд╛рдИ 64 рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд╕рдорд╛рди рдПрдХ рд╕рд┐рдВрдЧрд▓-рдмреЛрд░реНрдб рдХрдВрдкреНрдпреВрдЯрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рдИрдерд░рдиреЗрдЯ рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде, рдЬреЛ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рд╛рдЙрдЯрд░ рдореЗрдВ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред

рдмрдирд╛рдирд╛ рдкрд╛рдИ рдЖрд░64 рд░рд╛рдЙрдЯрд░ - рдбреЗрдмрд┐рдпрди, рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб, рдЖрд░рдХреЗрдПрди

рд╣рд╛рдВ, рдУрдкрдирд░рд╛рдЗрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рдХреА рдЬреАрдпреВрдЖрдИ рдФрд░ рд╕реАрдПрд▓рдЖрдИ; рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рдЬреАрдпреВрдЖрдИ/рд╕реАрдПрд▓рдЖрдИ рд╣реИ, рдФрд░ рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ... рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рд▓рдЪреАрд▓реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡рд╛рд▓рд╛ рдПрдХ рд░рд╛рдЙрдЯрд░ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреЛ рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рд░рд╣рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЖрдк рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рд╣рд░ рджрд┐рди рдХреЗ рд╕рд╛рде.

рд▓реЗрдЦ рдореЗрдВ рдмреАрдкреАрдЖрдИ, рдЖрд░64, рд╕рд┐рдВрдЧрд▓-рдмреЛрд░реНрдб рдирд╛рдореЛрдВ рдХреЗ рддрд╣рдд, рдореЗрд░рд╛ рдорддрд▓рдм рдПрдХ рд╣реА рд╣реЛрдЧрд╛ - рдмрдирд╛рдирд╛ рдкрд╛рдИ рдЖрд░64 рд╕рд┐рдВрдЧрд▓-рдмреЛрд░реНрдб рд╣реАред

рдПрдХ рдЫрд╡рд┐ рдЪреБрдирдирд╛. рдИрдПрдордПрдорд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓рд╛ рдХреМрд╢рд▓ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ SBC рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ R64 рдХреЗ рд╕рд╛рде, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╕реАрдЦрдирд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреИрд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ, рдХреНрдпреЛрдВрдХрд┐ R64 рдореЗрдВ рдореЙрдирд┐рдЯрд░ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдЪрдбреАрдПрдордЖрдИ)ред рдЬрдм рд╕рдм рдХреБрдЫ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ - рд╡рд╛рдИрдлрд╝рд╛рдИ, рдИрдерд░рдиреЗрдЯ, рдмреНрд▓реВрдЯреВрде, рдпреВрдПрд╕рдмреА, рдЖрджрд┐ рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдПрдХ рдпреВрдПрдЖрд░рдЯреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдк рд╣рдореЗрд╢рд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдХрдВрд╕реЛрд▓ рд╕реЗ рдХреБрдЫ рдХрдорд╛рдВрдб рднреА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

USB-UART рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ R64 рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо:

  • рд╣рдо USB-UART рдХреЗрдмрд▓ (PL2303, рд╕реАрд░рд┐рдпрд▓-рдЯреВ-USB) рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рдпреЛ рдкрд╛рд░реНрдЯреНрд╕ рд╕реНрдЯреЛрд░ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ
  • рдПрдХ USB рд╕рд┐рд░реЗ рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдФрд░ рджреВрд╕рд░реЗ, UART рдХреЛ, R64 рд╕реЗ, рдЪрд╛рд░ рдореЗрдВ рд╕реЗ рддреАрди рддрд╛рд░реЛрдВ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
  • рдХрдВрдкреНрдпреВрдЯрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЪрд▓рд╛рдПрдБ sudo minicom

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рд┐рдВрдЧрд▓-рдмреЛрд░реНрдб рдХрдВрд╕реЛрд▓ = рд╕рдлрд▓рддрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред
рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣рд╛рдВ.

рдмрдирд╛рдирд╛ рдкрд╛рдИ рдЖрд░64 рд░рд╛рдЙрдЯрд░ - рдбреЗрдмрд┐рдпрди, рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб, рдЖрд░рдХреЗрдПрди

рдЕрдЧрд▓рд╛, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ: рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рд▓рд┐рдВрдХ рдЫрд╡рд┐ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рднрд░реЗрдВ:

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 рд╕реНрд▓реЙрдЯ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХрдиреЗрдХреНрдЯреЗрдб рдХрдВрд╕реЛрд▓ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдкрд╣рд▓реЗ рдпреВрдмреВрдЯ, рдлрд┐рд░ рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕ рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред

рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмреВрдЯ рд╡рд┐рдХрд▓реНрдк R64 рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдорд┐рдд 8 рдЬреАрдмреА рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдИрдПрдордПрдорд╕реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдХрд┐ рдореЗрдВ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдЫрд╡рд┐ рдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ
/dev/mmcblk0 рд╕реЗ BPI, рд░реАрдмреВрдЯ рдХрд░реЗрдВ, SD рдХрд╛рд░реНрдб рдирд┐рдХрд╛рд▓реЗрдВ, BPI рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░реЗрдВ... рдФрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдЧреЗ рдкреАрдЫреЗ рдХреИрд╕реЗ рдЬрд╛рдирд╛ рд╣реИ Boot select рднреЗрдЬрд╛ рдордд рдЦрд╛ред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдмреАрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЖрдВрддрд░рд┐рдХ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдмреВрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

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 рд╕реЗ рд▓реЛрдб рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдЫрд╡рд┐рдпрд╛рдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ (рдПрд╕рдбреА/рдИрдПрдордПрдорд╕реА) рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд░реНрдиреЗрд▓ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдФрд░ рдлрд╛рдЗрд▓реЗрдВ (рдПрд╕рдбреА рдХрд╛рд░реНрдб, рдПрдЯреАрдПрдл, рдпреВ-рдмреВрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░реАрд▓реЛрдбрд░) рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╖рдп рдЕрднреА рднреА рд╣реИ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдареАрдХ рд╣реИред

рдЕрдм рдореИрдВ рдИрдПрдордПрдорд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ, рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрд╣реВрдВ рддреЛ, рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдПрдХ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд▓реЗрдЦ рдореЗрдВ рд░рд╣рдиреЗ рджреЗрдВред

рдПрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░рдирд╛. рдЖрд░реНрдордмрд┐рдпрди

рдкрд╣рд▓рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рд░реНрдп рдПрдХ рд╡реАрдкреАрдПрди рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рд╣реИ, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд╛рдпрд░рдЧрд╛рд░реНрдбред рдпрд╣ рддреБрд░рдВрдд рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХрд░реНрдиреЗрд▓ рдХреА рддрд░рдл рдЗрд╕реЗ рдЕрд╕реЗрдВрдмрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХреЛрдИ рд╣реЗрдбрд░ рдирд╣реАрдВ рдереЗред рдореИрдВрдиреЗ рдХрд░реНрдиреЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ x86 рдХреЗ рд╕рд╛рде рдореЗрд░реА рдЖрджрдд рд╣реИ, DKMS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрд░реНрдо64 рдкрд░ рдЫреЛрдЯреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЧрддрд┐ рдиреЗ рдореБрдЭреЗ рдЕрдкреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░ рджрд┐рдпрд╛ред рдФрд░ рдлрд┐рд░ рдПрдХ рдЕрдиреНрдп рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЖрджрд┐ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХрд░реНрдиреЗрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣рд░ рдЪреАрдЬ рдХреЛ рдЧрд░реНрдо x86 рд▓реИрдкрдЯреЙрдк рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рджреНрд╡рд╛рд░рд╛ R64 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд░реАрдмреВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдФрд░ рдЪреАрдЬ рд╣реИ рдпреВрдЬрд░рд╕реНрдкреЗрд╕ рд╣рд┐рд╕реНрд╕рд╛ред рдбреЗрдмрд┐рдпрди рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрд░реНрдо64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА packages.debian.org рдкрд░ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рджреВрд╕рд░реА рд╕рд╛рдЗрдХрд┐рд▓ рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкреЛрд░реНрдЯ рдмрд╛рдЬреВрдмрдВрдж рдмреАрдкреАрдЖрдИ рдЖрд░64 рдкрд░ред
рдпрд╛ рдпреЛрдВ рдХрд╣реЗрдВ, рдпрд╣: рдпреВрдЬрд░рд╕реНрдкреЗрд╕ рднрд╛рдЧ рдЖрд░реНрдордмрд┐рдпрди рд╣реИ, рдФрд░ рдХрд░реНрдиреЗрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдлреНрд░реИрдВрдХ-рдПрдХред рдирд╡реАрдирддрдо рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдпрд╣рд╛рдВ.

R64 рдХреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рднрд╛рдЧ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рд╕рднреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБ рдХреА рдЬрд╛рддреА рд╣реИрдВ рдлреЛрд░рдо. рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдирд┐рд░реНрдорд╛рддрд╛ рд╕реНрд╡рдпрдВ рдУрдкрдирд░рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рд░рд╛рдЙрдЯрд░ рдХреЛ рд▓реЛрдХрдкреНрд░рд┐рдп рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд░реНрдордиреА рдХреЗ рдбреЗрд╡рд▓рдкрд░ рдлреНрд░реИрдВрдХ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬрд▓реНрджреА рд╕реЗ рдбреЗрдмрд┐рдпрди рдХреЗ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рд╣реИрд░рд╛рдиреА рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдлреНрд░реИрдВрдХ рд╣рд░ рдлреЛрд░рдо рдереНрд░реЗрдб рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд╣реИред

рдХрд╛рд░реНрдпрд╕реНрдерд▓ рд╕рдВрдЧрдарди: рддрд╛рд░

рдЕрд▓рдЧ рд╕реЗ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ, рд╡рд┐рдХрд╛рд╕/рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рдПрдХ рдореЗрдЬ рдкрд░ рдПрдХ рдПрд╕рдмреАрд╕реА (рд╕рд┐рд░реНрдл рдПрдХ рдмреАрдкреАрдЖрдИ рдирд╣реАрдВ) рд░рдЦреЗрдВ рддрд╛рдХрд┐ рдкреВрд░реЗ рдХрдорд░реЗ/рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реНрд░реЛрдд рд╕реЗ рдИрдерд░рдиреЗрдЯ рдХреЗрдмрд▓ рди рдЪрд▓рд╛рдпреА рдЬрд╛ рд╕рдХреЗред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐, рдПрдХ рдУрд░, рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд╕рд╛рде рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдУрд░, рдЙрд╕ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЦрд░рд╛рдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╡рд╛рдИрдлрд╛рдИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдПрдХ рд╕рд╕реНрддрд╛ рдпреВрдПрд╕рдмреА-рд╡рд╛рдИрдлрд╝рд╛рдИ "рд╕реАрдЯреА" рдЦрд░реАрджрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЗрд╕реЗ рдмреАрдкреАрдЖрдИ рдкрд░ рдПрдХрдорд╛рддреНрд░ рдкреЛрд░реНрдЯ рдореЗрдВ рдкреНрд▓рдЧ рдХрд┐рдпрд╛ рдФрд░ рддрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдпрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд╕реНрддрд╛ TP-LINK TL-WN725N USB 2.0 рдЦрд░реАрджрд╛, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЬрд▓реНрдж рд╣реА рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рдмрдВрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛: рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдЯреА рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдХрд░реНрдиреЗрд▓ рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рдерд╛ (рдмрд╛рдж рдореЗрдВ рдореИрдВрдиреЗ рдЖрд╡рд╢реНрдпрдХ RTL8XXXU рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдЕрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИ)ред рдФрд░ рдИрдерд░рдиреЗрдЯ рдХреЗрдмрд▓ рдиреЗ рдХрдорд░реЗ рдХрд╛ рд▓реБрдХ рдХреБрдЫ рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛.

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореИрдВ рдЯреЗрдВрдбрд╛ MW3 (рд╡рд╛рдИрдлрд╝рд╛рдИ рдореЗрд╢ рд╕рд┐рд╕реНрдЯрдо) рдХреА рдорджрдж рд╕реЗ рдХреЗрдмрд▓ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛: рдореИрдВрдиреЗ рдмрд╕ рдПрдХ рдХреНрдпреВрдм рдХреЛ рдЯреЗрдмрд▓ рдХреЗ рдиреАрдЪреЗ рд░рдЦрд╛ рдФрд░ рдореАрдЯрд░-рд▓рдВрдмреА рдИрдерд░рдиреЗрдЯ рдХреЗрдмрд▓ рдХреЗ рд╕рд╛рде BPI рдХреЛ рдмрд╛рдж рд╡рд╛рд▓реЗ LAN рдкреЛрд░реНрдЯ рд╕реЗ рдЬреЛрдбрд╝рд╛ред рд╕рдлрд▓рддрд╛ред

рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб, рдЖрд░рдХреЗрдПрди, рдмрд░реНрдб

рдЬрд┐рди рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдВ рдмрдирд╛рдирд╛ рдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрд░рдХреЗрдПрди рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд░реБрджреНрдз рд╕рд╛рдЗрдЯреЛрдВ рддрдХ рдореБрдлреНрдд рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ, рддрд╛рдХрд┐ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдФрд░ рд╕реНрд▓реИрдХ рдХреЙрд▓ рдХрд╛рдо рдХрд░ рд╕рдХреЗрдВред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╣реИрдмреЗ рдкрд░ рд▓реЗрдЦ рдкрд╣рд▓реЗ рд╣реА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдП рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ: рд╕рдордп, ╨┤╨▓╨░, рддреАрди.

рдореИрдВрдиреЗ Ansible рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рдпрд╣реА рд╕рдорд╛рдзрд╛рди рддреИрдирд╛рдд рдХрд┐рдпрд╛ рд╣реИ: рд▓рд┐рдВрдХ.

рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реАрдкреАрдПрд╕ рдЙрдмрдВрдЯреВ 18.04 рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдпреВрд░реЛрдк рдореЗрдВ рджреЛ рд╣реЛрд╕реНрдЯрд░реНрд╕ рдкрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХреА: рдЕрдореЗрдЬрд╝реЕрди рдФрд░ рдбрд┐рдЬрд┐рдЯрд▓ рдУрд╢рдиред

рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдЙрдкрд░реЛрдХреНрдд рдЖрд░реНрдордмрд┐рдпрди рдХреЛ R64 рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдирд╛рдо рдХреЗ рддрд╣рдд ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИ hm-bananapi-1 рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдЙрдкрд▓рдмреНрдз рд╣реИред рд╣рдо рд▓рдЧрд╛рддрд╛рд░ Ansible, рдСрдЯреЛрдореЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ 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

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рд╡реАрдкреАрдПрди рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╡реАрдкреАрдПрд╕ рдкрд░ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

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

рдпрд╣рд╛рдВ рддрд░реНрдХ рд╣рдореЗрд╢рд╛ рдХрд░рдВрдЯ-рд╡реАрдкреАрдПрди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реАрдкреАрдПрд╕ рдирд╛рдо рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдкреЗрд░рд┐рд╕-рд╡реАрдкреАрдПрди-рдПрдбрдмреНрд▓реНрдпреВрдПрд╕-рдЯреА2-рдорд╛рдЗрдХреНрд░реЛ-1 рд╣реИ):

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

рдЕрд░реЗ рд╣рд╛рдВ, рдЗрди рд╕рднреА рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рд╣рд╕реНрдп (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб рдХреБрдВрдЬреА) рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ./secrets, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬреИрд╕реА рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП рдЗрд╕рд▓рд┐рдП.

рдкрд╛рдпрдерди рдореЗрдВ рдЕрдиреНрд╕рд┐рдмрд▓ рдСрдЯреЛрдореЗрд╢рди

рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ YAML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, Ansible рдХрдорд╛рдВрдб рдХреЛ Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдкрдХреНрд╖реА рдбреЗрдореЙрди рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ:

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

рдФрд░ рдЗрд╕реЗ Python рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ:

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 рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдареАрдХ рд╣реИ, рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ, рдкреИрдЪ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ... рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рдХрд╣рд╛ рдЬрд╛рдП рдЙрддрдирд╛ рдЬрд▓реНрджреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛: рдореИрдВрдиреЗ рд╢реНрд░рдордкреВрд░реНрд╡рдХ рдкреИрдЪ рдХреЛ 5.4 рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ 5.6 рддрдХ, рдХрд░реНрдиреЗрд▓ рдЪрд╛рд▓реВ рд╣реЛ рдЧрдпрд╛, рд╡реАрдкреАрдПрд╕ рдХреА рд╕реБрд░рдВрдЧ рдкрд┐рдВрдЧ рд╣реЛ рдЧрдИ, рд▓реЗрдХрд┐рди рдкрдХреНрд╖реА "рдмреАрдЬреАрдкреА рддреНрд░реБрдЯрд┐" рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрд╛ ... "рдореИрдВ рднрдпрднреАрдд рд╣реЛрдХрд░ рд╡рд╛рдкрд╕ рд▓реБрдврд╝рдХ рдЧрдпрд╛" (рд╕реА) рд╕реЗ 5.4 рддрдХ; TODO рдореЗрдВ 5.6 рдХрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕рд▓рд┐рдП, рд░рд╛рдЙрдЯрд░ рдФрд░ рд╡реАрдкреАрдПрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ (x86 Ubuntu 18.04 рдкрд░) рдЬреЛрдбрд╝рд╛, рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рд╣реЛрд╕реНрдЯ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ:

  • рдкреНрд░реЛрдореЗрдерд┐рдпрд╕, рдЕрд▓рд░реНрдЯрдореИрдиреЗрдЬрд░, рдмреНрд▓реИрдХрдмреЙрдХреНрд╕_рдПрдХреНрд╕рдкреЛрд░реНрдЯрд░ - рд╕рднреА рдбреЙрдХрд░ рдореЗрдВ
  • рдореЗрдЯрд▓рдореИрдЯрдЬрд╝/рдЕрд▓рд░реНрдЯрдореИрдиреЗрдЬрд░-рдмреЙрдЯ рдмреЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рдкрд░ рдЕрд▓рд░реНрдЯ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ - рдбреЙрдХрд░ рдореЗрдВ рднреА
  • рдмреЙрдЯ рдХреЗ рд▓рд┐рдП рдЯреЛрд░, рддрд╛рдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдмреЙрдЯ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╕рдЪреЗрдд рдХрд░ рд╕рдХреЗ, рд▓реЗрдХрд┐рди рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмреЙрдЯ рд╕реНрд╡рдпрдВ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
  • рдЖрд╡реЗрджрди рдЕрд▓рд░реНрдЯ: рдиреЛрдбрд╡реАрдкреАрдПрдирдЯреНрд░реЙрдмрд▓реНрд╕ (рд╡реАрдкреАрдПрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкрд┐рдВрдЧ рдирд╣реАрдВ), рдмрд░реНрдбрд╡реАрдкреАрдПрдирдЯреНрд░рдмрд▓реНрд╕ (рдХреЛрдИ рдмрд░реНрдб рд╕рддреНрд░ рдирд╣реАрдВ), рдПрдВрдЯреАрдлрд┐рд▓реНрдЯрд░рдбрд╛рдЙрдирд▓реЛрдбрдЯреНрд░реЙрдмрд▓реНрд╕ (рдЕрд╡рд░реБрджреНрдз рдЖрдИрдкреА рдкрддреЗ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐), рд╕рд╛рдЗрдЯрдЯреНрд░рдмрд▓реНрд╕ (рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИ)
  • рд╕рд┐рд╕реНрдЯрдо рдЕрд▓рд░реНрдЯ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, HostGrowingDiskReadLatency (рд╕рд╕реНрддрд╛ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдЕрдкрдардиреАрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)

рдирд┐рдЧрд░рд╛рдиреА рд╕реЗрдЯрдЕрдк рдЙрджрд╛рд╣рд░рдг:

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

рдХрд╛рд░реНрдп: 2 рдкреНрд░рджрд╛рддрд╛, 2 рдмреАрдкреАрдЖрдИ, рдПрдиреАрдХрд╛рд╕реНрдЯ рдлреЗрд▓рдУрд╡рд░

рд╕рдм рдХреБрдЫ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рджреЛ рдкреНрд░рджрд╛рддрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рддрд╛рдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛рдо рдХрд░рддрд╛ рд░рд╣реЗ, рднрд▓реЗ рд╣реА рдПрдХ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реЛ, рдпрд╛ рд╡реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдЖрджрд┐ рдФрд░ рдЕрдиреНрдп рдорд╛рдирд╡реАрдп рдХрд╛рд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рднреВрд▓ рдЧрдП рд╣реЛрдВред

рдорд▓реНрдЯреА-рд╡рд╛рди рд╡рд┐рд╖рдп рдкрд░ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╣рд╛рдВ Openwrt рдХреЗ рдЕрдВрддрд░реНрдЧрдд Mwan3 рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдПред рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд╕рдореГрджреНрдз рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдорд▓реНрдЯреА-рд╡рд╛рди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдХрд╛рдлреА рдкрд░реЗрд╢рд╛рдиреА рднрд░рд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг: рдпрджрд┐ рдЖрдк рдПрдХ рд╕рд╛рде рджреЛ рдЖрдИрдкреА рдкрддреЗ рд╕реЗ рдХреБрдЫ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдПрдЧрд╛, рд╡реЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдВрдЧреЗ => "рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред"

рдЗрд╕ рдЕрдиреБрднрд╡ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдорд▓реНрдЯреАрд╣реЛрдорд┐рдВрдЧ рдЕрднреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдлреЗрд▓рдУрд╡рд░ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рдПрдХ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ:

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

рдЗрд╕рд▓рд┐рдП, рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдПрдХ рднреА рдмрд┐рдВрджреБ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо 2 рдмреАрдкреАрдЖрдИ рд▓реЗрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдПрдХ рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдмрд░реНрдб/рдУрдПрд╕рдкреАрдПрдл рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЧрддрд┐рд╢реАрд▓ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдз рдмрдирд╛рддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдмрд╛рдж, рдпрджрд┐ рд╕реЗрд╡рд╛ рдЙрдкрд▓рдмреНрдз рд╣реИ (рдЗрдВрдЯрд░рдиреЗрдЯ, рдбреАрдПрдирдПрд╕) рддреЛ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рд╕рдорд╛рди рдЖрдИрдкреА рдкрддреЗ рдХрд╛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд░рддреЗ рд╣реИрдВред рдпрд╛рдиреА рдбрд┐рдлреЙрд▓реНрдЯ рд░реВрдЯ рд╣рдо рдЦреБрдж рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдмрд░реНрдб рдХреЗ рдЬрд░рд┐рдП рддрдп рдХрд░реЗрдВрдЧреЗред рдореИрдВрдиреЗ рд╕рдорд╛рдзрд╛рди рджреЗрдЦрд╛ рдпрд╣рд╛рдВ .

рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ, рдХрдкрдЯреА рдХреЛрд░реЛрдиреЛрд╡рд╛рдпрд░рд╕ рдиреЗ рдпрд╣рд╛рдВ рдПрдХ рдЪрд╛рд▓ рдЦреЗрд▓реА рд╣реИ (рд╕рдм рдХреБрдЫ Aliexpress рд╕реЗ рдирд╣реАрдВ рдЖрдпрд╛; рдПрдХ рдЕрдиреНрдп рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░, Layta рдиреЗ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдбрд┐рд▓реАрд╡рд░реА рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИ; рджреВрд╕рд░реЗ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдкрд╛рд╕ рд╕рдордп рдирд╣реАрдВ рдерд╛) рд╕рдВрдЧрд░реЛрдз рд╕реЗ рдкрд╣рд▓реЗ рдХреЗрдмрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдХреЗрдмрд▓ рдХреЗ рд▓рд┐рдП рджреАрд╡рд╛рд░ рдореЗрдВ рдбреНрд░рд┐рд▓ рдореЗрдВ рдПрдХ рдЫреЗрдж рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ)ред

R64 рдХреИрд╕реЗ рдСрд░реНрдбрд░ рдХрд░реЗрдВ

рдмреЛрд░реНрдб рд╕реНрд╡рдпрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрдЯреЛрд░ рдореЗрдВ рд╣реИ рдЪреАрдиVoip.
рддреБрд░рдВрдд рдСрд░реНрдбрд░ рдХрд░рдирд╛ рднреА рдмреЗрд╣рддрд░ рд╣реИ:

  • рдкреЛрд╖рдг + рдИрдпреВ рдпрд╛ рдпреВрдПрд╕ рдкреНрд▓рдЧ рдорд╛рдирдХ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ
  • рд╣реАрдЯ рд╕рд┐рдВрдХ: рд░реЗрдбрд┐рдПрдЯрд░/рдкрдВрдЦреЗ; рдХреНрдпреЛрдВрдХрд┐ рд╕реАрдкреАрдпреВ рдФрд░ рд╕реНрд╡рд┐рдЪ рдЪрд┐рдк рджреЛрдиреЛрдВ рдЧрд░реНрдо рд╣реЛ рд░рд╣реЗ рд╣реИрдВ
  • рд╡рд╛рдИрдлрд╝рд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдВрдЯреАрдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдпреЗ

рдПрдХ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИ - рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрдЯреЛрд░ рдореЗрдВ рдбрд┐рд▓реАрд╡рд░реА рдХреА рдХреАрдордд рдЕрдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдИ рд╣реИред рдкреНрд░рдмрдВрдзрдХ рдЬреВрдбреА рд╣реБрдЖрдВрдЧ рдиреЗ рдореБрдЭреЗ рдЖрд╢реНрд╡рд╕реНрдд рдХрд┐рдпрд╛ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдк $5 рдХреЗ рд▓рд┐рдП рдИрдкреИрдХреЗрдЯ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд░реВрд╕ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ $33 рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рдИрдПрдордПрд╕ рд╣реИред рдЕрдкреНрд░рд┐рдп, рд▓реЗрдХрд┐рди рдЖрд▓реЛрдЪрдирд╛рддреНрдордХ рдирд╣реАрдВ. рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рджреЗрд╢ рдЪреБрдирддреЗ рд╣реИрдВ (рдореИрдВ рд╕рднреА рдорд╣рд╛рджреНрд╡реАрдкреЛрдВ рдореЗрдВ рдЧрдпрд╛), рддреЛ рдбрд┐рд▓реАрд╡рд░реА рдХреА рд▓рд╛рдЧрдд ~$5 рд╣реЛрдЧреАред рд░рд╕реЛрдлреЛрдмреНрд╕?.. рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдлреНрд░рд╛рдВрд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рд▓реАрд╡рд░реА рдХреАрдордд рднреА ~30$ рд╣реИ, рдФрд░ рдореИрдВ рд╢рд╛рдВрдд рд╣реЛ рдЧрдпрд╛ред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬреВрдбреА рдиреЗ рдСрд░реНрдбрд░ рджреЗрдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХреА, рд▓реЗрдХрд┐рди рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ (рд╕рдВрдХреЗрдд: рдХрд╛рд░реНрдб рдкрд░ рдХрдо рдбрд╛рд▓реЗрдВ рддрд╛рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рднреБрдЧрддрд╛рди рди рд╣реЛ); рдЙрд╕реЗ рд▓рд┐рдЦреЗрдВ рдФрд░ рд╡рд╣ рдбрд┐рд▓реАрд╡рд░реА рдореВрд▓реНрдп рдХреЛ рдШрдЯрд╛рдХрд░ рд╕рд╛рдорд╛рдиреНрдп рдХрд░ рджреЗрдЧреАред рд╕рдлрд▓рддрд╛ред

рдореБрджреНрджреЗ

рдЕрднреА рднреА рд╕рдм рдХреБрдЫ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ.

рдирд┐рд╖реНрдкрд╛рджрди

Ansible=рдкрд╛рдпрдерди рдХрдорд╛рдВрдб рдХреЛ 20-30 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдзреАрд░реЗ-рдзреАрд░реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрдорд╛рдВрдб рдХреЛ рднреА; x86 рд▓реИрдкрдЯреЙрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдкрд░рд┐рдорд╛рдг рдХрд╛ рдХреНрд░рдоред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд╣рд▓реЗ рддреЛ рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, ~3 рд╕реЗрдХрдВрдб, рдлрд┐рд░ рд╡реЗ рддреЗрдЬреА рд╕реЗ рдзреАрдореЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рд╕реАрдкреАрдпреВ рдХреЗ рдЧрд░реНрдо рд╣реЛрдиреЗ (рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ) рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЧреЛ рдХреЛрдб рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рднреА рдХрд╛рдлреА рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ:

# ╨╖╨░╨┐╤А╨╛╤Б ╨╝╨╡╤В╤А╨╕╨║ ╨┤╨╗╤П ╨┐╤А╨╛╨╝╨╡╤В╨╡╤П ╨╕╨╖ 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

рд╡рд╛рдИрдлрд╝рд╛рдИ

рд╡рд╛рдИрдлрд╝рд╛рдИ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрд░реНрдордмрд┐рдпрди рдкрд░ рдпрд╣ рд▓рдЧрднрдЧ рдПрдХ рджрд┐рди рдХреЗ рдмрд╛рдж рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

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 рд╕реЗ рдкреИрдХреЗрдЯ (рдбреАрдПрдЪрд╕реАрдкреА) рдЖрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рдорджрдж рдорд┐рд▓рддреА рд╣реИ:

ifdown br0; sleep 30; ifup br0

рдбреНрд░рд╛рдЗрд╡рд░ рдирдпрд╛ рд╣реИ, рдЗрд╕реЗ рдЕрднреА рддрдХ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЪреАрдиреА рд▓реИрдВрдбреЗрди рдЪрд╛рдУ рд╣реИ рдЗрд╕реЗ рдЦрд╝рддреНрдо рдХрд░рддрд╛ рд╣реИ.

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ