SmartOS global zone tweaks
The basic premise behind SmartOS is to provide a netbooted global zone, and then do actual work inside KVM or zone-based virtual machines. This has a number of advantages, not least that it’s trivial to upgrade to a newer release - you simply boot a newer image.
However, the read-only nature of the global zone means that if you want to make changes to the global zone, then they need to be read from permanent storage, rather than making changes as you would normally.
SmartOS creates a /usbkey
file system on stable storage which holds
configuration for the global zone, and an init script
/lib/svc/method/smartdc-config
which sources the file /usbkey/config
for
configuration details. By default this will mostly include details you
provided at install time, however there are additional values you can set to
customise the global zone further.
Here are a couple that I have found, and need for my personal use.
Upload a root authorized_keys file
The root
user’s home directory is provided from the ramdisk, so any changes
you make will be wiped out on the next boot. This is presumably so that newer
images can make changes to the shell rc files, for example to update $PATH
without worrying about all users having to merge these changes.
However, I’m not one for typing in passwords all day, so in order to store a
/root/.ssh/authorized_keys
file you can do this:
The root_authorized_keys_file
variable points to a file in
/usbkey/config.inc
, you can of course change the name if you wish.
Set a keyboard map
By default a US keymap will be loaded for the console, if you want to use a
different one then find a suitable layout in /usr/share/lib/keytables/type_6
(in my case uk
) and then:
Look for more tweaks
As of time of writing (joyent_20120405T204624Z
), these two appear to be the
only tweaks available which aren’t already used by default, however this may
change in the future. To see if there are any newer ones available, you can:
and then have a deeper look into the script to see how they are used ;-)
Run ad-hoc scripts
Note that while you may be tempted to think “aha, it’s just a shell
script, I can use it like rc.local
”, you can’t - it’s explicitly parsed
into variables, and trying to put commands in will just break the init script.
However, the /lib/svc/method/manifest-import
script does import any SMF
manifests it finds in /opt/custom/smf
, so if you want to run arbitrary
scripts, then have a look at
@ryancnelson’s
example
and modify to suit your tastes.
All Posts
- 16 Jul 2015 » Reducing RAM usage in pkgin
- 03 Mar 2015 » pkgsrc-2014Q4: LTS, signed packages, and more
- 06 Oct 2014 » Building packages at scale
- 04 Dec 2013 » A node.js-powered 8-bit CPU - part four
- 03 Dec 2013 » A node.js-powered 8-bit CPU - part three
- 02 Dec 2013 » A node.js-powered 8-bit CPU - part two
- 01 Dec 2013 » A node.js-powered 8-bit CPU - part one
- 21 Nov 2013 » MDB support for Go
- 30 Jul 2013 » What's new in pkgsrc-2013Q2
- 24 Jul 2013 » Distributed chrooted pkgsrc bulk builds
- 07 Jun 2013 » pkgsrc on SmartOS - creating new packages
- 15 Apr 2013 » What's new in pkgsrc-2013Q1
- 19 Mar 2013 » Installing SVR4 packages on SmartOS
- 27 Feb 2013 » SmartOS is Not GNU/Linux
- 18 Feb 2013 » SmartOS development preview dataset
- 17 Jan 2013 » pkgsrc on SmartOS - fixing broken builds
- 15 Jan 2013 » pkgsrc on SmartOS - zone creation and basic builds
- 10 Jan 2013 » Multi-architecture package support in SmartOS
- 09 Jan 2013 » Solaris portability - cfmakeraw()
- 08 Jan 2013 » Solaris portability - flock()
- 06 Jan 2013 » pkgsrc-2012Q4 illumos packages now available
- 23 Nov 2012 » SmartOS and the global zone
- 24 Oct 2012 » Setting up Samba on SmartOS
- 10 Oct 2012 » pkgsrc-2012Q3 packages for illumos
- 23 Aug 2012 » Creating local SmartOS packages
- 10 Jul 2012 » 7,000 binary packages for OSX Lion
- 09 Jul 2012 » 9,000 packages for SmartOS and illumos
- 07 May 2012 » Goodbye Oracle, Hello Joyent!
- 13 Apr 2012 » SmartOS global zone tweaks
- 12 Apr 2012 » Automated VirtualBox SmartOS installs
- 30 Mar 2012 » iptables script for Debian / Ubuntu
- 20 Feb 2012 » New site design
- 11 Jan 2012 » Set up anonymous FTP upload on Oracle Linux
- 09 Jan 2012 » Kickstart Oracle Linux in VirtualBox
- 09 Jan 2012 » Kickstart Oracle Linux from Ubuntu
- 22 Dec 2011 » Last day at MySQL
- 15 Dec 2011 » Installing OpenBSD with softraid
- 21 Sep 2011 » Create VirtualBox VM from the command line
- 14 Sep 2011 » Creating chroots for fun and MySQL testing
- 30 Jun 2011 » Graphing memory usage during an MTR run
- 29 Jun 2011 » Fix input box keybindings in Firefox
- 24 Jun 2011 » How to lose weight
- 23 Jun 2011 » How to fix stdio buffering
- 13 Jun 2011 » Serving multiple DNS search domains in IOS DHCP
- 13 Jun 2011 » Fix Firefox URL double click behaviour
- 20 Apr 2011 » SSH via HTTP proxy in OSX
- 09 Nov 2010 » How to build MySQL releases
- 29 Apr 2010 » 'apt-get' and 5,000 packages for Solaris10/x86
- 16 Sep 2009 » ZFS and NFS vs OSX
- 12 Sep 2009 » pkgsrc on Solaris
- 09 Dec 2008 » Jumpstart from OSX
- 31 Dec 2007 » Set up local caching DNS server on OSX 10.4