Matty,

I do think that a bug should be opened for it, and I will do so.  Is LP
still the better place to open the bug vs GitHub?

On Wed, Oct 21, 2015 at 5:48 AM, Matthew Williams <
matthew.willi...@canonical.com> wrote:

> Hey Folks,
>
> Is there some action we should take to deal with this - in which case can
> we raise an lp bug for it. Or do we think there's no action needed?
>
> Matty
>
> On Tue, Oct 6, 2015 at 3:55 PM, Matt Bruzek <matthew.bru...@canonical.com>
> wrote:
>
>> Merlijn,
>>
>> Now that I see more of what you are doing I have an alternate suggestion.
>>
>> When you are running 'juju init' use the su command to run as the
>> "ubuntu" user.
>>
>> su - ubuntu -c 'juju init'
>>
>> Using the su command in this way gives a "login" environment for the user
>> "ubuntu".  I wrote a charm (named merlijn) to test this and I saw the error
>> you are reporting:
>> unit-merlijn2-0[2994]: 2015-10-06 14:35:26 INFO
>> unit.merlijn2/0.config-changed logger.go:40 + echo /root
>> unit-merlijn2-0[2994]: 2015-10-06 14:35:26 INFO
>> unit.merlijn2/0.config-changed logger.go:40 /root
>> unit-merlijn2-0[2994]: 2015-10-06 14:35:26 INFO
>> unit.merlijn2/0.config-changed logger.go:40 + juju init
>> unit-merlijn2-0[2994]: 2015-10-06 14:35:26 INFO
>> unit.merlijn2/0.config-changed logger.go:40 error: cannot determine juju
>> home, required environment variables are not set
>>
>> What you were trying to do is create a juju environment for the root user
>> (which is not advised) rather you want to create a juju environment for the
>> normal (ubuntu) user.
>>
>> Using the su command I was able to create a juju configuration file:
>> 2015-10-06 14:47:10 INFO config-changed + echo /root
>> 2015-10-06 14:47:10 INFO config-changed /root
>> 2015-10-06 14:47:10 INFO config-changed + su - ubuntu -c 'juju init'
>> 2015-10-06 14:47:11 INFO config-changed A boilerplate environment
>> configuration file has been written to /home/ubuntu/.juju/environments.yaml.
>>
>> Likewise if you want to create artifacts for the ubuntu user, use the "su
>> - ubuntu" command.
>>
>> Hope that helps.
>>
>>
>>    - Matt Bruzek <matthew.bru...@canonical.com>
>>
>> On Tue, Oct 6, 2015 at 9:30 AM, Cory Johns <cory.jo...@canonical.com>
>> wrote:
>>
>>> Merlijn,
>>>
>>> That is an annoying inconsistency.  It's probably related to debug-hooks
>>> bootstrapping itself via `juju ssh` which logs in as the ubuntu user since
>>> root ssh is disabled, as well as it being unlikely that the actual hook
>>> context is a login shell.
>>>
>>> I imagine the generate-config error is due to the lack of either $HOME
>>> or $JUJU_HOME being set.  I would recommend trying explicitly setting
>>> JUJU_HOME=/home/ubuntu before calling generate-config and see if that works
>>> around it.
>>>
>>> I've also created a bug against juju-core for this:
>>> https://github.com/juju/juju/issues/3449
>>>
>>> On Tue, Oct 6, 2015 at 10:06 AM, Merlijn Sebrechts <
>>> merlijn.sebrec...@gmail.com> wrote:
>>>
>>>>
>>>> Hi Matt
>>>>
>>>>
>>>> Thank you for your response. It was nice seeing you too!
>>>>
>>>> Let me explain my two, maybe related problems a bit more:
>>>>
>>>>
>>>> 1. Home directory is different between debug and non-debug hook context.
>>>>
>>>>    - Using the manual provider.
>>>>    - When deploying a Charm, the install hook is run as the "root"
>>>>    user.* "echo ~" prints "/root".*
>>>>    - When the install hook crashes, I connect to the unit using
>>>>    `debug-hooks` and restart the install hook as you described using  'juju
>>>>    resolved --retry unit/#'. After a while, tmux shows "[unit/0] 0:bash-
>>>>    1:install* " at the bottom and cwd is 
>>>> '/var/lib/juju/agents/unit-0/charm'.
>>>>    As I understand, I am now in the hook context, right? *However,
>>>>    "echo ~" prints "/home/ubuntu".* Even though the current user is
>>>>    root.
>>>>
>>>>
>>>>
>>>> 2. Something causes "juju init" to fail in non-debug hook context and
>>>> succeeds in debug hook context.
>>>>
>>>>
>>>>    - Using manual provider
>>>>    - Executing `juju init` or `juju generate-config` in a hook results
>>>>    in the error message `error: cannot determine juju home, required
>>>>    environment variables are not set`
>>>>    - Executing `juju init` or `juju generate-config` in the hook
>>>>    context using  `debug-hooks` and  'juju resolved --retry unit/#`
>>>>    succeeds.
>>>>
>>>>
>>>> My current workaround is to generate the initial juju config myself and
>>>> not use "juju generate-config". However, I'm not sure if this behavior is
>>>> intentional or a bug.
>>>>
>>>>
>>>> Thanks in advance!
>>>>
>>>>
>>>> 2015-10-06 15:37 GMT+02:00 Matt Bruzek <matthew.bru...@canonical.com>:
>>>>
>>>>> Hell again Merlijn,
>>>>>
>>>>> It was nice to see you at the Charmer summit!  This is a very
>>>>> interesting use of Juju.
>>>>>
>>>>> What you are seeing is what we call a "hook context".  Hooks execute
>>>>> with root authority and have certain environment variables are set. This 
>>>>> is
>>>>> so Juju commands and tools work correctly.  The debug-hooks command puts
>>>>> you into a "hook context" when you run  'juju resolved --retry unit/#'
>>>>>
>>>>> As I wrote all hooks are executed with these environment variables
>>>>> set.  If you are running the install script manually outside of a hook
>>>>> context these environment variables would not be set.
>>>>>
>>>>> There is more information about the environment variables here:
>>>>>
>>>>> https://jujucharms.com/docs/devel/authors-hook-environment
>>>>>
>>>>> However, I don't see "JUJU_HOME" listed on this page. Perhaps you
>>>>> could give me more information on what variable is causing a problem and
>>>>> perhaps your hooks could set those values in the case where the script 
>>>>> runs
>>>>> manually.
>>>>>
>>>>> Cheers!
>>>>>
>>>>>    - Matt Bruzek <matthew.bru...@canonical.com>
>>>>>
>>>>> On Tue, Oct 6, 2015 at 5:07 AM, Merlijn Sebrechts <
>>>>> merlijn.sebrec...@gmail.com> wrote:
>>>>>
>>>>>> Hi
>>>>>>
>>>>>>
>>>>>> I'm developing a Charm that installs the Juju client, among other
>>>>>> things. I'm having some trouble getting this to work. When I use juju
>>>>>> debug-hooks and manually run the install hook, everything works fine.
>>>>>> However, when the hook is executed by Juju automatically, I get strange
>>>>>> errors such as "error: cannot determine juju home, required environment
>>>>>> variables are not set"
>>>>>>
>>>>>> Both the debug-hooks and the normal hook environment execute as root.
>>>>>> However, a lot of env vars are different, like the home dir.
>>>>>>
>>>>>> Debug-hooks:
>>>>>>     echo ~ : /home/ubuntu
>>>>>> hook env:
>>>>>>     echo ~: /root
>>>>>>
>>>>>> Is this intentional? This causes a lot of bugs that cannot be
>>>>>> reproduced by debug-hooks. Is there a way to solve  "error: cannot
>>>>>> determine juju home, required environment variables are not set"?
>>>>>>
>>>>>>
>>>>>>
>>>>>> Kind regards
>>>>>> Merlijn Sebrechts
>>>>>>
>>>>>> --
>>>>>> Juju mailing list
>>>>>> Juju@lists.ubuntu.com
>>>>>> Modify settings or unsubscribe at:
>>>>>> https://lists.ubuntu.com/mailman/listinfo/juju
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Juju mailing list
>>>> Juju@lists.ubuntu.com
>>>> Modify settings or unsubscribe at:
>>>> https://lists.ubuntu.com/mailman/listinfo/juju
>>>>
>>>>
>>>
>>> --
>>> Juju mailing list
>>> Juju@lists.ubuntu.com
>>> Modify settings or unsubscribe at:
>>> https://lists.ubuntu.com/mailman/listinfo/juju
>>>
>>>
>>
>> --
>> Juju mailing list
>> Juju@lists.ubuntu.com
>> Modify settings or unsubscribe at:
>> https://lists.ubuntu.com/mailman/listinfo/juju
>>
>>
>
-- 
Juju mailing list
Juju@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju

Reply via email to