diff --git a/package/gluon-announce/files/lib/gluon/announce/nodeinfo.d/node_id b/package/gluon-announce/files/lib/gluon/announce/nodeinfo.d/node_id
index 7ff75b2d2f7aac87bfd0ed693c1a97bf53e16a4d..66303f4c779ea43a672d4f20fac307384b15e57f 100644
--- a/package/gluon-announce/files/lib/gluon/announce/nodeinfo.d/node_id
+++ b/package/gluon-announce/files/lib/gluon/announce/nodeinfo.d/node_id
@@ -1 +1 @@
-return require('gluon.sysconfig').primary_mac:gsub(':', '')
+return require('gluon.util').node_id()
diff --git a/package/gluon-announce/files/lib/gluon/announce/statistics.d/node_id b/package/gluon-announce/files/lib/gluon/announce/statistics.d/node_id
index 7ff75b2d2f7aac87bfd0ed693c1a97bf53e16a4d..66303f4c779ea43a672d4f20fac307384b15e57f 100644
--- a/package/gluon-announce/files/lib/gluon/announce/statistics.d/node_id
+++ b/package/gluon-announce/files/lib/gluon/announce/statistics.d/node_id
@@ -1 +1 @@
-return require('gluon.sysconfig').primary_mac:gsub(':', '')
+return require('gluon.util').node_id()
diff --git a/package/gluon-core/files/lib/gluon/upgrade/core/initial/010-gluon-system b/package/gluon-core/files/lib/gluon/upgrade/core/initial/010-gluon-system
index 27b052c445ea2797e795b3a0d649f8d5a6901d28..bf5d78165efe5979c4dc872722a179beb1e8be3e 100755
--- a/package/gluon-core/files/lib/gluon/upgrade/core/initial/010-gluon-system
+++ b/package/gluon-core/files/lib/gluon/upgrade/core/initial/010-gluon-system
@@ -1,13 +1,13 @@
 #!/usr/bin/lua
 
 local site = require 'gluon.site_config'
-local sysconfig = require 'gluon.sysconfig'
+local util = require 'gluon.util'
 local uci = require 'luci.model.uci'
 
 local c = uci.cursor()
 local system = c:get_first('system', 'system')
 
-c:set('system', system, 'hostname', site.hostname_prefix .. '-' .. string.gsub(sysconfig.primary_mac, ':', ''))
+c:set('system', system, 'hostname', site.hostname_prefix .. '-' .. util.node_id())
 c:set('system', system, 'timezone', site.timezone)
 
 c:save('system')
diff --git a/package/gluon-core/files/usr/lib/lua/gluon/util.lua b/package/gluon-core/files/usr/lib/lua/gluon/util.lua
index 8bfc8cdf3314c64b7da46ef7b12db43b5fd2640d..4c067736d5340253027c00194d7ce8aa40264726 100644
--- a/package/gluon-core/files/usr/lib/lua/gluon/util.lua
+++ b/package/gluon-core/files/usr/lib/lua/gluon/util.lua
@@ -25,6 +25,7 @@ end
 
 local os = os
 local string = string
+local require = require
 
 module 'gluon.util'
 
@@ -50,3 +51,8 @@ end
 function unlock(file)
 	exec('lock', '-u', file)
 end
+
+function node_id()
+  local sysconfig = require 'gluon.sysconfig'
+  return string.gsub(sysconfig.primary_mac, ':', '')
+end