New nodes getting local 404 error trying to download open_vm_tools.tcz.md5.txt

109 views
Skip to first unread message

Chris McClimans

unread,
Nov 10, 2014, 1:23:25 PM11/10/14
to hanlon-...@googlegroups.com
I'm building the debug-image iso and am able to login, but the node isn't successfully registering.

TLDR; /tmp/hns_mk_control_server.rb.ouput contains:
```
/usr/bin/tce-load: line 204: can't create /tmp/appserr: Permission denied
Connecting to localhost:2157 (127.0.0.1:2157)
wget: server returned error: HTTP/1.1 404 Not Found 
md5sum: open_vm_tools.tcz.md5.txt: No such file or directory
/usr/bin/tce-load: line 302: can't create /tmp/appserr: Permission denied
```

I'm guessing I'm still having trouble with the build, so I'll document what I'm doing. I suspect something with open_vm_tools needing to be included but my build not having the toolchain to build it.

I've found using fakeroot is required since we run things that use rubygems, and sudo is a bad idea anyway but that doesn't mean I didn't try it and take a while figuring out why things didn't work correctly... unless you build as root sudo will not work... lesson learned: used fakeroot. Full build logs at https://gist.github.com/hh/2c6bf30992dc133a41fb

Logging into a fresh node running the new hnl_mk gives the following with no communications back to the hanlon server.

```
root@mk002590E24CC2:/tmp# cat mk-version.yaml 
---
mk_version: 2.0.0.105

root@mk002590E24CC2:/tmp# ls -lrt /tmp
total 28
-rw-r--r--    1 root     root             9 Oct  6 03:50 first_checkin.yaml
drwxrwxr-x    3 root     staff           60 Nov 10 09:42 tce
-rw-r--r--    1 root     root             0 Nov 10 09:42 k5_skip
drwxrwxr-x   33 root     staff          660 Nov 10 09:42 tcloop
-rw-r--r--    1 root     root             0 Nov 10 09:42 hnl_mk_gem_mirror.out
-rw-r--r--    1 root     root             5 Nov 10 09:42 hanlonServerPort.addr
-rw-r--r--    1 root     root             8 Nov 10 09:42 hanlonServerIP.addr
-rw-r--r--    1 root     root            21 Nov 10 09:42 hanlonServerBaseUri.addr
-rw-r--r--    1 root     root           637 Nov 10 09:43 mk_conf.yaml
-rw-r--r--    1 root     root             0 Nov 10 09:43 hnl_web_server.out
-rw-r--r--    1 root     root             0 Nov 10 09:43 hnl_mk_tce_mirror.out
-rw-r--r--    1 root     root          1140 Nov 10 09:43 hnl_mk_control_server.rb.output
drwxr-xr-x    4 root     root           200 Nov 10  2014 gem-mirror
drwxr-xr-x    3 root     root           100 Nov 10  2014 tinycorelinux
drwxr-xr-x    3 root     root            80 Nov 10  2014 builtin
-rw-rw-rw-    1 root     root             0 Nov 10  2014 aberr
-rw-r--r--    1 root     root            26 Nov 10  2014 mk-version.yaml

root@mk002590E24CC2:/tmp# cat mk_conf.yaml 
---
mk_kmod_install_list_uri: /kmod-install-list
mk_checkin_interval: 60
mk_tce_install_list_uri: /tce-install-list
mk_checkin_skew: 5
mk_fact_excl_pattern: (^facter.*$)|(^id$)|(^kernel.*$)|(^memoryfree$)|(^operating.*$)|(^osfamily$)|(^path$)|(^ps$)|(^ruby.*$)|(^selinux$)|(^ssh.*$)|(^swap.*$)|(^timezone$)|(^uniqueid$)|(^uptime.*$)|(.*json_str$)
mk_log_level: Logger::DEBUG
mk_gemlist_uri: /gems/gem.list

root@mk002590E24CC2:/tmp# /usr/local/bin/hnl_mk_init.rb 
Looking for network, this is attempt #1
Network is available, proceeding...
Discovered Hanlon Server at: 1.1.1.1:8026/http://1.1.1.1:8026/
MK Loaded: v2.0.0.105

root@mk002590E24CC2:/tmp# cat hnl_mk_control_server.rb.output 
hnl_mk_control_server.rb: process with pid 2605 started.
/usr/local/lib/ruby/2.0.0/hanlon_microkernel/hnl_mk_registration_manager.rb:16: warning: already initialized constant HNL_MK_LOG_PATH
/usr/local/lib/ruby/2.0.0/hanlon_microkernel/hnl_mk_hardware_facter.rb:15: warning: previous definition of HNL_MK_LOG_PATH was here
/usr/local/lib/ruby/2.0.0/hanlon_microkernel/hnl_mk_kernel_module_manager.rb:25: warning: already initialized constant HNL_MK_LOG_PATH
/usr/local/lib/ruby/2.0.0/hanlon_microkernel/hnl_mk_registration_manager.rb:16: warning: previous definition of HNL_MK_LOG_PATH was here
/usr/local/bin/hnl_mk_control_server.rb:142: warning: already initialized constant HNL_MK_LOG_PATH
/usr/local/lib/ruby/2.0.0/hanlon_microkernel/hnl_mk_kernel_module_manager.rb:25: warning: previous definition of HNL_MK_LOG_PATH was here
/usr/bin/tce-load: line 204: can't create /tmp/appserr: Permission denied
Connecting to localhost:2157 (127.0.0.1:2157)
wget: server returned error: HTTP/1.1 404 Not Found 
md5sum: open_vm_tools.tcz.md5.txt: No such file or directory
/usr/bin/tce-load: line 302: can't create /tmp/appserr: Permission denied

```

