cobbler / koan

koan - kickstart over a network
https://koan.readthedocs.io/en/latest/
GNU General Public License v2.0
42 stars 31 forks source link

Koan-V3.0.1 is not compatible with Cobbler-V3.2.2 #84

Open wy-z opened 2 years ago

wy-z commented 2 years ago

It seems that Koan-V3.0.1 is not compatible with Cobbler-V3.2.2, for example:

  1. autoinst does not exist in xmlrpc return (see bellow profile data)
  2. ks_meta has been renamed to autoinstall_meta
  3. kickstart has been renamed to autoinstall

https://github.com/cobbler/cobbler/blob/d6fa0b14051fcd0cd7c6d562c5d56eeca0422f44/scripts/migrate-data-v2-to-v3.py#L96

image

Cobbler-V3.2.2 profile data

{'allow_duplicate_hostnames': True,
 'allow_duplicate_ips': False,
 'allow_duplicate_macs': False,
 'allow_dynamic_settings': True,
 'always_write_dhcp_entries': False,
 'anamon_enabled': False,
 'arch': 'x86_64',
 'auth_token_expiration': 3600,
 'authn_pam_service': 'login',
 'autoinstall': 'sample.ks',
 'autoinstall_meta': 'tree=http://@@http_server@@/cblr/links/centos-7.9-x86_64 ',
 'autoinstall_snippets_dir': '/var/lib/cobbler/snippets',
 'autoinstall_templates_dir': '/var/lib/cobbler/templates',
 'bind_chroot_path': '',
 'bind_manage_ipmi': False,
 'bind_master': '127.0.0.1',
 'boot_files': '',
 'boot_loader': 'grub',
 'boot_loader_conf_template_dir': '/etc/cobbler/boot_loader_conf',
 'bootloaders_dir': '/var/lib/cobbler/loaders',
 'breed': 'redhat',
 'build_reporting_email': ['root@localhost'],
 'build_reporting_enabled': False,
 'build_reporting_ignorelist': [],
 'build_reporting_sender': '',
 'build_reporting_smtp_server': 'localhost',
 'build_reporting_subject': '',
 'buildisodir': '/var/cache/cobbler/buildiso',
 'cache_enabled': True,
 'cheetah_import_whitelist': ['random', 're', 'time', 'netaddr'],
 'client_use_https': False,
 'client_use_localhost': True,
 'cobbler_master': '',
 'comment': '',
 'convert_server_to_ip': True,
 'createrepo_flags': '-c cache -s sha',
 'ctime': 1644779073.024603,
 'default_autoinstall': '/var/lib/cobbler/templates/default.ks',
 'default_name_servers': [],
 'default_name_servers_search': [],
 'default_ownership': ['admin'],
 'default_password_crypted': '$1$tId2Jrra$iauZ8XrO0wzGoEW26qZ2w1',
 'default_template_type': 'cheetah',
 'default_virt_bridge': 'xenbr0',
 'default_virt_disk_driver': 'raw',
 'default_virt_file_size': 5,
 'default_virt_ram': 512,
 'default_virt_type': 'xenpv',
 'depth': 1,
 'dhcp_tag': 'default',
 'distro': 'centos-7.9-x86_64',
 'distro_name': 'centos-7.9-x86_64',
 'enable_gpxe': True,
 'enable_menu': True,
 'fetchable_files': '',
 'grubconfig_dir': '/var/lib/cobbler/grub_config',
 'http_port': 80,
 'http_server': '10.255.101.101',
 'include': ['/etc/cobbler/settings.d/*.settings'],
 'initrd': '/var/www/cobbler/distro_mirror/centos-7.9-x86_64/images/pxeboot/initrd.img',
 'iso_template_dir': '/etc/cobbler/iso',
 'jinja2_includedir': '/var/lib/cobbler/jinja2',
 'kernel': '/var/www/cobbler/distro_mirror/centos-7.9-x86_64/images/pxeboot/vmlinuz',
 'kernel_options': '',
 'kernel_options_post': '',
 'kickstart': 'sample.ks',
 'ks_meta': {'tree': 'http://@@http_server@@/cblr/links/centos-7.9-x86_64'},
 'ldap_anonymous_bind': True,
 'ldap_base_dn': 'DC=example,DC=com',
 'ldap_port': 389,
 'ldap_search_bind_dn': '',
 'ldap_search_passwd': '',
 'ldap_search_prefix': 'uid=',
 'ldap_server': 'ldap.example.com',
 'ldap_tls': True,
 'ldap_tls_cacertfile': '',
 'ldap_tls_certfile': '',
 'ldap_tls_keyfile': '',
 'manage_dhcp': True,
 'manage_dns': False,
 'manage_forward_zones': [],
 'manage_genders': False,
 'manage_reverse_zones': [],
 'manage_rsync': True,
 'manage_tftpd': True,
 'mgmt_classes': [],
 'mgmt_parameters': {'from_cobbler': True,
                     'tree': 'http://@@http_server@@/cblr/links/centos-7.9-x86_64'},
 'mtime': 1644779073.024603,
 'name': 'centos-7.9-x86_64',
 'name_servers': [],
 'name_servers_search': [],
 'next_server': '10.255.101.101',
 'nopxe_with_triggers': True,
 'nsupdate_enabled': False,
 'nsupdate_log': '/var/log/cobbler/nsupdate.log',
 'nsupdate_tsig_algorithm': 'hmac-sha512',
 'nsupdate_tsig_key': [],
 'os_version': 'rhel7',
 'owners': ['admin'],
 'parent': '',
 'power_management_default_type': 'ipmilan',
 'profile_name': 'centos-7.9-x86_64',
 'proxy': '',
 'proxy_url_ext': '',
 'proxy_url_int': '',
 'puppet_auto_setup': False,
 'puppet_parameterized_classes': True,
 'puppet_server': '',
 'puppet_version': 2,
 'puppetca_path': '/usr/bin/puppet',
 'pxe_just_once': True,
 'redhat_management_key': '',
 'redhat_management_permissive': False,
 'redhat_management_server': 'xmlrpc.rhn.redhat.com',
 'register_new_installs': False,
 'remote_boot_initrd': '~',
 'remote_boot_kernel': '~',
 'remove_old_puppet_certs_automatically': False,
 'replicate_repo_rsync_options': '-avzH',
 'replicate_rsync_options': '-avzH',
 'repo_data': [],
 'repos': '',
 'reposync_flags': '-l -n -d',
 'reposync_rsync_flags': '-rltDv --copy-unsafe-links',
 'restart_dhcp': True,
 'restart_dns': True,
 'run_install_triggers': True,
 'scm_push_script': '/bin/true',
 'scm_track_author': 'cobbler <cobbler@localhost>',
 'scm_track_enabled': False,
 'scm_track_mode': 'git',
 'serializer_pretty_json': False,
 'server': '10.255.101.101',
 'sign_puppet_certs_automatically': False,
 'signature_path': '/var/lib/cobbler/distro_signatures.json',
 'signature_url': 'https://cobbler.github.io/signatures/3.0.x/latest.json',
 'source_repos': [['http://@@http_server@@/cobbler/distro_mirror/config/centos-7.9-x86_64-0.repo',
                   'http://@@http_server@@/cobbler/distro_mirror/centos-7.9-x86_64']],
 'template_files': '',
 'tftpboot_location': '/var/lib/tftpboot',
 'tree_build_time': 0,
 'uid': 'b4b26756754c4da1bd5709cc352159d8',
 'virt_auto_boot': True,
 'virt_bridge': 'xenbr0',
 'virt_cpus': 1,
 'virt_disk_driver': 'raw',
 'virt_file_size': 5,
 'virt_path': '',
 'virt_ram': 512,
 'virt_type': 'kvm',
 'webdir': '/var/www/cobbler',
 'webdir_whitelist': ['misc',
                      'web',
                      'webui',
                      'localmirror',
                      'repo_mirror',
                      'distro_mirror',
                      'images',
                      'links',
                      'pub',
                      'repo_profile',
                      'repo_system',
                      'svc',
                      'rendered',
                      '.link_cache'],
 'xmlrpc_port': 25151,
 'yum_distro_priority': 1,
 'yum_post_install_mirror': True,
 'yumdownloader_flags': '--resolve'}
