This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
services:cobbler [2017/03/28 21:35] dgalloway |
services:cobbler [2022/11/22 11:49] akraitman |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Cobbler ====== | ====== Cobbler ====== | ||
===== Summary ===== | ===== Summary ===== | ||
- | [[https://cobbler.github.io/|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 [[services:RHEV]]. | + | [[https://cobbler.github.io/|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 bare metal machine that used to be mira065. |
Access the Web UI at https://cobbler.front.sepia.ceph.com/cobbler_web/ | Access the Web UI at https://cobbler.front.sepia.ceph.com/cobbler_web/ | ||
Line 9: | Line 9: | ||
===== Creating a new user for Web UI access ===== | ===== Creating a new user for Web UI access ===== | ||
- | - Generate a random password (''mkpasswd -l 12'') | + | - In the ''ceph-cm-ansible'' repo, there is a ''tools/cobbler-access.sh'' script. Run it. |
- | - Generate the hashed password (''htdigest -c /tmp/users.digest Cobbler $username'') | + | - Create a new branch named ''wip-username'' in the ''ceph-sepia-secrets'' repo |
- | - Paste the generated password when prompted | + | - Paste the output under ''%%------ String for cobbler.yml ------%%'' into a new line in ''ansible/inventory/group_vars/cobbler.yml'' under ''users_digest_lines'' |
- | - Create a new branch named ''wip-username'' in the secrets repo | + | - git commit, git push the branch, and create a Pull Request |
- | - Paste the output of ''cat /tmp/users.digest'' into a new line in ''ansible/inventory/group_vars/cobbler.yml'' under ''users_digest_lines'' | + | - ''%%ansible-playbook cobbler.yml --tags="settings"%%'' |
- | - git commit, git push the branch, and create a PR | + | |
<code> | <code> | ||
# Example | # Example | ||
- | $ mkpasswd -l 12 | + | $ ~/git/ceph/ceph-cm-ansible/tools/cobbler-access.sh |
- | b39feiiSiuQ% | + | Enter username: bob |
- | $ htdigest -c /tmp/users.digest "Cobbler" bob | + | ------ String for cobbler.yml ------ |
- | Adding password for bob in realm Cobbler. | + | bob:Cobbler:07a95ca759fd46e9416de672a5e2bb60 |
- | New password: | + | |
- | Re-type new password: | + | |
- | $ cat /tmp/users.digest | ||
- | bob:Cobbler:027abc2039e7495f72128d9c3c628686 | ||
# Add the user to the cobbler.yml secrets group_vars file | # Add the user to the cobbler.yml secrets group_vars file | ||
Line 39: | Line 34: | ||
- "vasu:Cobbler:XXXXX" | - "vasu:Cobbler:XXXXX" | ||
- "dmick:Cobbler:XXXXX" | - "dmick:Cobbler:XXXXX" | ||
- | + - "bob:Cobbler:027abc2039e7495f72128d9c3c628686" | + | + - "bob:Cobbler:07a95ca759fd46e9416de672a5e2bb60" |
</code> | </code> | ||
Line 55: | Line 50: | ||
- Set **Parent Profile** to ''$NEW_DISTRO_NAME'' | - Set **Parent Profile** to ''$NEW_DISTRO_NAME'' | ||
- **Save** | - **Save** | ||
+ | |||
+ | ==== RHEL in Sepia ==== | ||
+ | Because RHEL ISOs are only available inside the Red Hat firewall, we can't add an ''http'' URL to the secrets repo. To add a RHEL version: | ||
+ | |||
+ | - Find the ISO hosted inside the Red Hat firewall and download it | ||
+ | - Once downloaded, ''scp'' the ISO to ''cobbler.front.sepia.ceph.com:/iso'' | ||
+ | - In the ceph-sepia-secrets repo, set the appropriate ''%%file:///iso/path%%'' | ||
+ | |||
+ | ==== 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 <code> | ||
+ | # Example: | ||
+ | for host in $(cobbler system find --profile Ubuntu-16.04-server-x86_64); do cobbler system edit --name=$host --profile inktank-rescue; done | ||
+ | </code> | ||
+ | - You may wish to ''cat'' these hosts to a file so you can set the profile back after <code> | ||
+ | cobbler 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 | ||
+ | </code> | ||
+ | - Delete all associated profiles under the **Profiles** tab in the Cobbler web UI | ||
+ | - Delete the distro from **Distros** in the web UI | ||
+ | - Proceed with [[services:cobbler#adding_a_new_distro|Re-adding the distro]] |