open-port: command not found

Andrew Wilkins andrew.wilkins at canonical.com
Mon Oct 23 09:20:31 UTC 2017


On Mon, Oct 23, 2017 at 5:12 PM Marco Ceppi <marco.ceppi at canonical.com>
wrote:

> On Mon, Oct 23, 2017, 03:59 Andrew Wilkins <andrew.wilkins at canonical.com>
> wrote:
>
>> On Mon, Oct 23, 2017 at 4:20 AM Akshat Jiwan Sharma <
>> akshatjiwan at gmail.com> wrote:
>>
>>> HI,
>>>
>>> I'm trying to manually expose a port on a juju machine. According to this
>>> answer
>>> <https://askubuntu.com/questions/808176/how-to-manually-open-a-port-in-juju>
>>> I should be able to do something like this:-
>>>
>>>  juju run  "open-port 443" --all
>>>
>>> However when I type this in my shell it throws an error
>>>
>>> open-port: command not found
>>>
>>
>> The different between the command you're running, and the one on
>> AskUbuntu, is that you're not passing --unit. When you pass --unit, it runs
>> the command in the context of a unit on the machine. You must be running in
>> the context of a unit to use "hook tools", such as open-port.
>>
>
> It seems weird that `juju run` behaves differently when using --unit and
> --all, is there a particular reason for that? I wouldn't expect the above
> command to fail.
>

`juju run` supports running commands in either a machine or unit context.
Only if you run within a unit context do you get access to hook tools.
Hooks require a unit context.

"--all" means "all machines", so the command runs in a machine context, for
each machine. You could have multiple units on a machine, so we can't
automatically choose a unit. Even if we could, what would be the use case
for doing that? Different machines will run different applications, which
will each have their own firewall requirements.

Cheers,
Andrew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/juju/attachments/20171023/a8b5250d/attachment.html>


More information about the Juju mailing list