password generation utility was still python2
[bootcd.git] / ping-node.md
1 # Purpose
2 Let us try to shorten the devel loop when playing with changes to the bootcd internals.
3 And namely, the set of systemd files that describe booting off the CD image
4
5
6 # Environment
7
8 ## the 'try this out several times' utility
9
10 * The utility sits in `git/tests/system`  
11
12 * you can push it onto a specific build using `make sync` as usual
13
14 * and then run it on the testmaster side like this
15
16   `iterate-ping-node -o run01 <nb_iterations>`
17
18 * This allows to run a given bootcd (the iso computed for one node) several times over, and to gather all logs from qemu
19 * This is **only** restarting the kvm/qemu node several times, nothing is done to recompute the .iso itself (see below for that). So the game is to easily simulate how a change to `bootcd` would affect a node ISO without rebuilding the whole damn thing
20 * When -o is provided, the directory argument is created and all log files are stored in there
21
22 # Easily redo a .iso
23
24 ## preparation
25
26 * select a running test in testmaster/; like e.g. one that has failed the `ping_node` step already
27
28 * you will need one local terminal in `git/bootcd`
29
30 * do the usual routine on running `exp`, exposing variables in this terminal
31
32 * and run `make sync-unwrap` from this workdir `bootcd`
33
34 At that point there will be the following files and subdirs on the KVM host (in my case boxtops)
35
36 * the normal node bootCD iso, like e.g. 
37   * `vnode01.pl.sophia.inria.fr.iso` 
38 * a copy of that file, like e.g. 
39   * `vnode01.pl.sophia.inria.fr.iso.ref` 
40 * a read-only copy of the bootcd image in `bootcd.ref/`
41 * a writable version of this in `bootcd/`
42 * a read-only copy of the overlay image in `overlay.ref/`
43 * a writable version of this in `overlay/`
44
45 ## iteration
46
47 The workflow from then on is you can
48
49 * change the layout/contents of the `bootcd/` directory on the KVM host
50   * either manually right in the KVM host, and/or with
51   * `make sync-push` if you want to rsync the contents of `initscripts/` and ` systemd/` workdirs onto KVM 
52 * and then rewrap the ISO image and hammer on it, and for this you run
53   * `make sync-rewrap` from the `bootcd/` workdir, and then
54   * `iterate-ping-node` from the `tests/` workdir
55
56 Once you're satisfied you can make a difference between bootcd/ and bootcd.ref/ to see how the changes need to be implemented in `build.sh` and/or `prep.sh`