🍣
FRRouting を cloud-init で構成する
Azure Route Server (ARS) との peer まで
自動化できてしまったのでこちらの方がいいかもしれない。
cloud-init
で構成する
FRRouting を FRRouting の install を cloud-init
でできるだけ省力化しようということです。
Bicep ファイルとしては、NVA にするため NIC の設定として enableIPForwarding
を true
にします。
cloud-init
では以下の作業が行われます。
-
write_files
module で、投入する予定の config を一度/tmp/frr.conf
に書き出しておきます -
run_cmd
module で、OS のnet.ipv4.ip_forward
を有効化します -
run_cmd
module で FRRouting を install した後、/etc/frr/daemons
を書換え、cp /tmp/frr.conf /etc/frr/frr.conf
によって投入する予定の config を正しい位置に配置し、systemctl restart frr
して変更を反映させます
#cloud-config
packages_update: true
packages_upgrade: true
write_files:
- path: /tmp/frr.conf
content: |
frr version 8.3.1
frr defaults traditional
hostname vm-hub00
log syslog informational
no ipv6 forwarding
service integrated-vtysh-config
!
ip route 10.0.210.0/24 10.0.0.1
!
runcmd:
- sed -i.org 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
- sysctl -p
- curl -s https://deb.frrouting.org/frr/keys.asc | apt-key add -
- FRRVER="frr-stable"
- echo deb https://deb.frrouting.org/frr $(lsb_release -s -c) $FRRVER | tee -a /etc/apt/sources.list.d/frr.list
- apt update && apt -y install frr frr-pythontools
- sed -i.org 's/bgpd=no/bgpd=yes/' /etc/frr/daemons
- cp /tmp/frr.conf /etc/frr/frr.conf
- systemctl restart frr
参考実装はこちらです。
Discussion