[lxc-users] LXD 2.4.1 - Trouble with Cloud Init

Neil Bowers neil_bowers at glasken.com
Fri Jan 27 12:38:05 UTC 2017


Thank you so much - this has been bugging me for weeks.

I do have a question, however, in regards to the 'write_files' directive -
since this runs before users are created (and while I understand that
having it able to affect more of boot is useful, but it's not documented
like that anywhere I can find), if I were to create the file in `/etc/skel`
instead, would any created users pick it up from there?  Or is that ignored
when creating users with cloud-init ?

Essentially I'm just trying to set up a simple way to put up and tear down
containers that will have all of my defaults in place from the start.

Neil

On Thu, Jan 26, 2017 at 2:00 PM, Serge E. Hallyn <serge at hallyn.com> wrote:

> Hi,
>
> Scott Moser was kind enough to provide this reply:
>
> (http://paste.ubuntu.com/23870807/)
>
> #!/bin/sh
>
> ##
> ## This is Scott Moser in reply to
> ##   https://lists.linuxcontainers.org/pipermail/lxc-users/2017-
> January/012766.html
> ## The user-data you have has some problems, and is stopping it from
> working
> ## as you desire.  This script can be executed to launch an instance
> ## with the user-data included inside it, and will show it functioning
> ## correctly.
> ##
> ## I did not test, but assume that updating profile accordingly will get
> you
> ## the behavior you're after.
> ##
> ## Scott
>
> ## changes from your user-data
> # 'sudo' is a string, you had it as a list.
> # 'write_files':
> #    - changed path to /root/ (there is no '~' in this scenario, cloud-init
> #      could possibly interpret that as the default user, but it does not.
> #    - files are created before users are added... write files runs early
> #      that means it can affect more of boot, but means it can't write
> #      files owned by users who do not yet exist.
> #      there is a bug/feature request for this, we could add a
> #      'write_files_late' module that ran later and could then populate
> #      created users directories.
> #    - you had bad yaml in one part, the 'content' was as if it intended
> #      to be included in the previous 'path', but was a new list entry.
> #      basically that 'content' had no 'path'.
> #
> # with regard to no errors, you can see the issues with
> #  journalctl --unit=cloud-init.service
> # look for 'WARN'.  Also /run/cloud-init/result.json should report errors.
> #
> # These should get written to /var/log/cloud-init.log, but in yakkety
> # you wont see them there yet. (bug 1643990)
>
> udata=$(cat <<"EOF"
> #cloud-config
> users:
>   - name: dood
>     gecos: Mr Dood
>     ssh_authorized_keys:
>       - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3I
> 7VUf2l5gSn5uavROsc5HRDpZdQueUq5ozemNSj8T7enqKHOEaFoU2VoPgGEW
> C9RyzSQVeyD6s7APMcE82EtmW4skVEgEGSbDc1pvxzxtchBj78hJP6Cf5TCMFSXw+
> Fz5rF1dR23QDbN1mkHs7adr8GW4kSWqU7Q7NDwfIrJJtO7Hi42GyXtvEONHb
> iRPOe8stqUly7MvUoN+5kfjBM8Qqpfl2+FNhTYWpMfYdPUnE7u536WqzFmsaqJc
> tz3gBxH9Ex7dFtrxR4qiqEr9Qtlu3xGn7Bw07/+i1D+ey3ONkZLN+
> LQ714cgj8fRS4Hj29SCmXp5Kt5/82cD/VN3NtHw== smoser at brickies
>     sudo: 'ALL=(ALL) NOPASSWD:ALL'
>     groups: sudo
>     shell:  /bin/bash
> write_files:
>   - owner:  root:root
>     path: /root/.bash_aliases
>     content: |
>       alias dir='ls -Alph --color=auto'
> apt_proxy: "http://192.168.1.2:8000"
> EOF
> )
>
> name=$1
> rel=${2:-yakkety}
> lxc launch "ubuntu-daily:$rel" "$name" "--config=user.user-data=$udata"
>
> -serge
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxcontainers.org/pipermail/lxc-users/attachments/20170127/7d7b7f79/attachment.html>


More information about the lxc-users mailing list