Simple script to modify kickstart file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Simple script to modify kickstart file
# 1  
Old 05-02-2008
Simple script to modify kickstart file

Hi,

I would like to create a script so that it will ask me the following:

1) What is the ip address?
2) What is the gateway address?
3) What is the hostname?

and then put the answer to the below kickstart file (kickstart.cfg)



Here I included the kickstart.cfg:

# Kickstart file automatically generated by anaconda.

install
nfs --server=10.10.10.200 --dir=/vault/redhat/rhel5/5.1/x86_64
key --skip
lang en_US.UTF-8
keyboard us
xconfig --startxonboot
network --device eth0 --bootproto static --ip 10.10.10.20 --netmask 255.255.255.0 --gateway 10.10.10.1 --nameserver
10.10.10.100--hostname abc
network --device eth1 --onboot no --bootproto dhcp --hostname abc
rootpw --iscrypted $1$r3I9vk75$JWCGlXqgYd0/55lfg09NJ.
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc America/New_York
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all --drives=sda
part /boot --fstype ext3 --size=100 --ondisk=sda
part pv.6 --size=0 --grow --ondisk=sda
volgroup VolGroup00 --pesize=32768 pv.6
logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=25600
logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=8192
logvol /abc --fstype ext2 --name=LogVol03 --vgname=VolGroup00 --size=25216
logvol /var --fstype ext3 --name=LogVol02 --vgname=VolGroup00 --size=10240
# 2  
Old 05-03-2008
So star out and create the script.

Inside the script echo your questions and then read the answer to assign it to a variable. Ex:

echo "What is the ip address?"
read ipaddress

What is the gateway address?
read gatewayaddress

What is the hostname?
read hostname

So now you have your answers assigned to variables. Now echo each line of your kickstart file, but instead of the IP address you listed below, now replace it with $ipaddress.
# 3  
Old 05-08-2008
Sorry. I still don't know how. Could you please send me a sample script?

Thanks alot.
# 4  
Old 05-08-2008
[root@atlantis ~]# cat generateKickstartConfig.sh

Code:
#!/bin/sh

#define outputfile
KS_CONFIG=ks.cfg

echo -e "Starting Kickstart Configuration Generator Script ...\n"

echo -en "\tWhat is the IP Address:"
read IP_ADDRESS

echo -en "\tWhat is the gateway Address:"
read GATEWAY_ADDRESS

echo -en "\tWhat is the DNS Server:" 
read DNS_SERVER

echo -en "\tWhat is the Hostname:"
read HOSTNAME

echo "network --device eth0 --bootproto static --ip ${IP_ADDRESS} --netmask 255.255.255.0 --gateway ${GATEWAY_ADDRESS} --nameserver ${DNS_SERVER} --hostname ${HOSTNAME}" >> ${KS_CONFIG}

Remember to make the script executable
Execute with ./generateKickstartConfig.sh
Answer the 4 questions and "ls" your directory, you'll see a ks.cfg file

This is a very basic solution, there's so many possiblities, you can verify the user input to check to see if the values are valid, like if they enter an IP for hostname or vice versa, check DNS to see if these IPs resolve before using them in the kickstart, use regular expression to verify the user input, if its invalid you can loop to verify they enter something useful, I mean you can write a pretty complicated script to generate your ks.cfg file.
# 5  
Old 05-09-2008
Thanks. I have one more question. The script above will insert another new line for the "network....". Can I make it just only add the answer to those variable in the kickstart file? Please advise. Thanks alot

# Kickstart file automatically generated by anaconda.

install
nfs --server=10.10.10.200 --dir=/redhat/install
key --skip
lang en_US.UTF-8
keyboard us
xconfig --startxonboot
network --device eth0 --bootproto static --ip $IP --netmask 255.255.255.0 --gateway $GATEWAY --nameserver 172.27.200.215,172.27.201.215 --hostname $HOSTNAME
network --device eth1 --onboot no --bootproto dhcp --hostname $HOSTNAME
rootpw --iscrypted $1$r3I9vk75$JWCGlXqgYd0/55lfg09NJ.
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
# 6  
Old 05-09-2008
Sure, you can make it do anything. If you're looking at building a full ks.cfg from the ground up, you can add more questions and output to a new ks.cfg. If you have an existing template you want to use and only want to chug in a few values look at using "sed" If you only want a response for this section, you can just use a "here document" and just echo the entire ks.cfg out including the user input information for network section. Like I said, you can do pretty much anything, you probably want to look at simple bash examples while you create this script.

