ื-Banana Pi 64 ืืื ืืืฉื ืืขื ืืื ืืืื ืืืืื ื-Raspberry Pi, ืื ืขื ืืกืคืจ ืืฆืืืืช Ethernet, ืื ืฉืืืคืฉืจ ืืืคืื ืืืชื ืื ืชื ืืืืืกืก ืขื ืืคืฆืช ืืื ืืงืก ืืฉืืืืฉ ืืืื.
ืื, ืืฉ ืืืจ Openwrt, ืืื ืืฉ ืื ืืขืืืช ืืฉืื, GUI ื-CLI ืฉืื; ืืฉ Mikrotik, ืืื ืฉืื ืืฉ ืื GUI/CLI ืืฉืื, ื-Wireguard ืื ืขืืื ืืืงืืคืกื... ืืืืคื ืืืื, ืื ื ืจืืฆื ื ืชื ืขื ืืืืจืืช ืืืืฉืืช, ืชืื ืืืฉืืจืืช ืืืกืืจืช ืฉื ืืื ืืงืก ืจืืืื, ืฉืื ืืชื ืขืืื ืขื ืื ืืื.
ืืืืืจ ืชืืช ืืฉืืืช BPI, R64, single-board, ืื ื ืืชืืืื ืืืืชื ืืืจ - ื-Banana Pi R64 single-board ืขืฆืื.
ืืืืจืช ืชืืื ื. ืืืจื ืืจื eMMC
ืืืืืื ืืช ืืจืืฉืื ื ืฉืืชื ืฆืจืื ืืจืืืฉ ืืฉืขืืืืื ืืืชื
ืืืืืจืืชื ืืืืืืจ ื-R64 ืืืืฆืขืืช USB-UART:
- ืื ื ืจืฆืื ืืื ืืช ืืืงื ืืจืืื ืขืืืจ ืืื 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
ืื ื ืืื ืืกืื ืืช ืืืจืืืก ืืืจืืฅ SD R64, ืืคืขืืืื ืืืชื ืืฆืืคืื ืืืขืื ืช ืืงืื ืกืืื ืืืืืืจืช ืชืืืื ื-uboot, ืืืืืจ ืืื ืืืขืื ืช ืืื ืืงืก ืจืืืื.
ืืคืฉืจืืช ืืชืืื ืืืืคืืช ืืื ืฉืืืืฉ ืืืจืืืก 64Gb ืฉืืืจ ืืืื ื ื-R8, ืื ืงืจื 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, ืืืืื Wireguard. ืืื ืืชืืื ืฉืืฆื ืืืจืขืื ืืื ืื ืืืจืื ืืื ืืื ืืืชืจืืช. ืื ืืชื ืืืืฉ ืืช ืืืืื, ืืืืจืืื ืขื x86, ืืจืืืชื ืืช ืืืืื ืืืืื ืืืืฆืขืืช DKMS. ืขื ืืืช, ืืืืืจืืช ืฉื ืื ืืืช ืืคืืื ืืื ืขืืจ ืงืื ืื ืขื arm64 ืืคืชืืขื ืืืชื ืืฆืืจื ืื ื ืขืืื. ืืื ื ืืจืฉ ืืืืื ืงืจื ื ื ืืกืฃ ืืื'. ืืืืคื ืืืื, ืืกืชืืจ ืฉืื ืื ืฉืงืฉืืจ ืืงืจื ื ืขืืืฃ ืืืจืืื ืขื ืืืฉื ื ืืื x86 ืื, ืืืืืจ ืืื ืืืขืืืจ ื-R64 ืขื ืืื ืืขืชืงื ืคืฉืืื, ืืคืขืื ืืืืฉ ืืืืืงื.
ืืืจ ื ืืกืฃ ืืื ืืืืง ืฉื ืืจืื ืืืฉืชืืฉ. ืืืงืจื ืฉืื ืฉื ืืืืืจื ืืืืืื, ืืื ืขืืืจ ืืจืืืืงืืืจืช arm64 ืืืจ ื ืืฆื ื-packages.debian.org ืืืื ืฆืืจื ืืื ืืช ืฉืื ืืืจ ืืืืฉ.
ืืื ืื ืืืืฆืจ ืขืื ืืืคื ืืื, ืื ื
ืื ืืืชืจ ืืืืง, ืื: ืืืืง ืฉื ืืจืื ืืืฉืชืืฉ ืืื Armbian, ืืืงืจื ื ื ืืงื ืืืืืืจ
ืื ืืคืขืืืืช ืืคืืชืื ืืืง ืืชืืื ื ืฉื R64 ืืชืืฆืขืช ืขื
ืืจืืื ืกืืืืช ืืขืืืื: ืืืืื
ืื ืคืจื, ืืจืฆืื ื ืืกืคืจ ืืื ืืืฆื ืืืืื ืคืืชืื/ืืืืงื ืื ืืืื SBC (ืื ืจืง BPI) ืขื ืฉืืืื ืืื ืื ืืืคืขืื ืืืื ืืื Ethernet ืืืงืืจ ืืื ืืจื ื ืขื ืคื ื ืื ืืืืจ/ืืฉืจื. ืืขืืืื ืืื ืฉืืฆื ืืื ืืชื ืฆืจืื ืืกืคืง ืืช ืคืืกืช ืืืืืจื ืขื ืืื ืืจื ื, ืืื ืืฆื ืฉื ื, ืื ืืืจ ืืจืืื ืืืืืจื ืืื ืืืื ืืืชืงืืงื, ืืงืืื ืื Wifi.
ืจืืฉืืช, ืืืืืชื ืืงื ืืช "ืืฉืจืืงืืช" USB-Wifi ืืืื, ืืืืจ ืืืชื ืืืฆืืื ืืืืืื ื-BPI ืืืฉืืื ืืืืืืื. ืืฉื ืื ืจืืฉืชื TP-LINK TL-WN725N USB 2.0 ืืื, ืืื ืืืจ ืืืื ืืชืืจืจ ืฉืืื ืื ืืืจืื: ืืื ืฉืืืฉืจืืงืืช ืชืขืืื, ืืชื ืฆืจืื ืืจืืืืจ ืืจืขืื, ืฉืืืืื ืื ืืื ืฉื (ืืืืืจ ืืืชืจ ืืจืืืชื ืืช ืืืจืืืืจ ืืืจืืฉ RTL8XXXU, ืืื ืื ืขืืืื ืื ืืขืฉื). ืืืื ื-Ethernet ืงืืงื ืืช ืืจืื ืืืืจ ืืืื ืื.
ืืชืืฆืื ืืื, ืืฆืืืชื ืืืืคืืจ ืืืืื ืืขืืจืช Tenda MW3 (ืืขืจืืช Wifi Mesh): ืคืฉืื ืื ืืชื ืงืืืืื ืืืช ืืชืืช ืืฉืืืื ืืืืืจืชื ืืช ื-BPI ืืืฆืืืช ื-LAN ืฉื ืืืืจืื ืขื ืืื Ethernet ืืืืจื ืืืจ. ืึทืฆืึธืึธื.
Wireguard, RKN, Bird
ืืื ืืืืจืื ืฉืื ื ืจืืฆื ืืืฉืชืืฉ ืขืืืจื ื-Banana PI ืืื ืืงืื ืืืฉื ืืืคืฉืืช ืืืชืจืื ืืกืืืื ืขื ืืื RKN, ืืคืจื, ืืื ืฉืฉืืืืช ืืืืจื ื-Slack ืืืืื ืืขืืื. ืืืืจืื ืขื Habrรฉ ืืืจ ืืืฆืขื ืื ืืฉื ืื:
ืคืจืกืชื ืืืืืง ืืช ืืคืชืจืื ืืื ืืืืฆืขืืช Ansible:
ืืื ืื ืืื ืฉื-VPS ืืจืืฅ ืืช ืืืืื ืื 18.04. ืืืงืชื ืืช ืืคืื ืงืฆืืื ืืืืช ืืฉื ื ืืืจืืื ืืืืจืืคื: ืืืืื ื-Digital Ocean.
ืื, ืืชืงื ื ืืช Armbian ืืขืื ืขื 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
ืืืืจ ืืื, ืขืืื ืืคืจืืก ืืช ื-VPN ืฉืื ื ื-VPS ืืืืชื ืืืคื:
ansible-playbook ./router.py -l current-vpn
ืืื ืืืจืืืื ื ืืื ืชืืื 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
ืื ืื, ืืคื ื ืื ืืคืขืืืืช ืืืื ืืชื ืฆืจืื ืืืฆืืจ ืกืืืืช (ืืคืจื ืืคืชืืืช Wireguard) ืืชืื ืืชืืงืื ./secrets
, ืืกืคืจืืื ืืืืจื ืืืืจืืืช
ืืืืืืฆืื Ansible ื- Python
ืืืชืื ืฉืชืืืื ืฉืืืงืื ืืืืืช ืืคืืจืื 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")
ืืชืืืช ืคืงืืืืช Ansible ื-Python ืืืคืฉืจืช ืืขืฉืืช ืฉืืืืฉ ืืืืจ ืืงืื, ืืืืืคื ืืืื ืคืืชืืช ืืช ืื ืืืคืฉืจืืืืช ืฉื ืืฉืคื ืืชืืืืชืืช. ืืืืืื, ืืชืงื ืช bird ืขื R64 ื-VPS:
install_bird("router/bird.conf.j2")
install_bird("vpn/bird.conf.j2")
ืจืื ืืช ืงืื ืืคืื ืงืฆืื
ืชืืื ื ืื ื ืงืจืืช pybook
ืืืืืข
ืื ืืื ืืืฉื
ื ืืืืจ. ืคืจืืืชืืืก
ืกื"ื: ืืืืจื ืขืืื, ืื linkedin ื- pornhub, ืืืืคื ืืืื ืืืืืช ืืืฉืชืืฉ ืืกืืจ. ืืื ืืื ืืืื ืืืืฉืืจ, ืืืื ืืืืจื ืกืื ืืช.
ืื ืขืืืื ื ืืืื ืืืืืื ืืืืืช ืืขื ืืื ืื: ืืืืืื, ืจืฆืืชื ืืขืืื ืืช ืืืจืขืื 5.4 => 5.6, ืืืื, Wireguard ื ืืฆื ืฉื ืืืืฅ ืืงืืคืกื, ืืื ืฆืืจื ืืืฆืข ืชืืงืื... ืื ืืืงืื ืืืชืจ ืืืฉืจ ื ืขืฉื: ืืขืืจืชื ืืงืคืืื ืืช ืืชืืงืื ืื ืืืจืกื 5.4 ื-5.6, ืืืืื ืืชืืืื ืืคืขืื, ืืื ืืจื ื-VPS ืคื ืชื, ืืื bird ืื ืืืืื ืืืชืืืจ ืืฉืืืื "BGP Error"... "ืืืจืชื ืืืืื" (ื) ื-5.4; ืืืขืืจ ื-5.6 ื ืืื ื-TODO.
ืืื, ืื ืืกืฃ ืืืชืงื ืช ืื ืชื ืื-VPS, ืืืกืคืชื ื ืืืืจ (ื-x86 Ubuntu 18.04), ืืืืชืงื ืขื ืืืจื ื ืคืจื ืขื ืืจืืืืื ืืืืื:
- prometheus, alertmanager, blackbox_exporter - ืืื ื-docker
- ืืชืจืืืช ื ืฉืืืืช ืืขืจืืฅ ืืืืืจื ืืืืฆืขืืช ืืืื metalmatze/alertmanager-bot - ืื ื-Docker
- tor ืขืืืจ ืืืื, ืื ืฉืืืื ืืืื ืืืชืจืืข ืขื ืืฆืืื ืืืฉืจ ืืฉ ืืื ืืจื ื, ืืื ืืืืจื ืขืืืื ืื ืขืืื, ืืืืื ืขืฆืื ืื ืืืื ืืืชืืืจ
- ืืืื
ืืชืจืืืช : NodeVPNTroubles (ืืื ืคืื ื ื-VPS), BirdVPNTroubles (ืืื ืืคืขืืช Bird), AntifilterDownloadTroubles (ืฉืืืื ืืืขืื ืช ืืชืืืืช IP ืืกืืืืช), SiteTroubles (ืืืืจื ืื ืืืื) - ืืชืจืืืช ืืขืจืืช, ืืืฉื, HostGrowingDiskReadLatency (ืืจืืืก SD ืืื ืืืคื ืืืืชื ืงืจืื)
ืืืืื ืืืืืจืช ื ืืืืจ:
ansible-playbook ./monitoring.py -l monitoring-preprod
ืืืืื ืืืืืืื ืขืืืจ Prometheus ืืืืืจ ืืชืืงืืื /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 failover
ืื ืืกืฃ ืืืื, ืชืื ื ืชื ืืืชืืืจ ืืฉื ื ืกืคืงืื ืืื ืฉืืืื ืืจื ื ืืืฉืื ืืขืืื, ืื ืื ืืกืคืง ืืื ืืฉ ืืขืืืช ืืจืฉืช, ืื ืฉืฉืืื ืืฉืื ืขื ืืืื ืืจื ื ืืื' ืืขืื ืืืจืืื ืื ืืฉืืื.
ืืชืืืจืช ืืืืืช ืืืฉืชืืฉ ืืืชืงืืืช ืืืืชืจ ืื ืืฉื ืจืืืื ืืืื
ืืืชืืฉื ืื ืืกืืื ืืื, ืืืืืชื ืฉ-multihoming ืขืืืื ืื ืืจืืฉ ืกืืจ ืืขืืืคืืืืช, ืืื ืจืง ืืฉื ืืืฉื. ืืื ื, ื ืจืื ืฉืืืจืกืืืช ืืืืจืื ืืช ืฉื ืืื ืืงืก ืืื ืืืืจ ืืขืืื ืขื ืคืงืืื ืืืช ืืื:
ip route add default
nexthop via 192.168.1.1 weight 10
nexthop via 192.168.2.1 weight 5
ืืื, ืขื ืื ืช ืืื ืืข ื ืงืืืช ืืฉื ืืืืืช, ืื ื ืืืงืืื 2 BPIs, ืืืืจืื ืื ืืื ืืกืคืง ืืื, ืืืืจืื ืืืชื ืื ืืื ืืืืฆืจืื ืืช ืืืืืืจ ืืื ืขื ืืฉื ื ืื ืืชืื ืืื ืื ืืืืฆืขืืช bird/OSPF.
ืืืืจ ืืื, ืื ื ืืคืจืกืืื ืืช ืืืชื ืืชืืืช IP ืืื ืืืช ืืื ืื ืืฉืืจืืช ืืืื (ืืื ืืจื ื, DNS). ืืืืืจ, ืื ื ืืืืจ ืืช ืืกืืื ืืจืืจืช ืืืืื ืืขืฆืื ื, ืืื ืืจื bird. ืืืคืฉืชื ืืช ืืคืชืจืื
ืืคืื ืงืฆืืื ืืืืช ืืื ืขืืืื ืื ืืืฉืื, ืืืจืืก ืืงืืจืื ื ืืขืจืืืื ืฉืืืง ืืื (ืื ืืื ืืืืข ืืืืืืงืกืคืจืก; ืื ืืช ืืงืืื ืช ืืืจืช, Layta, ืืืืืื ืืกืคืง ืชืื ืฉืืืข, ืืื ืขืืจ ืืืชืจ ืืืืืฉ; ืืกืคืง ืืฉื ื ืื ืืื ืืื ืืืืจืื ืืช ืืืื ืืคื ื ืืืกืืจ, ืจืง ืืฆืืื ืืืฉืื ืืืจ ืืืงืืื ืืชืื ืืงืืจ ืขืืืจ ืืืื).
ืืืฆื ืืืืืื R64
ืืืื ืขืฆืื ื ืืฆื ืืื ืืช ืืจืฉืืืช
ืขืืืฃ ืื ืืืืืื ืืื:
ืชืืื ื + ืืืืืข ืืช ืชืงื ืืชืงืข ืืืืืื ืืืืจืืคื ืื ืืืจื"ื- ืืืฃ ืงืืจืืจ: ืจืืืืืืจืื/ืืืืืจืจืื; ืื ืื ืืืขืื ืืื ืฉืื ืืืชื ืืชืืืืื
- ืื ืื ืช wifi,
ืืืืืื
ืืฉ ื ืืืื ืก - ืืืืจ ืืืฉืืื ืืคื ืืืื ืืืืื ืืกืคืงืช ืืื ืืช ืืจืฉืืืช ืืืฉื ืืื ืื. ืืื ืืืช ื'ืืื ืืืื ื ืฉืื ืขื ืืืชื ืฉืืื ืฉืืืื, ืืืชื ืืืื ืืืืืจ ePacket ื-$5, ืืื ืจืืืชื ืฉืืจืืกืื ืืฉ ืจืง EMS ื->33$. ืื ื ืขืื, ืืื ืื ืงืจืืื. ืืชืจื ืืื, ืื ืชืืืจ ืืื ืืืื ื ืืืจืช ืืืฉืืื (ืขืืจืชื ืืื ืืืืฉืืช), ืืืฉืืื ืืขืื ~$5. ืจืืกืืคืืืื?.. ืืื ืื ืืืืืชื ืฉืืฆืจืคืช ืืืืจ ืืืฉืืื ืืื ืื ~30$, ืื ืจืืขืชื.
ืืชืืฆืื ืืื, ื'ืืื ืืฆืืขื ืืืฆืข ืืืื ื, ืื ืื ืืฉืื (ืืจืืื: ืฉืื ืคืืืช ืขื ืืืจืืืก ืืื ืฉืืชืฉืืื ืืืืืืืื ืื ืืขืืืจ); ืืชืื ืื ืืืื ืชืืจืื ืืช ืืืืจ ืืืฉืืื ืืฉืืจื. ืึทืฆืึธืึธื.
ื ืืฉืืื
ืขืืืื ืื ืืื ืขืืื ืืฆืืจื ืืืฉืืืช.
ืคืจืืืืงืืืืืืช
Ansible=ืคืงืืืืช Python ืืืืฆืขืืช ืืืืืืืช, ืืคืืื ืืืืืช, ืืืฉื 20-30 ืฉื ืืืช; ืืืชืจ ืืกืืจ ืืืื ืืืฉืจ ืืืืฉื ื ืืื x86. ืืชืจ ืขื ืื, ืืืชืืื ืื ืืืืฆืขืื ืื ืืืจ, ~3 ืฉื ืืืช, ืืื ืื ืืืืื ืืืืืช. ืืืชืื ืฉืืกืืื ืืื ืืื ืืชืืืืืช ืืืขืื (ืืืกื ืช). ืื ืืงืื ื-Go ืืืงื ืืจืื ืืื ืืขืืื:
# ะทะฐะฟัะพั ะผะตััะธะบ ะดะปั ะฟัะพะผะตัะตั ะธะท 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
Wifi ืขืืื, ืืื ืืืจืืืืื ืื ืืคืกืืง ืืืจื ืืื ืืขืจื, ืืืชื:
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
...
ืจืง ืืคืขืื ืืืืฉ ืขืืืจืช. ืื ืื ื ืฆืจืืืื ืืืืฉืื ืืืื
Ethernet
Ethernet ืขืืื, ืืื ืืืืจ ~64 ืฉืขืืช ืื ืืช (DHCP) ื-RXNUMX ืืคืกืืงืืช ืืืืืข.
ืืคืขืื ืืืืฉ ืฉื ืืืืฉืง ืขืืืจืช:
ifdown br0; sleep 30; ifup br0
ืืืจืืืืจ ืืืฉ, ืืื ืขืืืื ืื ืืชืงืื ืืืจืขืื, ืื ื ืืงืืื ืฉืื ืื ืื ืฆ'ืื ืืกืื ืืช
ืืงืืจ: www.habr.com