2

I have a situation where i have to use the node/chrome and selenium/hub images in different host machines. However problem is although i am linking them in the ansible role as below:

- name: seleniumchromenode container
  docker:
    name: seleniumhubchromenode
    image: "{{ seleniumchromenode_image }}"
    state: "{{ 'started' }}"
    pull: always
    restart_policy: always
    links: seleniumhub:hub

It doesnt get linked , or in other words the hub is not discovering the node. Please let me know if linking works only when the hub and node are within the same host machine.

2 Answers 2

3

Links don't work across machines. You can either specify the IP address/hostname and let it connect through that, or you can use Docker Swarm Mode to deploy your containers - that lets you do something very close to linking (it sets up a mesh network across the swarm nodes, so services can find each other).

Simplest: just pass the hostname in Ansible.

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks, i have managed to solve this as per your suggestion posting the code here if it will help anyone:
2

Below is what finally worked for me. Note that the SE_OPTS is necessary for the node to be able to link successfully to the hub that is on a different host.

- name: seleniumchromenode container
  docker_container:
    name: seleniumhubchromenode
    image: "{{ seleniumchromenode_image }}"
    state: "{{ 'started' }}"
    pull: true
    restart_policy: always
    exposed_ports:
      - "{{seleniumnode_port}}"
    published_ports:
      - "{{seleniumnode_port}}:{{seleniumnode_port}}"
    env:
      HUB_PORT_4444_TCP_ADDR: "{{seleniumhub_host}}"
      HUB_PORT_4444_TCP_PORT: "{{seleniumhub_port}}"
      SE_OPTS: "-host {{seleniumnode_host}} -port {{seleniumnode_port}}"
      NODE_MAX_INSTANCES: "5"
      NODE_MAX_SESSION: "5"

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.