I have no experience with BSD instances, but could it be a PATH issue? Can you try setting the PATH manually?
On 28 January 2016 at 09:13, Klemen Ferjančič <imba...@gmail.com> wrote: > It seems I've hit a wall. > > 1. For some reason, even when disabling init script on template builder, > it still tries to run it. So I decided to skip it for now. > > .wrapInInitScript(false).runScript(getBootInstructions(os)).runAsRoot(true); > > 2. Running as root and disabling sudo does not actually remove sudo. > Taking a closer look at RunScriptOnNodeUsingSsh.java->execAsRoot, it > seems that sudo is always run in front. > > opts.wrapInInitScript(false).runAsRoot(true).overrideAuthenticateSudo(false) > .overrideLoginCredentials(getLoginForCommandExecution(os)); > > Result: > `sudo sh <<'RUN_SCRIPT_AS_ROOT_SSH' ... > > which means I can't run as root. > > 3. So I decided to run as regular user (not root and not sudo) and just > switch to root manually. Works if I do it by hand: > su root > pkg install -y sudo > pkg install -y bash > > Opts: > .wrapInInitScript(false).runAsRoot(false) > .overrideLoginCredentials(getLoginForCommandExecution(os)) > > But for some reason, it seems that jclouds puts me in some weird > restricted shell where I can't execute anything. > su returns "Sorry" and trying to run a simple command like "whoami" > results in: not found. It's clear to me that this is not the same > environment as the one > when I manually ssh into the machine so what is the difference? > > > Best regards, Klemen > > On 27. 01. 2016 11:06, Ignasi Barrera wrote: >> No. You can use the one in the template builder to run the first one and >> the run the rest by calling computeService.runScriptOnNode afterhaving >> created the node. >> >> El 27/1/2016 11:03 a. m., "Klemen Ferjančič" <imba...@gmail.com >> <mailto:imba...@gmail.com>> escribió: >> >> If I add additional scripts on top of template builder are they going to >> be executed in order or is the solution more complex than this? >> >> Something like: >> >> templateBuilder.wrapInInitScript(false).runScript(installBashAndSudo()) >> .wrapInitScript(true).runScript(everythingElse()) >> >> On 27. 01. 2016 10:56, Ignasi Barrera wrote: >> > Yes, the RunScriptOptions provide options to run the scripts as root, >> > and also to explicitly disable sudo. >> > >> > Currently the wrapper script requires bash, so you'll have to install >> > it first if you need to use it. You could split the runscript in two >> > operations: a first one with the wrapInitScript(false) to just install >> > bash, and a second one to run the desired script. >> > >> > That wrapper script, as said, contains several helpers to let jclouds >> > query the status of the script execution: see if it is still running, >> > allow to abort it, etc. If you are running scripts that take time, I'd >> > recommend you run them with the wrapper script. >> > >> > I. >> > >> > On 27 January 2016 at 10:48, Klemen Ferjančič <imba...@gmail.com >> <mailto:imba...@gmail.com>> wrote: >> >> Good advice, I suspect I know what is going on. >> >> >> >> Home directory contains bootstrap and /tmp/init-bootstrap exists. >> >> However, if I run ./init-bootstrap it says "not found". I checked the >> >> init script and it seems that bash is expected to exist on the system >> >> (#!/bin/bash), however, bash does not come preinstalled on FreeBSD. I >> >> could install bash with runScript but I don't think personal >> script is >> >> executed before the init one? Another interesting note: sudo is not >> >> preinstalled either so I probably need to run my script as root. I'll >> >> play around with this and see what I can do. >> >> >> >> Code snippet: >> >> >> >> templateBuilder.osFamily(OsFamily.FREEBSD); >> >> templateBuilder.imageId(REGION + "/ami-9f5549f3"); >> >> EC2TemplateOptions o = >> EC2TemplateOptions.Builder.keyPair("mykeypair") >> >> >> >> .overrideLoginCredentials(getLoginForCommandExecution(os)).runScript(getBootInstructions(os)); >> >> templateBuilder.locationId(REGION); >> >> templateBuilder.hardwareId(INSTANCE); >> >> templateBuilder.options(o); >> >> >> >> >> >> On 27. 01. 2016 10:23, Ignasi Barrera wrote: >> >>> Hi Klemen, >> >>> >> >>> jclouds generates and uploads that script to the node. It is a >> wrapper >> >>> script that provides some helpers to get the status of the >> configured >> >>> script, and to properly capture the output, stderr, and make it >> >>> possible to abort its execution. >> >>> >> >>> After the failure, can you log in to the instance and see which >> files >> >>> do you have in the user's home directory and in /tmp? >> >>> >> >>> You can also disable the wrapper script by configuring the >> >>> "wrapInitScript(false)" in the RunScriptOptions, and see if the >> >>> problem persists. >> >>> >> >>> Could you also share a small code snippet of the code you're >> using to >> >>> bootstrap the node? >> >>> >> >>> I. >> >>> >> >>> On 27 January 2016 at 09:39, Klemen Ferjančič <imba...@gmail.com >> <mailto:imba...@gmail.com>> wrote: >> >>>> Hi >> >>>> >> >>>> When I create a new Ec2 instance with FreeBSD private AMI, the >> >>>> init-bootstrap fails to run. The instance is created and runs >> normally, >> >>>> but the error also fails my own runScript so I'd like to >> resolve it. >> >>>> >> >>>> 00:32:27,588 ERROR [jclouds.compute] (user thread 0) << problem >> >>>> customizing node(eu-central-1/i-22cd4c9e): : >> >>>> java.lang.IllegalStateException: error running [/tmp/init-bootstrap >> >>>> init] as ec2-user@52.59.247.117 >> <mailto:ec2-user@52.59.247.117>; returnVal !=0: >> >>>> {output=/tmp/init-bootstrap: not found >> >>>> , error=, exitStatus=127) >> >>>> >> >>>> Full stacktrace: http://pastebin.com/xabqprs5 >> >>>> >> >>>> 1. Is /tmp/init-bootstrap supposed to already exist on the >> image or is >> >>>> this a script that jclouds uploads to the node? If the latter, >> I assume >> >>>> there is a problem with script not being uploaded in the first >> place? No >> >>>> error indicates this though. >> >>>> 2. What does this script actually do? Is it possible to disable it? >> >>>> >> >>>> Best regards, Klemen >> >>>> >> >>>> >> >> >> >