[CentOS] How to start a script to complete configuration

Bill Howe howe.bill at gmail.com
Wed Nov 9 13:01:01 UTC 2016


How you could do this with scripts:

*CentOS 7*

   1. Deploy a VM from your base CentOS 7 template
   2. Copy your "my-firstboot.sh" script (or whatever its called) to a
   location such as /root/scripts/
      1. This scripts only job should be to mount a NFS location and
      execute any post install scripts you have stored there, and provide a log
      file.
      2. This script should disable the "my-firstboot.service" at the end
      and then change permissions of itself to no execute to ensure it doesn't
      get run more than once.
      3. It is also useful to have this script email the system admins when
      its done and reboot the VM (in the case of full system updates
that require
      a reboot to new kernel)
      3. Create your "my-firstboot.service" unit file at: /etc/systemd/
   system/my-firstboot.service, enable it. example contents:
   1. [Unit]
      Description=Auto-execute my post install scripts
      After=network.target

      [Service]
      ExecStart=/root/scripts/my-firstboot.sh

      [Install]
      WantedBy=multi-user.target

*CentOS 6*

   1. Same thing as above, except no service unit file. Instead simply
   create a line in /etc/rc.local to execute the "my-firstboot.sh" script like
   so:
      1.

      echo "/root/scripts/my-firstboot.sh" >> /etc/rc.d/rc.local

      2. And have the "my-firstboot.sh" script remove that same line above
   from rc.local at the end of its execution so its not run again on the next
   reboot.


Bill


On Tue, Nov 8, 2016 at 3:44 PM, Oscar Osta Pueyo <oostap.listas at gmail.com>
wrote:

> Hello,
> I think you can use anaconda for this task, you can configure some actions
> after the installation.
>
> Best regards,
>
> El dt, 8 nov 2016 a les 18:44 Leon Fauster <leonfauster at googlemail.com> va
> escriure:
>
> > Am 08.11.2016 um 16:47 schrieb cpolish at surewest.net:
> > > On 2016-11-07 14:35, Bernard Fay wrote:
> > >> Hi,
> > >>
> > >> We have a virtual environment based on XenServer. In this environment
> I
> > >> defined a template for CentOS 7 servers.
> > >>
> > >> I would like to start a script a boot time to complete the
> > configuration of
> > >> new VMs based on this template. How can I have a script started before
> > any
> > >> login prompt to ask question to the user to complete the configuration
> > such
> > >> as hostname, IP address, etc?
> > >
> > > Hi Bernard,
> > >
> > > My first impulse was "don't!", and that's probably the best
> > > advise.  A popular model is that the "firstboot" package takes
> > > care of this at the first user login, and *nix systems sort of
> > > depend on this "logged in users do stuff" model.
> > >
> > > Even better, use ansible, cfengine, chef, or puppet to automate
> > > the task of setting things up. This is the _best_ solution and
> > > you will eventually come back to it.
> > >
> > > But, the darker, cynical part of my brain, the part that says
> > > "what, you're cutting down on coffee?" part, said "sure you
> > > can". Here's how it _could_ be done.
> > >
> > > DON'T DO THIS. TURN BACK NOW.
> > >
> > >    Replace /sbin/init with a shell script that does what you want.
> > >    It will be the first userland process started, have the console
> > >    for I/O, and run as root. At completion, restore the original
> > >    /sbin/init and reboot. Leave no traces behind. Do not document
> > >    your awful hack, others will use your words against you.
> >
> >
> >
> > :-) ... kernel parameter init=/root/yourscript
> >
> > https://www.kernel.org/doc/Documentation/kernel-parameters.txt
> >
> > --
> > LF
> >
> > _______________________________________________
> > CentOS mailing list
> > CentOS at centos.org
> > https://lists.centos.org/mailman/listinfo/centos
> >
> _______________________________________________
> CentOS mailing list
> CentOS at centos.org
> https://lists.centos.org/mailman/listinfo/centos
>



More information about the CentOS mailing list