Você não sabe o endereço IP antes que a Marathon encontre um host adequado para a tarefa. No entanto, no momento do lançamento de uma tarefa no escravo Mesos, algumas propriedades são armazenadas em variáveis ENV:
...
ULIMIT=-n 8192
HOST=slave01.example.com
MESOS_SLAVE_PID=slave(1)@192.168.1.2:5051
MARATHON_APP_RESOURCE_CPUS=0.1
MESOS_TASK_ID=dummy.eb6e1d9a-c2f0-11e5-a58b-00259057db2f
Se você está bem com o nome do host, você pode usar a variável HOST
ou extrair o endereço IP de MESOS_SLAVE_PID
.
Se você iniciar mesos-slave
com --ip=192.168.1.2
, a variável HOST
e LIBPROCESS_IP
ENV será configurada para o endereço do host. Para o pacote mesosfera:
echo "192.168.1.2" > /etc/mesos-slave/ip
e reinicie o escravo.
Outra opção é resolver o IP do agente dentro do contêiner do Docker:
AGENT_IP=$(getent hosts ${HOST} | awk '{ print $1 }')