[Libosinfo] [PATCH v2] Add install script for RHEL 6.x

Zeeshan Ali (Khattak) zeeshanak at gnome.org
Tue Jan 8 23:23:20 UTC 2013


From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>

The same script might work for other RHEL 6.x too but I have only tested
it against RHEL 6.3 for now. Still some issues though:

1. For some reason user's avatar is ignored although according to the docs
I could find*, copying the avatar to /home/${USER}/.face should be
enough.

2. We don't set the keyboard layout properly yet and just hardcode it to
  'us'. This will require the same kind of mapping as Fedora 17 and older.

* http://projects.gnome.org/gdm/docs/2.14/configuration.html
---
 data/install-scripts/Makefile.am |   1 +
 data/install-scripts/rhel.xml    | 204 +++++++++++++++++++++++++++++++++++++++
 data/oses/rhel.xml.in            |  20 ++++
 3 files changed, 225 insertions(+)
 create mode 100644 data/install-scripts/rhel.xml

diff --git a/data/install-scripts/Makefile.am b/data/install-scripts/Makefile.am
index cb24e09..c310468 100644
--- a/data/install-scripts/Makefile.am
+++ b/data/install-scripts/Makefile.am
@@ -2,6 +2,7 @@
 databasedir = $(pkgdatadir)/db/install-scripts/
 database_DATA =     \
   fedora.xml        \
+  rhel.xml          \
   windows-sif.xml   \
   windows-cmd.xml   \
   windows-reg.xml   \
diff --git a/data/install-scripts/rhel.xml b/data/install-scripts/rhel.xml
new file mode 100644
index 0000000..9c17f11
--- /dev/null
+++ b/data/install-scripts/rhel.xml
@@ -0,0 +1,204 @@
+<libosinfo version="0.0.1">
+  <!-- JEOS PROFILE -->
+  <install-script id='http://redhat.com/scripts/rhel/jeos'>
+    <profile>jeos</profile>
+    <expected-filename>fedora.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"/>
+    </config>
+    <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 match="/install-script-config">
+# Install script for <xsl:value-of select="os/short-id"/> profile <xsl:value-of select="script/profile"/>
+install
+text
+<!-- FIXME: RHEL requires keyboard layout to be a console layout so to do this right, we'll need
+            mapping from language to console layout. -->
+keyboard us
+lang <xsl:value-of select="config/l10n-language"/>
+skipx
+network --device eth0 --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"/>
+
+part /boot --fstype ext4 --size=200 --ondisk=<xsl:call-template name="target-disk"/>
+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
+
+%packages
+<xsl:choose>
+  <xsl:when test="os/version < 7">
+ at base
+  </xsl:when>
+  <xsl:otherwise>
+ at standard
+  </xsl:otherwise>
+</xsl:choose>
+ at core
+
+%end
+	</xsl:template>
+      </xsl:stylesheet>
+    </template>
+  </install-script>
+
+  <!-- DESKTOP PROFILE -->
+  <install-script id='http://redhat.com/scripts/rhel/desktop'>
+    <profile>desktop</profile>
+    <expected-filename>fedora.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"/>
+    </config>
+    <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 match="/install-script-config">
+# Install script for <xsl:value-of select="os/short-id"/> profile <xsl:value-of select="script/profile"/>
+install
+keyboard us
+lang <xsl:value-of select="config/l10n-language"/>
+network --onboot yes --device eth0 --bootproto dhcp --noipv6 --hostname=<xsl:value-of select="config/hostname"/> --activate
+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
+
+part /boot --fstype ext4 --size=200 --ondisk=<xsl:call-template name="target-disk"/>
+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
+
+%packages
+ at core
+ at x11
+ at basic-desktop
+ at general-desktop
+ at desktop-platform
+ at internet-applications
+ at internet-browser
+ at input-methods
+ at office-suite
+
+%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/oses/rhel.xml.in b/data/oses/rhel.xml.in
index 1b34704..7e0db5b 100644
--- a/data/oses/rhel.xml.in
+++ b/data/oses/rhel.xml.in
@@ -708,6 +708,11 @@
         <storage>9663676416</storage>
       </recommended>
     </resources>
+
+    <installer>
+      <script id='http://redhat.com/scripts/rhel/jeos'/>
+      <script id='http://redhat.com/scripts/rhel/desktop'/>
+    </installer>
   </os>
 
   <os id="http://redhat.com/rhel/6.1">
@@ -753,6 +758,11 @@
         <storage>9663676416</storage>
       </recommended>
     </resources>
+
+    <installer>
+      <script id='http://redhat.com/scripts/rhel/jeos'/>
+      <script id='http://redhat.com/scripts/rhel/desktop'/>
+    </installer>
   </os>
 
   <os id="http://redhat.com/rhel/6.2">
@@ -798,6 +808,11 @@
         <storage>9663676416</storage>
       </recommended>
     </resources>
+
+    <installer>
+      <script id='http://redhat.com/scripts/rhel/jeos'/>
+      <script id='http://redhat.com/scripts/rhel/desktop'/>
+    </installer>
   </os>
 
   <os id="http://redhat.com/rhel/6.3">
@@ -843,5 +858,10 @@
         <storage>9663676416</storage>
       </recommended>
     </resources>
+
+    <installer>
+      <script id='http://redhat.com/scripts/rhel/jeos'/>
+      <script id='http://redhat.com/scripts/rhel/desktop'/>
+    </installer>
   </os>
 </libosinfo>
-- 
1.8.0.2




More information about the Libosinfo mailing list