This is an old revision of the document!
Table of Contents
Cobbler
Summary
Cobbler is used to reimage testnodes in the lab. The Cobbler host is cobbler.front.sepia.ceph.com and is managed by Ansible. It's a VM in RHEV.
Access the Web UI at https://cobbler.front.sepia.ceph.com/cobbler_web/
Reimaging/Reinstalling a host
See testnodereimage
Creating a new user for Web UI access
- In the
ceph-cm-ansiblerepo, there is atools/cobbler-access.shscript. Run it. - Create a new branch named
wip-usernamein theceph-sepia-secretsrepo - Paste the output under
------ String for cobbler.yml ------into a new line inansible/inventory/group_vars/cobbler.ymlunderusers_digest_lines - git commit, git push the branch, and create a Pull Request
ansible-playbook cobbler.yml --tags="settings"
# Example $ ~/git/ceph/ceph-cm-ansible/tools/cobbler-access.sh Enter username: bob ------ String for cobbler.yml ------ bob:Cobbler:07a95ca759fd46e9416de672a5e2bb60 # Add the user to the cobbler.yml secrets group_vars file dgalloway@w541 ceph-sepia-secrets (wip-bob)$ git diff diff --git a/ansible/inventory/group_vars/cobbler.yml b/ansible/inventory/group_vars/cobbler.yml index 758427a..6968689 100644 --- a/ansible/inventory/group_vars/cobbler.yml +++ b/ansible/inventory/group_vars/cobbler.yml @@ -15,6 +15,7 @@ users_digest_lines: - "yuriw:Cobbler:XXXXX" - "vasu:Cobbler:XXXXX" - "dmick:Cobbler:XXXXX" + - "bob:Cobbler:027abc2039e7495f72128d9c3c628686"
Adding a new Distro
- Create an entry for the new distro in ceph-cm-ansible's root
cobbler.yml - Create the profile
- If the distro's ISO is not publicly accessible (e.g., RHEL/inktank-rescue),
- Add a dummy entry (Distro name and blank iso var) to
roles/cobbler_profile/defaults/main.yml - Add to
ansible/inventory/group_vars/cobbler.ymlin the secrets repo
- Else if the distro's ISO is public (e.g., CentOS/Ubuntu), just add the iso path, sha256, etc. to
roles/cobbler_profile/defaults/main.yml
- Run
ansible-playbook cobbler.yml --tags="$NEW_PROFILE_TAG"where $NEW_PROFILE_TAG is the tag created in Step 1 - In cobbler web UI, go to Profiles
- Click Create New Sub-profile
- Name it
$NEW_DISTRO_NAME-stock - Set Parent Profile to
$NEW_DISTRO_NAME - Save
Error adding brand new distro
Cobbler keeps a list of supported distros in /var/lib/cobbler/distro_signatures.json so it knows what defaults to apply to a distro/profile.
If a distro is brand-spankin' new, you may get an error like “No signature matched in /var/www/cobbler/ks_mirror/Ubuntu-17.10-server-x86_64”.
First try running cobbler signature update. If it still doesn't show up in cobbler signature report, you'll have to manually add an entry in the JSON.
- Edit
/var/lib/cobbler/distro_signatures.json service cobblerd restart
Re-importing a Distro
This would typically be done if a newer ISO (minor revision) of an OS is released. For example: if you wanted to import Ubuntu 16.04.3 in place of the original 16.04 image.
- First, you need to make sure no machines in Cobbler are set to use the distro you plan to replace
- ssh to the Cobbler host
- Set the profile for each machine using the distro you wish to replace with something else
# Example: for host in $(cobbler system find --profile Ubuntu-16.04-server-x86_64); do cobbler system edit --name=$host --profile inktank-rescue; done
- You may wish to
catthese hosts to a file so you can set the profile back aftercobbler system find --profile Ubuntu-16.04-server-x86_64 > currently_xenial.dgalloway for host in $(cat currently_xenial.dgalloway); do cobbler system edit --name=$host --profile inktank-rescue; done # Reimport distro for host in $(cat currently_xenial.dgalloway); do cobbler system edit --name=$host --profile Ubuntu-16.04-server-x86_64; done rm currently_xenial.dgalloway
- Delete all associated profiles under the Profiles tab in the Cobbler web UI
- Delete the distro from Distros in the web UI
- Proceed with Re-adding the distro
