(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).