services:fog
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| services:fog [2020/11/13 22:17] – [Adding a new distro] djgalloway | services:fog [2024/08/18 20:27] (current) – [Capturing OS images] dmick | ||
|---|---|---|---|
| Line 15: | Line 15: | ||
| This can be done manually by basically deciphering the bash monster in https:// | This can be done manually by basically deciphering the bash monster in https:// | ||
| - | - Navigate to https:// | + | - Navigate to https:// |
| - Choose which machine types and distros you want to capture images for | - Choose which machine types and distros you want to capture images for | ||
| - Click **Build** | - Click **Build** | ||
| Line 22: | Line 22: | ||
| If capturing any image fails, the job is configured to cancel the OS capture and will leave the testnodes locked so you can debug/ | If capturing any image fails, the job is configured to cancel the OS capture and will leave the testnodes locked so you can debug/ | ||
| + | |||
| + | ==== Image capture control flow ==== | ||
| + | |||
| + | jenkins job sepia-fog-images runs on the teuthology host, and | ||
| + | |||
| + | - clones/ | ||
| + | - clones/ | ||
| + | - locks a machine of the requested type(s) (or uses hosts passed in as arguments), setting their descriptions to " | ||
| + | - uses / | ||
| + | - sshes to ubuntu@cobbler.front to set the right cobbler profile for the host and enable netboot | ||
| + | - powercycles the hosts in question | ||
| + | - while the hosts are rebooting, Uses curl and the FOG api to GET an image id or POST an image template to create the image, and then sets up fog for image capture | ||
| + | - sleeps for 10s to allow the hosts to become inaccessible so it can.. | ||
| + | - ..start polling for the sentinel file / | ||
| + | - If there' | ||
| + | * / | ||
| + | * / | ||
| + | * / | ||
| + | - disables network configuration, | ||
| + | - restarts dhcpd | ||
| + | - waits for any in-progress fog images to complete, pauses the teuthology queue if there are any | ||
| + | - powercycles the targets to boot into FOG and capture, and waits for FOG task completion | ||
| + | - teuthology-lock --unlock' | ||
| + | |||
| + | ==== Cobbler install flow for reimaging process ==== | ||
| + | - do a normal preseed/ | ||
| + | * a smallish set of packages to install | ||
| + | * grub serial console setup | ||
| + | * install an / | ||
| + | * install with ext4 on the appropriate drive, without swap | ||
| + | * set up subscription manager | ||
| + | * add the cm user with the admin_users' | ||
| + | * turn off cobbler PXE boot | ||
| + | - after rebooting to the fresh install, / | ||
| + | * search the nics for any active interfaces, and set them up for DHCP; if they receive no DHCP address, unconfigure them, assumption being they' | ||
| + | * touch / | ||
| + | * try to get a hostname from reverse DNS and configure it | ||
| + | * generate SSH host keys | ||
| + | * ping the cobbler host to make sure it's reachable | ||
| + | * curl the cblr/ | ||
| + | - cephlab_ansible.sh will (running on the cobbler host): | ||
| + | * use scl on Centos 7 to get python 3.8 | ||
| + | * clone/ | ||
| + | * look for port 22 to be open; there is apparently a way this trigger might run before the install is done, and if so, 22 won't be available; when it's run from the / | ||
| + | * create a / | ||
| + | * for CentOS 8 Stream, run tools/ | ||
| + | * if the Cobbler profile is named ' | ||
| + | * run ansible cephlab.yml, | ||
| + | - cephlab.yml runs | ||
| + | * teuthology.yml for teuthology | ||
| + | * testnodes.yml for testnodes | ||
| + | * container-host.yml for docker/ | ||
| + | * cobbler.yml for cobbler hosts | ||
| + | * same with paddles and pulpito | ||
| + | * finally, for testnodes, touches the / | ||
services/fog.1605305835.txt.gz · Last modified: by djgalloway
