46 Commits (4d60495551539a3ffb56e9d3166aed45311fe229)
 

Author SHA1 Message Date
LEdoian 4d60495551 The diagram is not SIS friendly 1 year ago
LEdoian 31bea73092 Update readme, so this is shippable. 1 year ago
LEdoian 2d6f6301c5 Use area 1 in the swarm
Makes it more contained and more demonstrative (if that is a word…)
1 year ago
LEdoian 91003202ba Do not care for fails
This allows shutting down the swarm even when some routers are already
down.
1 year ago
LEdoian ea113dd7c9 postinst: Add iproute and set up DNS
Without these the VMs are almost unusable.
1 year ago
LEdoian 0396099bcd Add support for IPv6
The 40 bits in the ULA global prefix fdce:73a4:0b00::/48 were generated
by Python's `random.randint(0,2**40-1)` call
1 year ago
LEdoian 5a446aa6ef ./manage_all.sh: add force-stop 2 years ago
LEdoian 8ec4b45032 Add note about connecting the herd 2 years ago
LEdoian 4ca757463c Add an SSH key
Using my own keys is unpractical when changing machines.
2 years ago
LEdoian b02a04ccbf Enable forwarding in all the routers 2 years ago
LEdoian efb04bdf6c Run virt-viewers in parallel 2 years ago
LEdoian a43d766b89 Chmod! 2 years ago
LEdoian 32c4e15e3d Add a simple script to manage all the machines 2 years ago
LEdoian 098d24b61d Do not set root pw, do not hack mdev
Neither is required, root can have no password and the nameif hack does
not work anyway.
2 years ago
LEdoian ca51082938 Name interfaces using mactab 2 years ago
LEdoian afa4ed311b Add re-createable disk images to .gitignore 2 years ago
LEdoian 0a5c5e9d54 Fix partition table mismatch
gen_disks expects swap to be present, yet we disabled it in
alpine_install.
2 years ago
LEdoian 53ae47b2c7 Install bird 2 years ago
LEdoian 00f6cdba39 Add initial version of postinst script 2 years ago
LEdoian f6c0896a6a Improve installation instructions in alpine_install 2 years ago
LEdoian 07532289df Mention gen_dummy in README 2 years ago
LEdoian a8e0e0a805 Add initial version of disk generation scripts 2 years ago
LEdoian ccc82015c8 Add KVM and more RAM to the VM
Else it does not run
2 years ago
LEdoian 11c5674b20 Fix bridge templates
The context variable `bridges` is a dictionary, not a list.
2 years ago
LEdoian 48a6ece522 Remove debug prints 2 years ago
LEdoian b90663e316 Fix gen_bridge_files relying on global state 2 years ago
LEdoian 4d13f121ff Fix indentation
Copy-paste error :-)
2 years ago
LEdoian 82ab835dfe Mention output/gen_bridges.sh in README 2 years ago
LEdoian c0f270e9e8 Refactor bridge files into templates
This allows better extensibility, as well as provides more uniform way
of config file generation.
2 years ago
LEdoian 3262f37229 Add a simple README with instructions 2 years ago
LEdoian 66eda014c3 Rename baz.py to a sensible name 2 years ago
LEdoian 28bb470019 Fix ownership of generated disk images 2 years ago
LEdoian ac5850d95e Add gen_disks.sh script to modify virtual drives
We expect the repo root to contain pre-installed Alpine 3.15.4 in raw
drive file 'dummydisk.img'. This then gets copied to
output/<machine>/disk.img and the generated files are put into it in
order to be used.

Beware, this uses hardcoded paths and expects specific disk layout.
This relies on how the installation formatted the disk. While the
installation procedure is not documented anywhere, it is in essence
default setup of Alpine Linux, with minimal tweaks that should not
affect behaviour of routing (but still impede reproducibility). The only
major difference from default settings is BIRD being pre-installed.

Unfortunately, using loop devices and mounting requires root privileges
(as far as I know). It should be possible to use some other way, but
this is the simplest I know at the moment.
2 years ago
LEdoian a1a73c8cd5 Generate bridge.conf instead of just list of bridges
QEMU's bridge.conf is now directly usable, yet really easy to both
generate and parse, should that be needed in the future.

This partially breaks layers of abstraction, but the point of the script
is to make setup easy, not to be an example of clean code :-)
2 years ago
LEdoian 26f1299b59 Generate also hosts and hostname files 2 years ago
LEdoian 2fe2640e9e Fix alignment of templated files
Jinja directives keep indentation. Therefore, if tokens like
`{% for … %}` are indented, the indentation accumulates and this creates
confusing indentation in output.
2 years ago
LEdoian f05472259f Fix Jinja stripping newlines at EOF 2 years ago
LEdoian 1247948259 Make qemu.sh executable 3 years ago
LEdoian dc95ade8a0 Fix MAC in qemu script 3 years ago
LEdoian 75bbce24c5 Diag: Mark gateway as machine X 3 years ago
LEdoian c0f9174ab6 Add initial version of template files 3 years ago
LEdoian 82905c2b20 Few fixes of the main script 3 years ago
LEdoian 37d55b8e3b Add note about router ids 3 years ago
LEdoian 314170744e Tweak the generator 3 years ago
LEdoian c926f36c8b Add gitignore 3 years ago
LEdoian c098d3ceb3 Init 3 years ago