SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I'm a big Slackware fan (I came to it via Slax), so when we started thinking of what O/S to use in a big data center we're building, choosing Slackware was a no-brainer. My 3-server prototype is running Slackware x64 -current, and it all works great.
Now I'm planning for when the boss throws the big money switch and I need to deploy Slackware on 50 servers, with as little pain and time spent as possible.
Since there is no up-to-date "kickstart" project, I'm thinking that the best way to do this is to write a bash script to do all the things I did by hand on the three servers I got running. I can prompt for the few things that will differ between servers (ip addr, hostname, etc.).
These servers do not have CD drives, so the way I installed was:
1) Boot from UFD
2) Mount a second (big) UFD with the Slackware distro on it
3) cfdisk the hard drives the way I like them
4) run setup, answer lots of questions
Does it seem feasible to automate steps 3 & 4 with bash?
Hello,
I may have some suggestions for you, but I'm just a simple home user, so they may not be suited for you.
If UFD means USB flash drive, you could try PXE boot (if your servers support that). It loads setup environment via tftp, setup packages can be downloaded using NFS,FTP or HTTP. Just tried it myself - preparing for Slackware 13 install on my home LAN. The upside is - no more physical media.
AFAIK there is a thing called tagfiles, which will help you automate package selection.
I haven't tried this, but couldn't you create a disk image of one of the current servers and clone it on all the 50 servers? dd should do just that. I think that would be easier to automate that doing an actual install. When I upgrade systems, I simply take the boot/root disk out of the old one and put in the new one and off I go. I hate installing OSes.
No experience here either, but I thought I'd show you this, from slackpkg's manpage, which you may find useful if you're not aware of it already:
Quote:
generate-template
This action creates a new template with all official packages that
are installed in your system. The template is stored at
/etc/slackpkg/templates
install-template
This action install the required template in the system. The tem-
plate must be in /etc/slackpkg/templates. If the template
"includes" other templates, all of them needs to be in
/etc/slackpkg/templates. You can disable the "includes" in
slackpkg.conf or in command-line.
I'm sure you know what you want to install on the servers. I suggest that you create 'tagfiles' (tagfile_generator.sh) from the current installed server. Then do a install using tagfiles either from the 'USB Flash Drive' or copy the iso image file to one of your servers then mount it via the 'loop device' or mount the '/slackware' which you can copy from your dvd/ufd source on the remote computer then utilize the 'usb-and-pxe-installers'.
By booting each system with either USB or PXE you can insure the source media to be valid over the number of installs you need to make. I really don't like the image idea for that number of installs. By using source media you will insure a valid install independent of a single install. If you do decide to use the image method then be sure to validate the copy for each install.
Distribution: Slackware (personalized Window Maker), Mint (customized MATE)
Posts: 1,309
Rep:
Quote:
Originally Posted by jesmith
1) Boot from UFD
2) Mount a second (big) UFD with the Slackware distro on it
3) cfdisk the hard drives the way I like them
4) run setup, answer lots of questions
Instead of installing system on all these machines from the scratch do this:
1) Install and configure the system on the first machine.
2) Prepare the copy of the partition table on the first machine:
sfdisk -d /dev/sda > partitions.txt
3) Store backup copy of the system on the first machine:
tar czf backup.tgz *
4) Prepare partition tables on the other machines:
sfdisk --force /dev/sda < partitions.txt
5) Create filesystems on the other machines (consider to perform it with a short script).
6) Restore the system from the backup copy on the other machines:
tar xzf backup.tgz
7) Customize restored systems using short script which modifies these files:
In 2) and 4) I assume all these machines use the same disks. In 3) and 6) I suggest to use rather tar than dd because that method is faster and less inconvenient.
I often work with images of windows-machines and this images are much more data then the size of a tar-file. So I think that it will be faster to copy tar-files over the network. It is one of the advantages of linux that one has not to handle with images. Be aware that Slackware is much more flexible than windows.
If you do any kind of "clone" process, either with dd or with tar or whatever, be sure to take into account /etc/udev/rules.d/, as part of those files are generated by udev if they do not exist and contain information which is machine specific, like the names of the network interfaces based on the MAC address.
For cloning, I'd go with partimage, no doubt. It's available as part of the SystemRescueCd and it can restore disk images over the network very very easily. Good way to transfer the same system to many other machines.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.