tjmcs1

unread,
Nov 12, 2014, 11:10:18 AM11/12/14
to hanlon-...@googlegroups.com
Hi Chris;

I'll reach out to you offline to discuss this, but I'm fairly certain this is related to changes we made in the last major Microkernel release to the process we follow when building Microkernel instances.  Previously, we had a couple of additional overlay files that we used to add in additional extensions and kernel modules that were not available either as Debian Wheezy packages or Tiny Core Extensions (TCEs or 'tcz' files) in one of the standard online repositories.  To make things simpler for our users, we decided it would just be simpler if we grabbed those additional extensions (or kernel modules) directly from the local filesystem.  As such, two new flags were added to the build-bundle-file.sh script.  As an example of how they are used, here's the command I used to build the latest 'debug' release of the Microkernel that was posted in the releases area of the Hanlon-Microkernel project:

./build-bundle-file.sh -b additional-build-files/builtin-extensions.lst -m additional-build-files/mirror-extensions.lst -a additional-build-files/addtnl-driver-mods.lst -l additional-build-files/local-extensions.lst -d

where the two new flags ('-a' and '-l') in that command are used to point to a file listing additional drivers that should be loaded during the kernel boot process and a file listing additional (local) extensions that should be loaded during the boot process.  For completeness, here are those two files (in detail) from my system:

$ cat additional-build-files/addtnl-driver-mods.lst
extra-driver-files/be2net.tcz be2net.ko net/ethernet/emulex/benet/be2net.ko.gz
extra-driver-files/ipmi-kernel-mods.tcz ipmi_msghandler.ko char/ipmi/ipmi_msghandler.ko.gz
extra-driver-files/ipmi-kernel-mods.tcz ipmi_si.ko char/ipmi/ipmi_si.ko.gz
extra-driver-files/ipmi-kernel-mods.tcz ipmi_devintf.ko char/ipmi/ipmi_devintf.ko.gz
extra-driver-files/ipmi-kernel-mods.tcz ipmi_poweroff.ko char/ipmi/ipmi_poweroff.ko.gz
extra-driver-files/ipmi-kernel-mods.tcz ipmi_watchdog.ko char/ipmi/ipmi_watchdog.ko.gz

and

$ cat additional-build-files/local-extensions.lst
extra-extensions/open-vm-tools-modules-3.8.13-tinycore.tcz
extra-extensions/OpenIPMI-2.0.21.tcz
extra-extensions/freeipmi-1.4.5.tcz
extra-extensions/ipmitool-1.8.14.tcz

As you can see, the first file contains three columns; the first is the location of the file containing the driver (this file is assumed to be either a Debian Wheezy package or a 'tcz' file containing the driver) on the local (build) system, the second is the name of the file containing the kernel module in the file containing the driver, and the third is the location where it should be installed in the Microkernel (relative to the standard directory used for all kernel modules).  The second file is much simpler; it's just a list of the files on the local filesystem containing additional extensions that need to be installed during the kernel boot process.  These files will be included in the bundle that you build and, from there, included as part of the Microkernel ISO during the bundle build process.

If you were paying close attention to the files listed above, you'll see that each of those files (and their MD5 checksum files) are included in the releases area for the latest Hanlon-Microkernel release.  So you should be able to download them to your own local directory and, from there, build your own versions of these two files (with your own path to wherever you saved those files) that you can use to build your own version of the latest Hanlon-Microkernel.  My apologies for the fact that the current documentation for this bundle build process is a bit out of date, hopefully this response will work as a stopgap sort of thing until I have a chance to update the Hanlon-Microkernel wiki with the latest updates to this process (I thought I had, but I must have missed something).

Cheers,

Tom
Reply all
Reply to author
Forward
0 new messages