Anything for SuSE's default sample.xml should first strive for parity with the Red Hat example -- ideally it should set up networking, have the config integration, etc.

I'm not against shipping a "complex" example showing more but "complex" should not be the default.   I'd like it to aim for parity first though.

Other tricks might make a good Wiki article.

On Thursday, February 2, 2012 at 8:41 AM, Christian Horn wrote:

Hi,

modifications required, or not considered useful?

Christian

On Sat, Jan 21, 2012 at 08:34:12PM +0100, Christian Horn wrote:
Hi,


On Fri, Jan 20, 2012 at 09:24:36PM +0100, Jörgen Maas wrote:
The networking snippet should be updated to reflect the new interface_type
naming scheme for bonded interfaces.

New version of the patch attached, did you have that in mind?


Also support for the $subnet variable
(now $netmask) should be safe to drop i guess.

Thought so and that is the current state of the patch. So the snippets
included in cobbler are compatible to the cobbler version itself.


Also;
Personally i think it's better to include as much useable autoyast
snippets/stuff in Cobbler even if they're not implemented yet for RHEL. In
my opinion the included stuff should be a starting point for users, not an
out-of-the-box-one-size-fits-all solution.

The package selection I did bevore is not in the patch.
In this current state all the important bells'n'whistles that I used
bevore for SLES deployment are in the patch (and former network con-
fig was worse than what it is with the networking.xml that was
committed to cobbler in the meantime).

Having currently no ideas of further features that could be missing
here..

Comments to the patch welcome.

Christian

