You are not logged in.
I need to install Arch Linux on eleven (11) varied computers. Ideally, I would like to do one installation and then clone it with dd.
Is that the best approach?
I assume more information is needed to give an answer, so here are more details:
Several of the computers are for my use (desktop, two laptops). The others are for co-workers. However, most of those other co-workers can be treated as a single generic user. All can even share the same two work email accounts. All can have the same file access and even the same set of files. (I will have to deal with the one or two exceptions, where the user must actually be a unique user.)
The desktop systems will be used exclusively on one LAN. The laptops will obviously be used when traveling too.
The hardware varies from NUC to workstation. Some machines are UEFI and some are older BIOS. Some have nvidia GPUs, some have onboard Intel graphics. Some are single monitor and two have triple monitors.
Aside from hardware differences, all systems will be set up as similarly as possible. All will be KDE with the same set of applications, locale, languages, browser plugins, bookmarks, printers, NFS mounts, etc. (All systems will have bash installed.) All users can use this same desktop configuration.
The full installation is fairly detailed and tedious due to many customizations -- it takes a long time to finish. (The basic Arch install is the trivial part.) The filesystem will be btrfs. Each machine's local storage will be fully encrypted. However, not much will be stored locally. Almost everything is stored on the LAN's file server.
My goal, if possible, is to reduce repetitious install work and tedious ongoing admin tasks, yet allow us all to enjoy the benefits of a rolling release. All installations should be as uniform as possible and they should be similar or identical to what I use for myself so I don't have to support anything I'm unfamiliar with.
I do not mind doing a complex Arch installation once (for myself), and I don't mind the admin / maintenance upkeep on my own system. I enjoy doing all this -- but only once. I loathe having to repeat it many more times (both installation and maintenance). And I don't have the time.
How can I best leverage one installation to create all the other ten?
I am comfortable with dd. I have heard of CloneZilla but have no experience using it. Should I consider CloneZilla or something else over dd?
Writing, debugging and maintaining an install script seems to have poor cost/benefit. I believe a set of detailed install notes may be more efficient because after these 11 machines are set up, I won't do this again (at least not for many years I hope).
I briefly looked at creating a custom installer (archiso, etc.), but that also doesn't seem to have the right cost/benefit ratio. My impression is that learning how to create a custom iso will consume more time than repeating ten installations from good notes. Am I wrong?
Cloning would seem to be the fastest. But what pitfalls might I be overlooking?
Last edited by MountainX (2016-07-02 22:32:48)
Offline
If you go with cloning, you would need every harddrive to have the same size. Also, the fact that the partition table required for BIOS and EFI are different may create trouble.
Why don't you want to write a script? It does not seem like a large job to me (pacstrap and a long pacman command, followed with a few configuration commands).
Offline
use rsync to copy the original install.
https://wiki.archlinux.org/index.php/Fu … with_rsync
This article is about using rsync to transfer a copy of your "/" tree, excluding a few select folders. This approach is considered to be better than disk cloning with dd since it allows for a different size, partition table and filesystem to be used, and better than copying with cp -a as well, because it allows greater control over file permissions, attributes, Access Control Lists and extended attributes.
Offline
This sounds more like a job for Puppet, Ansible, Chef, etc., ad infinitum...
Offline
This sounds more like a job for Puppet, Ansible, Chef, etc., ad infinitum...
Thanks. I'll look into those. Which one of those is the simplest?
Offline
Ansible is the new hotness, as far as I can tell. Puppet has been around longer. They all do the same thing, pick the one that has the language/syntax that most appeals to you.
Offline
Based on this article, Ansible sounds good:
While there are many popular configuration management systems available for Linux systems, such as Chef and Puppet, these are often more complex than many people want or need. Ansible is a great alternative to these options because it has a much smaller overhead to get started.
Ansible works by configuring client machines from an computer with Ansible components installed and configured.
It communicates over normal SSH channels in order to retrieve information from remote machines, issue commands, and copy files. Because of this, an Ansible system does not require any additional software to be installed on the client computers.
Any computer that you can administer through SSH, you can also administer through Ansible.
Offline
Practically one installation of Arch just about works on any machine. You could run a PXE/diskless workstation setup, and since it uses stateless IP4, it works with one installation. Probably not going to work for what you're doing (especially laptops). If nothing else, you can use PXE to boot all the machines in order to install Arch on them, and use a shared package cache. If you're talking about daily maintainence, ssh to each machine, (it's only 10). Funny how some Microsoft shops will have a complete Active Directory tree going for only 10 computers (way overkill).
I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.
Offline
way overkill
Thanks. I definitely want to keep things simple. But I hope I can improve upon logging into 10 other machines one-by-one via SSH, while still having a simple approach. Ansible sounds like it might work. Fabric might work. But I have no experience with either. I'm open to other ideas.
Offline
nomorewindows wrote:way overkill
Thanks. I definitely want to keep things simple. But I hope I can improve upon logging into 10 other machines one-by-one via SSH, while still having a simple approach. Ansible sounds like it might work. Fabric might work. But I have no experience with either. I'm open to other ideas.
cluster-ssh can execute the same commands on multiple host at the same time, but I'd think that functionality might be limited.
I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.
Offline
I would make a custom script for the base and chroot part (mkinitcpio, grub, partitioning,language,keyboard,mirror etc). See some examples on github I was playing around, use them as startpoint.
A list of various usermade Archlinux installers, note: read the scripts before use them, try them out in vbox.
Edit: These scripts are just for reference,use at your own risk.
https://github.com/i3-Arch/Arch-Installer
https://github.com/plockc/DevOps
https://github.com/EvoLutionLinux/archiso
https://github.com/forflo/archfai
https://github.com/ewancoder/eal
https://github.com/helmuthdu/aui
https://github.com/altercation/archblocks
https://github.com/jdodds/aif
https://github.com/boban-dj/vitamins_arch
https://github.com/Dieterbe/arch-by-han … and_efi.sh
https://github.com/memoryleakx/archfix
https://github.com/kylon/ArchLer/
https://github.com/setkeh/Kickstart/blo … -kickstart
https://bitbucket.org/flexiondotorg/archinstaller
https://github.com/dertasiu/arch-installer
https://github.com/deadhead420/arch-linux-anywhere
Also I used xargs command to install custom packages from some exisiting install. Pacman has some features to extract the package lists.
# xargs -a Packages pacman -S --noconfirm --needed
$ xargs -a Packages.aur packer -S --noconfirm (--auronly)
After that you eventually have to run through all machines to see if they have need for user configs, as you said the systems are different.
some examples using other methods
http://www.rdeeson.com/weblog/157/movin … -rsync.htm
https://bbs.archlinux.org/viewtopic.php … 0#p1595230
Last edited by boban_dj (2016-07-13 21:06:32)
Offline
Please note that none of the above installers are supported methods of installation and are not supported here in any way.
There is nothing wrong with you writing your own installer script to scratch your own itch -- you will be able to fix it when it goes wrong -- but if other people use your script to install, the onus is on you to provide support when it goes wrong, not our community. For all intents and purposes, we view user-written installers as spin-offs of Arch. https://wiki.archlinux.org/index.php/Co … .2Aonly.2A
Sakura:-
Mobo: MSI MAG X570S TORPEDO MAX // Processor: AMD Ryzen 9 5950X @4.9GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD
Making lemonade from lemons since 2015.
Offline
It's a terrible idea to use syncthing for this.
Last edited by whoops (2016-07-13 15:52:52)
Offline
<snip>>
All of those candidates on your list would qualify for the shell hall of shame.
Use a PKGBUILD for the common configuration steps, for example:
Mods are just community members who have the occasionally necessary option to move threads around and edit posts. -- Trilby
Offline
@Alad, all the script or methods are just mentioned to OP as some ideas for kind of automation.
You must read shitty scripts to recognize or write a good one.
Last edited by boban_dj (2016-07-14 16:17:57)
Offline