No description
|
|
||
|---|---|---|
| base_data | ||
| data | ||
| files | ||
| lib | ||
| .gitignore | ||
| agent.sh | ||
| README.md | ||
Two
this project is Two with bash on first move
Prepare kvm
apt-get install -y \
vim \
htop \
socat \
ebtables \ # filtre arp
qemu-system qemu-utils qemu-kvm \ # qemu install
genisoimage \ # cloud-init file
curl \
whois \
tcpdump \
bridge-utils # bridge add
Command et info utile
ebtables -L --Lc
socat -,raw,echo=0 unix-connect:/tmp/vm-monitor.sock
root@lab1:~/vm# cat /etc/systemd/system/dnsmasq@.service
[Unit]
Description=dnsmasq in netns %i
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/run-dnsmasq-in-netns.sh %i
ExecStopPost=/bin/rm -f /run/dnsmasq-%i.pid
[Install]
WantedBy=multi-user.target
#!/bin/bash
set -e
# Expects one argument: netns_bridge (e.g. vpc-00003_br-00002 or vpc1_br0)
arg="$1"
NETNS="${arg%%_*}"
BRIDGE="${arg#*_}"
echo "start ${NETNS} ${BRIDGE}"
exec ip netns exec "$NETNS" \
dnsmasq \
--no-daemon \
--interface="$BRIDGE" \
--bind-interfaces \
--pid-file="/run/dnsmasq-$arg.pid" \
--conf-file="/etc/dnsmasq.d/$arg.conf" \
--no-hosts \
--no-resolv \
--log-facility="/var/log/dnsmasq-$arg.log" \
--no-daemon -p0
vm-1-toto:~# cat /etc/cloud/cloud.cfg.d/20_user.cfg
system_info:
default_user:
name: syonad
vm-1-toto:~# cat /etc/cloud/cloud.cfg.d/99_metadata.cfg
datasource_list: [ NoCloud ]
datasource:
NoCloud:
seedfrom: 'http://169.254.169.254:80'
timeout: 5
max_wait: 10
qemu-system-x86_64 -enable-kvm -cpu host -m 512 \
-smp 1 -serial unix:/tmp/i-0343234.sock,server,nowait \
-monitor unix:/tmp/i-0343234.mon-sock,server,nowait \
-qmp unix:/tmp/i-0343234.qmp-sock,server,nowait \
-drive file=/disk/vm-1.qcow2,if=virtio \
-netdev tap,id=net0,ifname=tap6327775173,script=no,downscript=no -device virtio-net-pci,netdev=net0,mac=00:22:33:00:00:0A \
-display none -daemonize
qemu-system-x86_64 -enable-kvm -cpu host -m 512 \
-smp 1 -serial unix:/tmp/i-0343234.sock,server,nowait \
-monitor unix:/tmp/i-0343234.mon-sock,server,nowait \
-qmp unix:/tmp/i-0343234.qmp-sock,server,nowait \
-drive file=/disk/vm-2.qcow2,if=virtio \
-drive file=/disk/tmp.qcow2,if=virtio \
-drive file=/disk/root.qcow2,if=virtio \
-netdev tap,id=net0,ifname=tap9102959250,script=no,downscript=no -device virtio-net-pci,netdev=net0,mac=00:22:33:00:00:0A \
-display none -daemonize \
-drive file=./seed/seed.iso,media=cdrom,if=ide
add public ip:
brctl addbr br-public
brctl stp "br-public" off
ip link add "veth-public-ext" type veth peer name "veth-public-int" netns "vpc-00003"
ip netns exec "vpc-00003" brctl addbr "br-public"
ip netns exec "vpc-00003" brctl stp "br-public" off
brctl addif "br-public" "veth-public-ext"
ip netns exec "vpc-00003" brctl addif "br-public" "veth-public-int"
ip link set up dev "veth-public-ext"
ip link set up dev "br-public"
ip -n "vpc-00003" link set up dev "veth-public-int"
ip -n "vpc-00003" link set up dev "br-public"
ip link add link eno1 name macvlan0 type macvlan mode bridge
-A PREROUTING -d 192.168.15.2/32 -j DNAT --to-destination 192.168.20.10
-A POSTROUTING -s 192.168.20.10/32 -o br-public -j MASQUERADE