Hi Nowaker, I am the one with the images, not Yamakaky:-) On Sun, Sep 14, 2014 at 11:15 PM, Nowaker <enwukaer@gmail.com> wrote:
What are these significant changes more than just the pacman database that would make users go through trouble? In #41863 I see three parts:
- move /var/lib/pacman/local/ to /usr - move the default pacman.conf and mirrorlist to /usr/share - provide tmpfiles.d to copy those files to /etc
If I'm not mistaken, /usr/share and tmpfiles.d are really trivial and wouldn't affect users in any way. That'd be a few additional files somewhere in the filesystem without any effect on existing machines. Or I'm wrong?
Nope, these two are really minor tasks. I do not think it makes sense to split these up.
I then store the store the physical machine images in ostree (I am currently changing that to the subvolume approach systemd recently suggested).
Yamakaky, can you please provide some more info on this?
And generally, could you show me your workflow - the shell commands in particular? That would explain things better than thousands of words. :-)
I have everything in a git repo, and that repo can basically recreate (almost) all my machines from scratch -- minus the home directories and a couple of server files I do backups off. I think you will understand that I do not want that repository public:-) If there is interest I can put "splitting the actual scripts from the system configuration" onto my todo list. Basically (almost) all my machines are created from scratch each night. The simplified version is this: For each machine: 1) Create a temp directory T 2) mount a new usr:something:new-snapshot btrfs subvolume on $T/usr 3) Run pacstrap to install all packages defined for that system into $T, making sure the package DB ends in $T/usr/lib/pacman/db 4) Apply any configuration changes (create users, whatever) 5) Move $T/etc to $T/usr/share/factory/etc 6) Copy kernel and initrd to $T/usr/somewhere Now the new arch snapshot is ready to be used:-). I only need to copy that on the target machine it is intended for (using btrfs send/receive, but that is still untested), copy the kernel/initrd from that snapshot into /boot and create a new boot loader entry for the root:my-arch:foo root subvolume I already have on that machine with the new usr:something:new-snapshot subvol as its /usr. Reboot. As part of every reboot something like a "factory reset" happens (I wipe /etc and copy the stuff in the factory directory during early boot), so that /etc is always in the state it was intended to be. To get back to an earlier usr-snapshot I just reboot again and select one of the older bootloader entries. Does that help? Actually the process currently still involves ostree to store/distribute and install directory images. I did describe the process I am currently moving to, even though it is not yet fully tested. It is a lot simpler to describe. PS: Yeap, my base systems are pretty static: I do want my basic setup to always work. The mutable parts of my system are the chroots I develop in. I can create those with the exact same system as my base systems, but I can also just run pacman in there to add more stuff. Best Regards, Tobias