Compare commits
2 Commits
a1870e78ba
...
51a8de4299
Author | SHA1 | Date |
---|---|---|
Gregor Michels | 51a8de4299 | |
Gregor Michels | 1ea236b206 |
|
@ -68,3 +68,70 @@
|
|||
service:
|
||||
name: frr
|
||||
state: restarted
|
||||
|
||||
- name: custom changes for ffl-ans-gw-core01 (offloader vm, ...)
|
||||
hosts: ffl-ans-gw-core01
|
||||
tasks:
|
||||
- name: install qemu packages
|
||||
opkg:
|
||||
name:
|
||||
- kmod-tun
|
||||
- qemu-x86_64-softmmu
|
||||
- kmod-kvm-intel
|
||||
update_cache: yes
|
||||
|
||||
- name: provision /usr/lib
|
||||
template:
|
||||
src: "{{ item }}"
|
||||
dest: /usr/lib
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
with_fileglob:
|
||||
- "templates/gateways/{{ inventory_hostname }}/usr/lib/*"
|
||||
|
||||
- name: provision /etc/init.d
|
||||
template:
|
||||
src: "{{ item }}"
|
||||
dest: /etc/init.d/
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
with_fileglob:
|
||||
- "templates/gateways/{{ inventory_hostname }}/etc/init.d/*"
|
||||
|
||||
- name: preserve custom changes on config backups
|
||||
blockinfile:
|
||||
path: /etc/sysupgrade.conf
|
||||
marker_begin: "BEGIN OFFLOADER"
|
||||
marker_end: "END OFFLOADER"
|
||||
block: |
|
||||
/etc/init.d/qemu-offloader
|
||||
/usr/lib/offloader_vm_net_up
|
||||
|
||||
- name: enable offloader vm service
|
||||
service:
|
||||
name: qemu-offloader
|
||||
state: started
|
||||
enabled: True
|
||||
|
||||
- name: add notes about custom offloader in banner
|
||||
copy:
|
||||
dest: /etc/profile.d/01_offloader_banner.sh
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
content: |
|
||||
cat << EOB
|
||||
DISCLAIMER:
|
||||
===========
|
||||
There is a FFL/FFDD offloader running on this machine
|
||||
via qemu.
|
||||
|
||||
service qemu-offloader status
|
||||
|
||||
to be cleaned up:
|
||||
- let procd gracefully kill the vm on stop/shutdown
|
||||
- remove network hook /usr/lib/offloader_vm_net_up
|
||||
-----------------------------------------------------
|
||||
EOB
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2013-2017 OpenWrt.org
|
||||
|
||||
START=99
|
||||
USE_PROCD=1
|
||||
|
||||
start_service() {
|
||||
|
||||
procd_open_instance
|
||||
|
||||
procd_set_param command qemu-system-x86_64
|
||||
procd_append_param command -enable-kvm
|
||||
procd_append_param command -cpu host
|
||||
procd_append_param command -smp 2
|
||||
procd_append_param command -m 1G
|
||||
procd_append_param command -machine type=q35,accel=kvm
|
||||
procd_append_param command -drive file=/dev/sdb,cache=none,if=virtio,format=raw
|
||||
procd_append_param command -nic tap,model=virtio-net-pci,script=/usr/lib/offloader_vm_net_up,downscript=no,ifname=tap0
|
||||
procd_append_param command -nic tap,model=virtio-net-pci,script=/usr/lib/offloader_vm_net_up,downscript=no,ifname=tap1
|
||||
procd_append_param command -pidfile /var/run/qemu-offloader.pid
|
||||
procd_append_param command -chardev socket,path=/tmp/qga.qemu-offloader.sock,server=on,wait=off,id=qga0
|
||||
procd_append_param command -device virtio-serial
|
||||
procd_append_param command -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0
|
||||
|
||||
procd_set_param stdout 1
|
||||
procd_set_param stderr 1
|
||||
procd_set_param respawn
|
||||
|
||||
procd_close_instance
|
||||
}
|
||||
|
||||
#stop_service() {
|
||||
# [ ! -e /tmp/qga.sock ] && exit 0
|
||||
# echo "sending shutdown command via guest agent"
|
||||
# socat stdio unix-connect:/tmp/qga.sock << EOF
|
||||
#{"execute":"guest-shutdown"}
|
||||
#EOF
|
||||
#}
|
||||
#
|
||||
#service_stopped() {
|
||||
# for i in $(seq 1 20)
|
||||
# do
|
||||
# if [ ! -e /var/run/qemu-alpine.pid ]; then
|
||||
# echo "vm down !"
|
||||
# exit 0
|
||||
# fi
|
||||
# echo "vm not down yet"
|
||||
# sleep 1
|
||||
# done
|
||||
#}
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# tap0 -> clients (vlan: 2)
|
||||
# tap1 -> wan (vlan: 3)
|
||||
|
||||
VLAN=2
|
||||
BRIDGE=switch
|
||||
|
||||
ifname=$1
|
||||
|
||||
[ $ifname = "tap1" ] && VLAN=3
|
||||
|
||||
# associate tap interface with bridge
|
||||
ip link set dev $ifname up
|
||||
ip link set dev $ifname master $BRIDGE
|
||||
|
||||
# delete standard vlan
|
||||
bridge vlan del dev $ifname vid 1
|
||||
|
||||
# correctly tag interface
|
||||
bridge vlan add dev $ifname vid $VLAN pvid untagged
|
Reference in New Issue