wy-z commented 2 years ago

First of all, thank you for your excellent work.

nodeg commented 2 years ago

Hi @wy-z! Thanks for reporting this. Yes, Koan needs some work to work with newer Cobbler versions.

wy-z commented 2 years ago

Hi @nodeg, thank you very much for your reply.

Are there any relevant updates planned? I've done a 'fork' locally, but still looking forward to the official update.

nodeg commented 2 years ago

Your welcome. There is an update planned, of course. But our main focus lies on Cobbler at the moment and we sadly do not have that much developers/contributors helping. You can have a look at the Cobbler roadmap for more information.

wy-z commented 2 years ago

Your welcome. There is an update planned, of course. But our main focus lies on Cobbler at the moment and we sadly do not have that much developers/contributors helping. You can have a look at the Cobbler roadmap for more information.

Got it. Thanks again. 🙏

ckotte commented 1 year ago

This is a major issue. People can't use Cobbler v3.4.0 because it's completely broken. Cobbler v3.2.2 is more or less stable (see my issues and pull requests), but the latest stable koan version v3.0.1 has major issues with Cobbler v3.2.2. I can re-install a system but I have to change the grub config before the reboot.

Another thing. Does someone know how I can add ifname=: (e.g. ifname=eth0:00:50:56:81:c3:0c) automatically to the boot options for every system? Do I need to change koan code or do I need to add something to the cobbler distibution?

SchoolGuy commented 1 year ago

@ckotte So never forget that Cobbler 3.4.0 doesn't exist yet. It is the version used for development at the moment.

Cobbler 3.2.x might be stable but Cobbler 3.3.x should be too.

Other then that you are welcome to fixup Koan as at the moment from the core team no resources are available for Koan.

Tagging a new Cobbler 3.2.x is planned but not possible unless @opoplawski takes care of his open PRs.

Tagging a new Cobbler 3.3.x is also planned but is dependent on again me taking my free time to write a changelog and tagging it. If you are lucky I will do so tomorrow. If not it will be in the coming weeks.

ckotte commented 1 year ago

@SchoolGuy Do you have more information about the autoinst option missing in the xml output? Was it introduced after Cobbler v3.2.2?

opoplawski commented 6 months ago

autoinst appears to have been introduced after cobber 3.2, at least for what is returned by XML-RPC. However koan has code since v3.0.0 to map kickstart to autoinst. The issue I think is that what was returned stopped being a full path. This was fixed in d91979f5c88046d61fa08e825b6479c1a1e82526 but there is no release with that fix yet.