(Please note that this question is about LXC 1.x, whereas this one is about LXC 2.x/LXD)
I scoured the web for an answer to this one, but couldn't come up with any reasonably non-hacky answer.
What I am looking for is an approach to fashion an existing template a way I'd like to. In particular what I'm after is to customize the upstream Ubuntu cloud image by making various changes in its root FS and adding/changing configuration.
So my current approach is to lxc launch ubuntu:lts CONTAINER
and then use lxc exec CONTAINER -- ...
to run a script I authored (after pushing it into the container) to perform my customizations.
What I get using this approach is a reasonably customized container. Alas, there's a catch. The container at this point has been primed by cloud-init
and it's a container instance, not an image/template.
So this is where I'm at a loss now. What I would need is to turn my container back into an image (should be doable by using lxc publish
) and either undo the changes done to it by cloud-init
or at least "cock" cloud-init
again so it triggers the next time the image is used as source for lxc init
or lxc launch
. Alternatively, maybe there's a way to completely disable cloud-init
when I lxc launch
from the upstream image?
Is there an authoritative way? Even though I looked through all kinds of documentation, including the Markdown documentation in the LXD repository as well as the blog series by Stéphane Graber (LXD project lead), especially [5/12], I was unable to find a suitable approach. Perhaps I just missed it (that's to say, I'll be happy to read through more documentation if you know some that describes what I need).
LXC version used is 2.20 (i.e. I'm using the LXD frontend).