diff options
author | Scott Moser <smoser@ubuntu.com> | 2012-08-22 23:48:23 -0400 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2012-08-22 23:48:23 -0400 |
commit | 55f6e4cb09d568d1a0679c41570b5c6d570a16f0 (patch) | |
tree | 9c10edc2a67205b72d5b1fdf4c77b0f4fd8508eb /cloudinit/distros/ubuntu.py | |
parent | 56979d20b9c56c45bfbcaf93bc5f93fa505ece50 (diff) | |
parent | bbbaeca0c375dc166ef8ffe0598d5f384b722c00 (diff) | |
download | vyos-cloud-init-55f6e4cb09d568d1a0679c41570b5c6d570a16f0.tar.gz vyos-cloud-init-55f6e4cb09d568d1a0679c41570b5c6d570a16f0.zip |
add support for creating initial users and groups
Added "userless" mode to cloud-init for handling the creation of the users
and the default user on Ubuntu. The end goal of this is to remove the need
for the 'ubuntu' user in the cloud images and to allow individuals to
choose the default user name.
LP: #1028503
Diffstat (limited to 'cloudinit/distros/ubuntu.py')
-rw-r--r-- | cloudinit/distros/ubuntu.py | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/cloudinit/distros/ubuntu.py b/cloudinit/distros/ubuntu.py index 77c2aff4..4b3f8572 100644 --- a/cloudinit/distros/ubuntu.py +++ b/cloudinit/distros/ubuntu.py @@ -7,6 +7,7 @@ # Author: Scott Moser <scott.moser@canonical.com> # Author: Juerg Haefliger <juerg.haefliger@hp.com> # Author: Joshua Harlow <harlowja@yahoo-inc.com> +# Author: Ben Howard <ben.howard@canonical.com> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, as @@ -21,11 +22,31 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. from cloudinit.distros import debian - from cloudinit import log as logging +from cloudinit import util LOG = logging.getLogger(__name__) class Distro(debian.Distro): - pass + + distro_name = 'ubuntu' + default_user = 'ubuntu' + + def create_user(self, name, **kargs): + + if not super(Distro, self).create_user(name, **kargs): + return False + + if 'sshimportid' in kargs: + cmd = ["sudo", "-Hu", name, "ssh-import-id"] + kargs['sshimportid'] + LOG.debug("Importing ssh ids for user %s, post user creation." + % name) + + try: + util.subp(cmd, capture=True) + except util.ProcessExecutionError as e: + util.logexc(LOG, "Failed to import %s ssh ids", name) + raise e + + return True |