summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cloudinit/distros/freebsd.py20
-rw-r--r--config/cloud.cfg-freebsd10
2 files changed, 21 insertions, 9 deletions
diff --git a/cloudinit/distros/freebsd.py b/cloudinit/distros/freebsd.py
index 10f9e7e0..c59a074b 100644
--- a/cloudinit/distros/freebsd.py
+++ b/cloudinit/distros/freebsd.py
@@ -238,9 +238,21 @@ class Distro(distros.Distro):
util.logexc(LOG, "Failed to create user %s", name)
raise e
- # TODO:
def set_passwd(self, user, passwd, hashed=False):
- return False
+ cmd = ['pw', 'usermod', user]
+
+ if hashed:
+ cmd.append('-H')
+ else:
+ cmd.append('-h')
+
+ cmd.append('0')
+
+ try:
+ util.subp(cmd, passwd, logstring="chpasswd for %s" % user)
+ except Exception as e:
+ util.logexc(LOG, "Failed to set password for %s", user)
+ raise e
def lock_passwd(self, name):
try:
@@ -394,10 +406,10 @@ class Distro(distros.Distro):
cmd.extend(pkglist)
# Allow the output of this to flow outwards (ie not be captured)
- util.subp(cmd, env=e, capture=False)
+ util.subp(cmd, env=e, capture=False)
def set_timezone(self, tz):
- return
+ distros.set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz))
def update_package_sources(self):
self._runner.run("update-sources", self.package_command,
diff --git a/config/cloud.cfg-freebsd b/config/cloud.cfg-freebsd
index 5ac181ff..be664f5d 100644
--- a/config/cloud.cfg-freebsd
+++ b/config/cloud.cfg-freebsd
@@ -49,10 +49,10 @@ cloud_config_modules:
# - mounts
- ssh-import-id
- locale
-# - set-passwords
-# - package-update-upgrade-install
+ - set-passwords
+ - package-update-upgrade-install
# - landscape
-# - timezone
+ - timezone
# - puppet
# - chef
# - salt-minion
@@ -80,9 +80,9 @@ cloud_final_modules:
system_info:
distro: freebsd
default_user:
- name: beastie
+ name: freebsd
lock_passwd: True
gecos: FreeBSD
groups: [wheel]
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
- shell: /bin/sh
+ shell: /bin/tcsh