Show More
@@ -36,7 +36,11 b' except socket.gaierror:' | |||||
36 |
|
36 | |||
37 | PUBLIC_IPS = [] |
|
37 | PUBLIC_IPS = [] | |
38 | try: |
|
38 | try: | |
39 |
|
|
39 | hostname = socket.gethostname() | |
|
40 | PUBLIC_IPS = socket.gethostbyname_ex(hostname)[2] | |||
|
41 | # try hostname.local, in case hostname has been short-circuited to loopback | |||
|
42 | if not hostname.endswith('.local') and all(ip.startswith('127') for ip in PUBLIC_IPS): | |||
|
43 | PUBLIC_IPS = socket.gethostbyname_ex(socket.gethostname() + '.local')[2] | |||
40 | except socket.gaierror: |
|
44 | except socket.gaierror: | |
41 | pass |
|
45 | pass | |
42 | else: |
|
46 | else: |
@@ -213,7 +213,7 b' need to use ssh tunnels to connect clients from your laptop to it. You will als' | |||||
213 | probably need to instruct the controller to listen for engines coming from other work nodes |
|
213 | probably need to instruct the controller to listen for engines coming from other work nodes | |
214 | on the cluster. An example of ipcontroller-client.json, as created by:: |
|
214 | on the cluster. An example of ipcontroller-client.json, as created by:: | |
215 |
|
215 | |||
216 |
$> ipcontroller --ip= |
|
216 | $> ipcontroller --ip=* --ssh=login.mycluster.com | |
217 |
|
217 | |||
218 |
|
218 | |||
219 | .. sourcecode:: python |
|
219 | .. sourcecode:: python |
@@ -33,15 +33,28 b' the ``ip`` argument on the command-line, or the ``HubFactory.ip`` configurable i' | |||||
33 | :file:`ipcontroller_config.py`. |
|
33 | :file:`ipcontroller_config.py`. | |
34 |
|
34 | |||
35 | If your machines are on a trusted network, you can safely instruct the controller to listen |
|
35 | If your machines are on a trusted network, you can safely instruct the controller to listen | |
36 |
on all |
|
36 | on all interfaces with:: | |
37 |
|
37 | |||
38 | $> ipcontroller --ip=* |
|
38 | $> ipcontroller --ip=* | |
39 |
|
39 | |||
|
40 | ||||
40 | Or you can set the same behavior as the default by adding the following line to your :file:`ipcontroller_config.py`: |
|
41 | Or you can set the same behavior as the default by adding the following line to your :file:`ipcontroller_config.py`: | |
41 |
|
42 | |||
42 | .. sourcecode:: python |
|
43 | .. sourcecode:: python | |
43 |
|
44 | |||
44 | c.HubFactory.ip = '*' |
|
45 | c.HubFactory.ip = '*' | |
|
46 | # c.HubFactory.location = '10.0.1.1' | |||
|
47 | ||||
|
48 | ||||
|
49 | .. note:: | |||
|
50 | ||||
|
51 | ``--ip=*`` instructs ZeroMQ to listen on all interfaces, | |||
|
52 | but it does not contain the IP needed for engines / clients | |||
|
53 | to know where the controller actually is. | |||
|
54 | This can be specified with ``--location=10.0.0.1``, | |||
|
55 | the specific IP address of the controller, as seen from engines and/or clients. | |||
|
56 | IPython tries to guess this value by default, but it will not always guess correctly. | |||
|
57 | Check the ``location`` field in your connection files if you are having connection trouble. | |||
45 |
|
58 | |||
46 | .. note:: |
|
59 | .. note:: | |
47 |
|
60 | |||
@@ -718,7 +731,11 b' through the login node, an example :file:`ipcontroller_config.py` might contain:' | |||||
718 | c.HubFactory.location = '10.0.1.5' |
|
731 | c.HubFactory.location = '10.0.1.5' | |
719 | # or to get an automatic value, try this: |
|
732 | # or to get an automatic value, try this: | |
720 | import socket |
|
733 | import socket | |
721 |
|
|
734 | hostname = socket.gethostname() | |
|
735 | # alternate choices for hostname include `socket.getfqdn()` | |||
|
736 | # or `socket.gethostname() + '.local'` | |||
|
737 | ||||
|
738 | ex_ip = socket.gethostbyname_ex(hostname)[-1][-1] | |||
722 | c.HubFactory.location = ex_ip |
|
739 | c.HubFactory.location = ex_ip | |
723 |
|
740 | |||
724 | # now instruct clients to use the login node for SSH tunnels: |
|
741 | # now instruct clients to use the login node for SSH tunnels: |
General Comments 0
You need to be logged in to leave comments.
Login now