Start to create something and post what you have and will continue to help you out.
# 7  
Old 05-15-2008
Basically I want to copy the original kickstart file to a new file call newks.cfg and insert the "network" statement to the 9th line of the newks.cfg

Here is my script, but it doesn't work...it only add to the bottom of the line to newks.cfg. Please help.




#!/bin/sh

NEW_FILE=newks.cfg
OLD_FILE=oldks.cfg

echo -en "What is the IP Address?"
read IP

echo -en "What is the gateway Address?"
read GATEWAY

echo -en "What is the Hostname?"
read HOSTNAME

/bin/cp ${OLD_FILE} ${NEW_FILE}

echo "network --device eth0 --bootproto static --ip ${IP} --netmask 255.255.255.0 --gateway ${GATEWAY} --nameserver 172.27.200.215,10.72.201.215 --hostname ${HOSTNAME}" >> ${NEW_FILE}
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

modify the test file by any script

Hi All the Helpers! I have a text file which looks like input.txt.I would request to please suggest me how can I make this file look like output.txt input.txt VOP 111 0 1 2 DEM 111 0 222 333 444 555 DEM 879 888 987 888 989 DEM 879 888 987 888 989 VOP 118 0 12 3 6... (7 Replies)
Discussion started by: Indra2011
7 Replies

2. Shell Programming and Scripting

Modify the text file by script

Hi All the Helpers! I have a text file which looks like input.txt.I would request to please suggest me how can I make this file look like output.txt input.txt VOP 111 0 1 2 DEM 111 0 222 333 444 555 879 888 987 888 989 VOP 118 0... (2 Replies)
Discussion started by: Indra2011
2 Replies

3. Shell Programming and Scripting

Modify the file by script

Hi All, I have an input file like below, 6984 1225 6989 1220 6994 1214 ... (3 Replies)
Discussion started by: Indra2011
3 Replies

4. Shell Programming and Scripting

Shell script to modify file in several directories

Hi, I want a script shell to automate modifying httpd.conf file for several instances of apache, save httpd.file before changing it, after modifying it and then restart apache. - Replace ServerRoot "xxxx" by ServerRoot "yyyy" of all directories : "... (4 Replies)
Discussion started by: bras39
4 Replies

5. Shell Programming and Scripting

Modify text file using shell script

Hi, I have a text file which is following format - COL VAL ABC 1 ABC 2 ABC 3 ABC 4 ABC 5 My requirement is to search for a particular value (provided by user) in the file and comment the previous entries including that as well. E.g. If I search for number 3, then the output... (6 Replies)
Discussion started by: bhupinder08
6 Replies

6. Shell Programming and Scripting

Need to modify csv-file with bash script

Hi Guys, I need to write a script, that exports the "moz_places" table of the "places.sqlite"-file (firefox browser history) into a csv-file. That part works. After the export, my csv looks like this: ... 4429;http://www.sqlite.org/sqlite.html;"Command Line Shell For... (11 Replies)
Discussion started by: Sebi0815
11 Replies

7. Shell Programming and Scripting

How to modify the contents of file using script

Hi, Can anyone pls let me know how can i modify the file contents thru script. Eg. I have file abc.dat that contains below lines Merge.resync.cycleFlag Merge.resync.logFlag Merge.resync.maxByteRate Merge.resync.maxSearch Merge.resync.rate Merge.resync.tickLog ... (2 Replies)
Discussion started by: sdosanjh
2 Replies

8. Shell Programming and Scripting

Need to modify a file of different username through script.

Hi ! All I want to write a script where, it will open a new shell with a username / pwd and modify a file of same username and exit. example: 1. UserA 2. UserB- FileB ScriptA -> su UserB -> Modify FileB -> Exit ScriptA Can somebody give me a direction , on how to... (2 Replies)
Discussion started by: dashok.83
2 Replies

9. Shell Programming and Scripting

how to modify a file using shell script

Hi, i am using SuonOS and ksh. i need to add data into a file(s.txt) using a shell script. i have to pass 3 parameters and these 3 paramaters should add into the file at end of the file. File s.txt is look like, --------------------------------- column1|column2|column3 ... (1 Reply)
Discussion started by: syamkp
1 Replies

10. Shell Programming and Scripting

Modify script to generate a log file

I've seen several examples of scripts in thise forum about having a script generate a log file. I have a script that is run from cron and that monitors a file system for a specfic filename(s) and then performs some actions on them. Normally I call this script from another script (which the one... (2 Replies)
Discussion started by: heprox
2 Replies
Login or Register to Ask a Question