diff -Naur cobbler.git/kickstarts/autoyast_complex.xml cobbler/kickstarts/autoyast_complex.xml
--- cobbler.git/kickstarts/autoyast_complex.xml 1970-01-01 01:00:00.000000000 +0100
+++ cobbler/kickstarts/autoyast_complex.xml 2012-01-21 22:22:12.838630290 +0100
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+<!DOCTYPE profile>
+## wrapper working?
+## networking?
+ <deploy_image>
+ <image_installation config:type="boolean">false</image_installation>
+ </deploy_image>
+ ## without the next 6 lines autoyast will ask for confirmation bevore installation
+ <general>
+ <mode>
+ <confirm config:type="boolean">false</confirm>
+ <final_reboot config:type="boolean">true</final_reboot>
+ </mode>
+ </general>
+ $SNIPPET('snippets_new/hosts.xml')
+ $SNIPPET('snippets_new/kdump.xml')
+ <keyboard>
+ <keymap>english</keymap>
+ </keyboard>
+ <language>
+ <language>en_US</language>
+ <languages></languages>
+ </language>
+ <login_settings/>
+ $SNIPPET('snippets_new/networking.xml')
+ <runlevel>
+ <default>3</default>
+ </runlevel>
+ <users config:type="list">
+ <user>
+ <encrypted config:type="boolean">true</encrypted>
+ <fullname>root</fullname>
+ <gid>0</gid>
+ <home>/root</home>
+ <password_settings>
+ <expire></expire>
+ <flag></flag>
+ <inact></inact>
+ <max></max>
+ <min></min>
+ <warn></warn>
+ </password_settings>
+ <shell>/bin/bash</shell>
+ <uid>0</uid>
+ ## password: cobbler
+ <user_password>$2a$05$OByGoYrDs05U3L62Sy0G4uMPsIx3JcUM5SBshs0xL0H6VYDFAvvGy</user_password>
+ <username>root</username>
+ </user>
+ </users>
+ <scripts>
+ ## we have to include the pre-scripts tag to get kickstart_start included
+ <pre-scripts config:type="list">
+ </pre-scripts>
+ <post-scripts config:type="list">
+
+ ## This plugin wrapper provides the flexibility to call pure shell
+ ## snippets which can be used directly on kickstart and with with
+ ## wrapper on SuSE.
+ ##
+ ## exchange name_of_pure_shell_snippet with the name of this shell snippet
+ ##
+ #set global $wrappedscript = 'snippets_new/name_of_pure_shell_snippet'
+ $SNIPPET('snippets_new/suse_scriptwrapper.xml')
+
+ </post-scripts>
+ </scripts>
+</profile>
diff -Naur cobbler.git/snippets/SuSE/hosts.xml cobbler/snippets/SuSE/hosts.xml
--- cobbler.git/snippets/SuSE/hosts.xml 2012-01-12 20:26:58.584464858 +0100
+++ cobbler/snippets/SuSE/hosts.xml 2012-01-21 22:21:32.882617099 +0100
@@ -1,23 +1,23 @@
<host>
- <hosts config:type="list">
- <hosts_entry>
- <host_address>127.0.0.1</host_address>
- <names config:type="list">
- <name>localhost</name>
- </names>
- </hosts_entry>
- #set $ikeys = $interfaces.keys()
- #for $iface in $ikeys
- #set $idata = $interfaces[$iface]
- #if $idata["interface_type"].lower() in ["","na","bridge","bond"]
- <hosts_entry>
- <host_address>$idata["ip_address"]</host_address>
- <names config:type="list">
- #set $my_interface_hostname_short = $idata["dns_name"].split('.',1)[:1][0]
- <name>$idata["dns_name"].lower() $my_interface_hostname_short.lower()</name>
- </names>
- </hosts_entry>
- #end if
- #end for
- </hosts>
-</host>
+ <hosts config:type="list">
+ <hosts_entry>
+ <host_address>127.0.0.1</host_address>
+ <names config:type="list">
+ <name>localhost</name>
+ </names>
+ </hosts_entry>
+ #set $ikeys = $interfaces.keys()
+ #for $iface in $ikeys
+ #set $idata = $interfaces[$iface]
+ #if $idata["interface_type"].lower() in ["","na","bridge","bond"]
+ <hosts_entry>
+ <host_address>$idata["ip_address"]</host_address>
+ <names config:type="list">
+ #set $my_interface_hostname_short = $idata["dns_name"].split('.',1)[:1][0]
+ <name>$idata["dns_name"].lower() $my_interface_hostname_short.lower()</name>
+ </names>
+ </hosts_entry>
+ #end if
+ #end for
+ </hosts>
+ </host>
diff -Naur cobbler.git/snippets/SuSE/kdump.xml cobbler/snippets/SuSE/kdump.xml
--- cobbler.git/snippets/SuSE/kdump.xml 1970-01-01 01:00:00.000000000 +0100
+++ cobbler/snippets/SuSE/kdump.xml 2012-01-21 22:21:32.882617099 +0100
@@ -0,0 +1,35 @@
+<kdump>
+ <!-- memory reservation -->
+ <!-- reserve 64 MB with 256MB to 2GB Memory and 128MB with more then 2GB Memory -->
+ <add_crash_kernel config:type="boolean">true</add_crash_kernel>
+ <crash_kernel>256M-2G:64M,2G-:128M</crash_kernel>
+
+ <general>
+ <!-- dump target settings -->
+ <KDUMP_SAVEDIR>file:///var/crash</KDUMP_SAVEDIR>
+ <KDUMP_COPY_KERNEL>true</KDUMP_COPY_KERNEL>
+ <KDUMP_FREE_DISK_SIZE>64</KDUMP_FREE_DISK_SIZE>
+ <KDUMP_KEEP_OLD_DUMPS>4</KDUMP_KEEP_OLD_DUMPS>
+
+ <!-- filtering and compression -->
+ <KDUMP_DUMPFORMAT>compressed</KDUMP_DUMPFORMAT>
+ <KDUMP_DUMPLEVEL>31</KDUMP_DUMPLEVEL>
+
+ <!-- notification -->
+ <KDUMP_NOTIFICATION_TO></KDUMP_NOTIFICATION_TO>
+ <KDUMP_NOTIFICATION_CC></KDUMP_NOTIFICATION_CC>
+ <KDUMP_SMTP_SERVER></KDUMP_SMTP_SERVER>
+ <KDUMP_SMTP_USER></KDUMP_SMTP_USER>
+ <KDUMP_SMTP_PASSWORD></KDUMP_SMTP_PASSWORD>
+
+ <!-- kdump kernel -->
+ <KDUMP_KERNELVER></KDUMP_KERNELVER>
+ <KDUMP_COMMANDLINE></KDUMP_COMMANDLINE>
+ <KDUMP_COMMANDLINE_APPEND></KDUMP_COMMANDLINE_APPEND>
+
+ <!-- expert settings -->
+ <KDUMP_IMMEDIATE_REBOOT>yes</KDUMP_IMMEDIATE_REBOOT>
+ <KDUMP_VERBOSE>3</KDUMP_VERBOSE>
+ <KEXEC_OPTIONS></KEXEC_OPTIONS>
+ </general>
+ </kdump>
diff -Naur cobbler.git/snippets/SuSE/name_of_pure_shell_snippet cobbler/snippets/SuSE/name_of_pure_shell_snippet
--- cobbler.git/snippets/SuSE/name_of_pure_shell_snippet 1970-01-01 01:00:00.000000000 +0100
+++ cobbler/snippets/SuSE/name_of_pure_shell_snippet 2012-01-21 22:21:08.715609122 +0100
@@ -0,0 +1 @@
+echo 'cobbler deployed SuSE system' >/etc/motd
diff -Naur cobbler.git/snippets/SuSE/networking.xml cobbler/snippets/SuSE/networking.xml
--- cobbler.git/snippets/SuSE/networking.xml 2012-01-12 20:26:58.584464858 +0100
+++ cobbler/snippets/SuSE/networking.xml 2012-01-21 22:21:33.798617402 +0100
@@ -1,107 +1,121 @@
#if $hostname == ""
-#set $hostname = $system_name
+ #set $hostname = $system_name
#end if
-#set $my_hostname = $hostname.split('.',1)[:1][0]
-#set $my_domainname = $hostname.split('.',1)[1:][0]
-<networking>
- <keep_install_network config:type="boolean">false</keep_install_network>
- <dhcp_options>
- <dhclient_client_id></dhclient_client_id>
- <dhclient_hostname_option></dhclient_hostname_option>
- </dhcp_options>
- <dns>
- <dhcp_hostname config:type="boolean">false</dhcp_hostname>
- <dhcp_resolv config:type="boolean">false</dhcp_resolv>
- <write_hostname config:type="boolean">false</write_hostname>
- <resolv_conf_policy></resolv_conf_policy>
- <hostname>$my_hostname</hostname>
- <domain>$my_domainname</domain>
- #if $getVar("name_servers_search","") != ""
- <searchlist config:type="list">
- #for $sd in $name_servers_search
- <search>$sd</search>
+#if $getVar("dns_name_eth0","") != ""
+ #set $my_hostname = $hostname.split('.',1)[:1][0]
+ #set $my_domainname = $dns_name_eth0
+#else
+ #set $my_hostname = $hostname
+ #set $my_domainname = "site"
+#end if
+
+ <networking>
+ <keep_install_network config:type="boolean">false</keep_install_network>
+ <dhcp_options>
+ <dhclient_client_id></dhclient_client_id>
+ <dhclient_hostname_option></dhclient_hostname_option>
+ </dhcp_options>
+ <dns>
+ <dhcp_hostname config:type="boolean">false</dhcp_hostname>
+ <dhcp_resolv config:type="boolean">false</dhcp_resolv>
+ <write_hostname config:type="boolean">false</write_hostname>
+ <resolv_conf_policy></resolv_conf_policy>
+ <hostname>$my_hostname</hostname>
+ <domain>$my_domainname</domain>
+ #if $getVar("name_servers_search","") != ""
+ <searchlist config:type="list">
+ #for $sd in $name_servers_search
+ <search>$sd</search>
+ #end for
+ </searchlist>
+ #end if
+ <nameservers config:type="list">
+ #for $ns in $name_servers
+ <nameserver>$ns</nameserver>
+ #end for
+ </nameservers>
+ </dns>
+ <interfaces config:type="list">
+ #set $ikeys = $interfaces.keys()
+ #for $iface in $ikeys
+ #set $idata = $interfaces[$iface]
+ #set $mac = $idata["mac_address"]
+ #set $ip = $idata["ip_address"]
+ #set $netmask = $idata["netmask"]
+ #set $iface_type = $idata["interface_type"]
+ #set $bonding_opts = $idata["bonding_opts"]
+ #if $iface_type.lower() == "bond"
+ <interface>
+ <bonding_master>yes</bonding_master>
+ <bonding_module_opts>$bonding_opts.lower()</bonding_module_opts>
+ #set $loop_ikeys = $interfaces.keys()
+ #set $loop_counter = 0
+ #for $loop_iface in $loop_ikeys
+ #set $loop_idata = $interfaces[$loop_iface]
+ #set $loop_interface_type = $loop_idata["interface_type"]
+ #if $loop_interface_type.lower == "bond_slave"
+ #if $loop_idata["interface_master"] != ""
+ #if $loop_idata["interface_master"].lower() == $iface.lower()
+ <bonding_slave$loop_counter>$loop_iface</bonding_slave$loop_counter>
+ #set $loop_counter += 1
+ #end if
+ #end if
+ #end if
+ #end for
+ <bootproto>static</bootproto>
+ <device>$iface</device>
+ <ipaddr>$ip</ipaddr>
+ <netmask>$netmask</netmask>
+ <startmode>auto</startmode>
+ <usercontrol>no</usercontrol>
+ </interface>
+ #end if
+ #if $iface_type.lower() in ["bond_slave","bridge_slave"]
+ <interface>
+ <bootproto>none</bootproto>
+ <device>$iface</device>
+ <startmode>off</startmode>
+ <usercontrol>no</usercontrol>
+ </interface>
+ #end if
+ #if $iface_type.lower() in ["","na"]
+ <interface>
+ <bootproto>static</bootproto>
+ <device>$iface</device>
+ <lladdr>$mac.lower()</lladdr>
+ <ipaddr>$ip</ipaddr>
+ <netmask>$netmask</netmask>
+ <startmode>auto</startmode>
+ <usercontrol>no</usercontrol>
+ </interface>
+ #end if
#end for
- </searchlist>
- #end if
- <nameservers config:type="list">
- #for $ns in $name_servers
- <nameserver>$ns</nameserver>
+ </interfaces>
+ <managed config:type="boolean">false</managed>
+ <net-udev config:type="list">
+ #set $ikeys = $interfaces.keys()
+ #for $iface in $ikeys
+ #set $idata = $interfaces[$iface]
+ #set $mac = $idata["mac_address"]
+ #set $interface_type = $idata["interface_type"]
+ #if $interface_type.lower() not in ["bond","bridge"]
+ <rule>
+ <name>$iface</name>
+ <rule>ATTR{address}</rule>
+ <value>$mac.lower()</value>
+ </rule>
+ #end if
#end for
- </nameservers>
- </dns>
- <interfaces config:type="list">
- #set $ikeys = $interfaces.keys()
- #for $iface in $ikeys
- #set $idata = $interfaces[$iface]
- #if $idata["interface_type"].lower() == "bond"
- <interface>
- <bonding_master>yes</bonding_master>
- <bonding_module_opts>$idata["bonding_opts"].lower()</bonding_module_opts>
- #set $loop_ikeys = $interfaces.keys()
- #set $loop_counter = 0
- #for $loop_iface in $loop_ikeys
- #set $loop_idata = $interfaces[$loop_iface]
- #if $loop_idata["interface_type"].lower == "bond_slave"
- #if $loop_idata["interface_master"] != ""
- #if $loop_idata["interface_master"].lower() == $iface.lower()
- <bonding_slave$loop_counter>$loop_iface</bonding_slave$loop_counter>
- #set $loop_counter += 1
- #end if
- #end if
- #end if
- #end for
- <bootproto>static</bootproto>
- <device>$iface</device>
- <ipaddr>$idata["ip_address"]</ipaddr>
- <netmask>$idata["subnet"]</netmask>
- <startmode>auto</startmode>
- <usercontrol>no</usercontrol>
- </interface>
- #end if
- #if $idata["interface_type"].lower() in ["bond_slave","bridge_slave"]
- <interface>
- <bootproto>none</bootproto>
- <device>$iface</device>
- <startmode>off</startmode>
- <usercontrol>no</usercontrol>
- </interface>
- #end if
- #if $idata["interface_type"].lower() in ["","na"]
- <interface>
- <bootproto>static</bootproto>
- <device>$iface</device>
- <lladdr>$idata["mac_address"].lower()</lladdr>
- <ipaddr>$idata["ip_address"]</ipaddr>
- <netmask>$idata["subnet"]</netmask>
- <startmode>auto</startmode>
- <usercontrol>no</usercontrol>
- </interface>
- #end if
- #end for
- </interfaces>
- <managed config:type="boolean">false</managed>
- <net-udev config:type="list">
- #set $ikeys = $interfaces.keys()
- #for $iface in $ikeys
- #set $idata = $interfaces[$iface]
- #if $idata["interface_type"].lower() not in ["bond","bridge"]
- <rule>
- <name>$iface</name>
- <rule>ATTR{address}</rule>
- <value>$idata["mac_address"].lower()</value>
- </rule>
- #end if
- #end for
- </net-udev>
- <routing>
- <ip_forward config:type="boolean">false</ip_forward>
- <routes config:type="list">
- <route>
- <destination>default</destination>
- <netmask>-</netmask>
- <device>-</device>
- <gateway>$gateway</gateway>
- </route>
- </routes>
- </routing>
-</networking>
+ </net-udev>
+ <routing>
+ <ip_forward config:type="boolean">false</ip_forward>
+ <routes config:type="list">
+ <route>
+ <destination>default</destination>
+ <netmask>-</netmask>
+ <device>-</device>
+ <gateway>$gateway</gateway>
+ </route>
+ </routes>
+ </routing>
+ </networking>
diff -Naur cobbler.git/snippets/SuSE/suse_scriptwrapper.xml cobbler/snippets/SuSE/suse_scriptwrapper.xml
--- cobbler.git/snippets/SuSE/suse_scriptwrapper.xml 1970-01-01 01:00:00.000000000 +0100
+++ cobbler/snippets/SuSE/suse_scriptwrapper.xml 2012-01-21 22:21:33.798617402 +0100
@@ -0,0 +1,12 @@
+ <script>
+## <debug config:type="boolean">true</debug>
+## <feedback config:type="boolean">false</feedback>
+## <location></location>
+## <network_needed config:type="boolean">true</network_needed>
+ <interpreter>shell</interpreter>
+#set $filename = $wrappedscript.replace('/', '_')
+ <filename>$filename</filename>
+ <source><![CDATA[
+$SNIPPET($wrappedscript)
+]]></source>
+ </script>

_______________________________________________
cobbler-devel mailing list

_______________________________________________
cobbler-devel mailing list
cobbler-devel@lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/cobbler-devel