Estou tentando implantar um serviço do Docker no swarm, mas sempre acabando com o contêiner em execução no meu host local (aquele que uso como gerenciador de enxame do docker) e sem serviço
Aqui está minha configuração:
Eu tenho um enxame Docker (v. 1.12.1) de três nós que inclui um host em execução como gerenciador e dois nós trabalhadores em execução no CentOS 7. No nó gerenciador (localhost), eu executo o Ansible (v. 2.1.1.0) playbook e o enxame já está configurado e está sendo executado
Swarm: active
NodeID: d9h5xa832ax7wzeq8q44fjld3
Is Manager: true
ClusterID: 9cztoin3gy2ntbwehsmrkjuxi
Managers: 1
Nodes: 3
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Node Address: 10.25.190.209
Começando com um manual que tenha este código
- hosts: localhost
name: Run JMeter test
vars_files:
- user.config.yml
vars:
execute_tpcds_test : "{{ run_tpcds_test }}"
roles:
- { role: run_jmeter, when: execute_tpcds_test is defined and execute_tpcds_test ==1 }
Que chama esse papel:
- name: Deploy tpcds_tpg service to swarm
docker_service:
project_name: tpcds-tpg
definition:
version: '2'
services:
run_tests:
image: 'pbench/tpcds_tpg'
volumes:
- /opt/pbench/run_output/
command: ./run_jmeter.sh "{{jmeter_output_dir}}"
register: output
- debug: var=output
Quando executo ansible-playbook ./site.yml
, acabo com um contêiner em execução. Fazendo docker ps -a
exibe
[pdo@sdl02133 tpcds-tpg]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fef245b41365 pbench/tpcds_tpg "./run_jmeter.sh /opt" 21 seconds ago Up 20 seconds tpcdstpg_run_tests_1
E fazendo docker service ls
não mostrar serviços em execução, parece que docker_service
implanta minha imagem como um contêiner local e não como um serviço no enxame
Então, minha suposição era de que, se eu tivesse um swarm ativo na máquina que é um gerenciador de enxames e eu usasse o módulo Ansible docker_service
, ele estaria automaticamente ciente do swarm e implantaria o serviço nele. Parece que minha suposição está errada e não consigo encontrar nenhum documento, postagens de blog, etc. que me indiquem o que fazer e o que estou perdendo. Especialistas por favor ajudem!