services:fog
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| services:fog [2017/08/23 19:42] – created djgalloway | services:fog [2024/08/18 20:27] (current) – [Capturing OS images] dmick | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== FOG - WIP ====== | + | ====== FOG ====== |
| ===== Summary ===== | ===== Summary ===== | ||
| - | We're currently testing | + | [[https:// |
| - | The deployment of a FOG server could be mostly automated via ansible. I wrote a playbook to take the ansible inventory and make it into a FOG-consumable CSV but it still has to be manually uploaded via the web UI. | + | Our instance is currently hosted at http://fog.front.sepia.ceph.com/ |
| - | Zack is currently working on a teuthology branch that' | + | **Username:** fog\\ |
| - | + | **Password:** Standard root password | |
| - | Our instance is currently hosted at http:// | + | |
| ===== How-Tos ===== | ===== How-Tos ===== | ||
| - | ==== Capturing | + | ==== Adding a new distro ==== |
| - | Each testnode | + | |
| + | The [[https:// | ||
| + | ==== Capturing OS images | ||
| + | This can be done manually by basically deciphering the bash monster in https:// | ||
| + | |||
| + | - Navigate to https:// | ||
| + | - Choose which machine | ||
| + | - Click **Build** | ||
| + | - ... | ||
| + | - Profit | ||
| + | |||
| + | 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 ==== | ||
| - | To capture an image: | + | jenkins job sepia-fog-images runs on the teuthology host, and |
| - | | + | |
| - | - http:// | + | |
| - | | + | |
| - | - The rest of the defaults are fine | + | |
| - | - Reimage a testnode with the OS image you want to capture | + | |
| - | - Do this using [[: | + | |
| - | - Once the testnode has been reimaged and you've confirmed ceph-cm-ansible ran successfully, update DHCP | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - Edit ''/ | + | |
| - | - Find the entry for the testnode you just reimaged | + | |
| - | next-server 172.21.13.245; | + | |
| - | filename "/ | + | |
| - | # Example: | + | - clones/ |
| - | host mira082 { | + | - clones/ |
| - | | + | - locks a machine of the requested type(s) (or uses hosts passed in as arguments), setting their descriptions to " |
| - | fixed-address 172.21.7.120; | + | - uses / |
| - | next-server 172.21.13.245; | + | - sshes to ubuntu@cobbler.front to set the right cobbler profile for the host and enable netboot |
| - | filename "/undionly.kpxe"; | + | - 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.. |
| - | - Restart dhcpd | + | - ..start polling for the sentinel file /ceph-qa-ready which is created at the very end of the process. (The cobbler install flow is documented below) |
| - | | + | - If there' |
| - | | + | |
| - | | + | |
| - | - Click **UPDATE** | + | |
| - | - On the left sidebar, click **Basic Tasks** | + | - disables network configuration, |
| - | - Click **Capture** | + | - restarts dhcpd |
| - | - Now power cycle the testnode | + | - 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' | ||
| - | The testnode will reboot and PXE boot to the FOG server. | + | ==== 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 | ||
| + | - after rebooting | ||
| + | * 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 | ||
| + | * 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 / | ||
| - | Repeat this process for each distro and machine type you want to capture an image of. Be sure to comment the changes in the DHCP config each time so you can PXE boot and reimage via Cobbler. | ||
services/fog.1503517347.txt.gz · Last modified: by djgalloway
