[Libosinfo] [osinfo-db PATCH 6/9] centos: Add its own kickstart files
Fabiano Fidêncio
fidencio at redhat.com
Fri Dec 21 14:09:38 UTC 2018
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 at redhat.com>
---
.../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
+ at core
+ at x11
+<xsl:choose>
+ <xsl:when test="os/version < 7">
+ at basic-desktop
+ at general-desktop
+ at desktop-platform
+ </xsl:when>
+ <xsl:otherwise>
+ at gnome-desktop
+ at multimedia
+ </xsl:otherwise>
+</xsl:choose>
+ at internet-browser
+ at 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">
+ at base
+ </xsl:when>
+ <xsl:otherwise>
+@^minimal
+ </xsl:otherwise>
+</xsl:choose>
+ at core
+
+%end
+ </xsl:template>
+ </xsl:stylesheet>
+ </template>
+ </install-script>
+</libosinfo>
--
2.19.2
More information about the Libosinfo
mailing list