Public bug reported:
lsb_release -rd
Description: Ubuntu 18.04 LTS
Release: 18.04
I have a cloud-init file that creates a user and then tries to write a
file in the user's directory:
#cloud-config
# Hostname management
preserve_hostname: False
hostname: pspdr
fqdn: pspdr.local
users:
- name: student
home: /home/student
shell: /bin/bash
primary-group: student
groups: [ admin, sudoers ]
sudo: ALL=(ALL) NOPASSWD:ALL
write_files:
- permissions: '0644'
content: |
export LC_ALL=C
LOCALPY=$(python3 -m site --user-base)
[ -z \"$LOCALPY\" ] || export PATH=$LOCALPY/bin:$PATH
path: /home/student/.bash_aliases
owner: student:student
But the .bash_aliases file is created for root:root because it is
created before the user. Relevant parts in the cloud-init boot log are:
2018-07-13 07:13:54,784 - util.py[DEBUG]: Writing to
/home/student/.bash_aliases - wb: [644] 109 bytes
2018-07-13 07:13:54,785 - handlers.py[DEBUG]: finish:
init-network/config-write-files: FAIL: running config-write-files with
frequency once-per-instance
2018-07-13 07:13:54,785 - util.py[WARNING]: Running module write-files (<module
'cloudinit.config.cc_write_files' from
'/usr/lib/python3/dist-packages/cloudinit/config/cc_write_files.py'>) failed
2018-07-13 07:13:54,785 - util.py[WARNING]: Running module write-files (<module
'cloudinit.config.cc_write_files' from
'/usr/lib/python3/dist-packages/cloudinit/config/cc_write_files.py'>) failed
2018-07-13 07:13:54,785 - util.py[DEBUG]: Running module write-files (<module
'cloudinit.config.cc_write_files' from
'/usr/lib/python3/dist-packages/cloudinit/config/cc_write_files.py'>) failed
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1360, in
chownbyname
uid = pwd.getpwnam(user).pw_uid
KeyError: 'getpwnam(): name not found: student'
and
2018-07-13 07:13:56,177 - stages.py[DEBUG]: Running module users-groups
(<module 'cloudinit.config.cc_users_groups' from
'/usr/lib/python3/dist-packages/cloudinit/config/cc_users_groups.py'>) with
frequency once-per-instance
2018-07-13 07:13:56,178 - handlers.py[DEBUG]: start:
init-network/config-users-groups: running config-users-groups with frequency
once-per-instance
2018-07-13 07:13:56,178 - util.py[DEBUG]: Writing to
/var/lib/cloud/instances/pspdr/sem/config_users_groups - wb: [644] 24 bytes
2018-07-13 07:13:56,180 - helpers.py[DEBUG]: Running config-users-groups using
lock (<FileLock using file
'/var/lib/cloud/instances/pspdr/sem/config_users_groups'>)
2018-07-13 07:13:56,181 - util.py[DEBUG]: Reading from /etc/os-release
(quiet=True)
2018-07-13 07:13:56,181 - util.py[DEBUG]: Read 382 bytes from /etc/os-release
2018-07-13 07:13:56,183 - util.py[DEBUG]: Reading from
/etc/system-image/channel.ini (quiet=True)
2018-07-13 07:13:56,183 - util.py[DEBUG]: Read 0 bytes from
/etc/system-image/channel.ini
2018-07-13 07:13:56,184 - util.py[DEBUG]: Reading from /etc/os-release
(quiet=True)
2018-07-13 07:13:56,184 - util.py[DEBUG]: Read 382 bytes from /etc/os-release
2018-07-13 07:13:56,186 - util.py[DEBUG]: Reading from
/etc/system-image/channel.ini (quiet=True)
2018-07-13 07:13:56,186 - util.py[DEBUG]: Read 0 bytes from
/etc/system-image/channel.ini
2018-07-13 07:13:56,186 - util.py[DEBUG]: Running command ['groupadd',
'sudoers'] with allowed return codes [0] (shell=False, capture=True)
2018-07-13 07:13:56,462 - __init__.py[INFO]: Created new group sudoers
2018-07-13 07:13:56,463 - __init__.py[DEBUG]: created group 'sudoers' for user
'student'
2018-07-13 07:13:56,463 - util.py[DEBUG]: Reading from /etc/os-release
(quiet=True)
2018-07-13 07:13:56,463 - util.py[DEBUG]: Read 382 bytes from /etc/os-release
2018-07-13 07:13:56,464 - util.py[DEBUG]: Reading from
/etc/system-image/channel.ini (quiet=True)
2018-07-13 07:13:56,464 - util.py[DEBUG]: Read 0 bytes from
/etc/system-image/channel.ini
2018-07-13 07:13:56,464 - util.py[DEBUG]: Running command ['groupadd',
'student'] with allowed return codes [0] (shell=False, capture=True)
2018-07-13 07:13:56,701 - __init__.py[INFO]: Created new group student
2018-07-13 07:13:56,702 - __init__.py[DEBUG]: created group 'student' for user
'student'
2018-07-13 07:13:56,703 - __init__.py[DEBUG]: Adding user student
IMHO the execution order should be reversed
** Affects: cloud-init (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1781549
Title:
cloud-init: users should be created before write-files
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1781549/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs