User Tools

Site Tools


services:cobbler

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
services:cobbler [2016/12/21 17:29]
dgalloway [Adding a new Distro]
services:cobbler [2022/11/22 11:49] (current)
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]]
services/cobbler.1482341357.txt.gz · Last modified: 2016/12/21 17:29 by dgalloway