As CentOS can support initrd as injection-method (mainly when doing an installation from "tree"), let's create its own files and stop using the RHEL ones. Signed-off-by: Fabiano Fidêncio <fidencio@xxxxxxxxxx> --- .../centos-kickstart-desktop.xml.in | 197 ++++++++++++++++++ .../centos.org/centos-kickstart-jeos.xml.in | 142 +++++++++++++ 2 files changed, 339 insertions(+) create mode 100644 data/install-script/centos.org/centos-kickstart-desktop.xml.in create mode 100644 data/install-script/centos.org/centos-kickstart-jeos.xml.in diff --git a/data/install-script/centos.org/centos-kickstart-desktop.xml.in b/data/install-script/centos.org/centos-kickstart-desktop.xml.in new file mode 100644 index 0000000..60a4952 --- /dev/null +++ b/data/install-script/centos.org/centos-kickstart-desktop.xml.in @@ -0,0 +1,197 @@ +<libosinfo version="0.0.1"> +<!-- Licensed under the GNU General Public License version 2 or later. + See http://www.gnu.org/licenses/ for a copy of the license text --> + <install-script id='http://centos.org/centos/kickstart/desktop'> + <profile>desktop</profile> + <expected-filename>centos.ks</expected-filename> + <config> + <param name="l10n-keyboard" policy="optional"/> + <param name="l10n-language" policy="optional"/> + <param name="l10n-timezone" policy="optional"/> + <param name="hostname" policy="optional"/> + <param name="user-login" policy="required"/> + <param name="user-password" policy="required"/> + <param name="admin-password" policy="required"/> + <param name="avatar-location" policy="optional"/> + <param name="avatar-disk" policy="optional"/> + <param name="target-disk" policy="optional"/> + <param name="script-disk" policy="required"/> + </config> + <injection-method>cdrom</injection-method> + <injection-method>disk</injection-method> + <injection-method>floppy</injection-method> + <injection-method>initrd</injection-method> + <avatar-format> + <mime-type>image/png</mime-type> + </avatar-format> + <template> + <xsl:stylesheet + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + + <xsl:output method="text"/> + + <xsl:template name="target-disk"> + <xsl:choose> + <xsl:when test="config/target-disk != ''"> + <xsl:value-of select="config/target-disk"/> + </xsl:when> + <xsl:when test="os/version > 4"> + <!-- virtio --> + <xsl:text>/dev/vda</xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- IDE --> + <xsl:text>/dev/sda</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="script-disk"> + <xsl:variable name="script-disk"> + <xsl:value-of select="config/script-disk"/> + </xsl:variable> + <xsl:value-of select="substring-after($script-disk, '/dev/')"/> + </xsl:template> + + <xsl:template match="/command-line"> + <xsl:text>ks=</xsl:text> + <xsl:choose> + <xsl:when test="script/preferred-injection-method = 'initrd'"> + <xsl:text>file:/</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>hd:</xsl:text> + <xsl:call-template name="script-disk"/> + <xsl:text>:/</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:value-of select="script/expected-filename"/> + </xsl:template> + + <xsl:template name="version"> + <xsl:choose> + <xsl:when test="os/version < 7"> + <xsl:text>6</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>7</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="arch"> + <xsl:choose> + <xsl:when test="config/hardware-arch = 'x86_64'"> + <xsl:text>x86_64</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>i386</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match="/install-script-config"> +# Install script for <xsl:value-of select="os/short-id"/> profile <xsl:value-of select="script/profile"/> +<xsl:if test="script/installation-source = 'media'"> +install +cdrom +</xsl:if> +keyboard <xsl:value-of select="config/l10n-keyboard"/> +lang <xsl:value-of select="config/l10n-language"/> +network --onboot yes --bootproto dhcp --noipv6 --hostname=<xsl:value-of select="config/hostname"/> +rootpw dummyPa55w0rd # Actual password set (or unset) in %post below +firewall --disabled +authconfig --enableshadow --enablemd5 +timezone --utc <xsl:value-of select="config/l10n-timezone"/> +bootloader --location=mbr +zerombr + +clearpart --all --drives=<xsl:call-template name="target-disk"/> + +firstboot --disable + +<xsl:choose> + <xsl:when test="os/version < 7"> +part /boot --fstype ext4 --size=1024 --ondisk=<xsl:call-template name="target-disk"/> + </xsl:when> + <xsl:otherwise> +part /boot --fstype ext4 --recommended --ondisk=<xsl:call-template name="target-disk"/> + </xsl:otherwise> +</xsl:choose> +part pv.2 --size=1 --grow --ondisk=<xsl:call-template name="target-disk"/> +volgroup VolGroup00 --pesize=32768 pv.2 +logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 +logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow +reboot + +<xsl:if test="script/installation-source = 'network'"> +url --url="http://mirror.centos.org/centos/<xsl:call-template name="version"/>/os/<xsl:call-template name="arch"/>" +</xsl:if> + +%packages +@core +@x11 +<xsl:choose> + <xsl:when test="os/version < 7"> +@basic-desktop +@general-desktop +@desktop-platform + </xsl:when> + <xsl:otherwise> +@gnome-desktop +@multimedia + </xsl:otherwise> +</xsl:choose> +@internet-browser +@input-methods + +qemu-guest-agent + +%end + +%post --erroronfail + +useradd -G wheel <xsl:value-of select="config/user-login"/> # Add user +if test -z '<xsl:value-of select="config/user-password"/>'; then + passwd -d <xsl:value-of select="config/user-login"/> # Make user account passwordless +else + echo '<xsl:value-of select="config/user-password"/>' |passwd --stdin <xsl:value-of select="config/user-login"/> +fi + +if test -z '<xsl:value-of select="config/admin-password"/>'; then + passwd -d root # Make root account passwordless +else + echo '<xsl:value-of select="config/admin-password"/>' |passwd --stdin root +fi + +# Set user avatar +if test -n '<xsl:value-of select="config/avatar-location"/>'; then +mkdir /mnt/unattended-media +mount <xsl:value-of select='config/avatar-disk'/> /mnt/unattended-media +cp /mnt/unattended-media<xsl:value-of select="config/avatar-location"/> /home/<xsl:value-of select="config/user-login"/>/.face +umount /mnt/unattended-media +fi + +# Enable autologin +echo "[daemon] +AutomaticLoginEnable=true +AutomaticLogin=<xsl:value-of select="config/user-login"/> + +[security] + +[xdmcp] + +[greeter] + +[chooser] + +[debug] +" > /etc/gdm/custom.conf + +%end + </xsl:template> + </xsl:stylesheet> + </template> + </install-script> +</libosinfo> diff --git a/data/install-script/centos.org/centos-kickstart-jeos.xml.in b/data/install-script/centos.org/centos-kickstart-jeos.xml.in new file mode 100644 index 0000000..3feafec --- /dev/null +++ b/data/install-script/centos.org/centos-kickstart-jeos.xml.in @@ -0,0 +1,142 @@ +<libosinfo version="0.0.1"> +<!-- Licensed under the GNU General Public License version 2 or later. + See http://www.gnu.org/licenses/ for a copy of the license text --> + <install-script id='http://centos.org/centos/kickstart/jeos'> + <profile>jeos</profile> + <expected-filename>centos.ks</expected-filename> + <config> + <param name="admin-password" policy="optional"/> + <param name="l10n-keyboard" policy="optional"/> + <param name="l10n-language" policy="optional"/> + <param name="l10n-timezone" policy="optional"/> + <param name="target-disk" policy="optional"/> + <param name="script-disk" policy="required"/> + </config> + <injection-method>cdrom</injection-method> + <injection-method>disk</injection-method> + <injection-method>floppy</injection-method> + <injection-method>initrd</injection-method> + <template> + <xsl:stylesheet + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + + <xsl:output method="text"/> + + <xsl:template name="target-disk"> + <xsl:choose> + <xsl:when test="config/target-disk != ''"> + <xsl:value-of select="config/target-disk"/> + </xsl:when> + <xsl:when test="os/version > 4"> + <!-- virtio --> + <xsl:text>/dev/vda</xsl:text> + </xsl:when> + <xsl:otherwise> + <!-- IDE --> + <xsl:text>/dev/sda</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="script-disk"> + <xsl:variable name="script-disk"> + <xsl:value-of select="config/script-disk"/> + </xsl:variable> + <xsl:value-of select="substring-after($script-disk, '/dev/')"/> + </xsl:template> + + <xsl:template match="/command-line"> + <xsl:text>ks=</xsl:text> + <xsl:choose> + <xsl:when test="script/preferred-injection-method = 'initrd'"> + <xsl:text>file:/</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>hd:</xsl:text> + <xsl:call-template name="script-disk"/> + <xsl:text>:/</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:value-of select="script/expected-filename"/> + </xsl:template> + + <xsl:template name="version"> + <xsl:choose> + <xsl:when test="os/version < 7"> + <xsl:text>6</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>7</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="arch"> + <xsl:choose> + <xsl:when test="config/hardware-arch = 'x86_64'"> + <xsl:text>x86_64</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>i386</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match="/install-script-config"> +# Install script for <xsl:value-of select="os/short-id"/> profile <xsl:value-of select="script/profile"/> +<xsl:if test="script/installation-source = 'media'"> +install +cdrom +</xsl:if> +text +keyboard <xsl:value-of select="config/l10n-keyboard"/> +lang <xsl:value-of select="config/l10n-language"/> +skipx +network --bootproto dhcp +rootpw <xsl:value-of select="config/admin-password"/> +firewall --disabled +authconfig --enableshadow --enablemd5 +selinux --enforcing +timezone --utc <xsl:value-of select="config/l10n-timezone"/> +bootloader --location=mbr +zerombr + +clearpart --all --drives=<xsl:call-template name="target-disk"/> + + +<xsl:choose> + <xsl:when test="os/version < 7"> +part /boot --fstype ext4 --size=1024 --ondisk=<xsl:call-template name="target-disk"/> + </xsl:when> + <xsl:otherwise> +part /boot --fstype ext4 --recommended --ondisk=<xsl:call-template name="target-disk"/> + </xsl:otherwise> +</xsl:choose> +part pv.2 --size=1 --grow --ondisk=<xsl:call-template name="target-disk"/> +volgroup VolGroup00 --pesize=32768 pv.2 +logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 +logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow +reboot + +<xsl:if test="script/installation-source = 'network'"> +url --url="http://mirror.centos.org/centos/<xsl:call-template name="version"/>/os/<xsl:call-template name="arch"/>" +</xsl:if> + +%packages +<xsl:choose> + <xsl:when test="os/version < 7"> +@base + </xsl:when> + <xsl:otherwise> +@^minimal + </xsl:otherwise> +</xsl:choose> +@core + +%end + </xsl:template> + </xsl:stylesheet> + </template> + </install-script> +</libosinfo> -- 2.19.2 _______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo