[CentOS] How to start a script to complete configuration
Bill Howe
howe.bill at gmail.com
Wed Nov 9 13:06:23 UTC 2016
Forgot to mention. After this is setup, shutdown the VM and create a
template from it.
Then, any VMs created from this new template will auto execute your scripts.
Bill
On Wed, Nov 9, 2016 at 7:01 AM, Bill Howe <howe.bill at gmail.com> wrote:
> 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