Я пытаюсь развернуть службу Docker в роем, но всегда в конечном итоге с запуском контейнера на моем локальном хосте (тот, который я использую в качестве менеджера докер роя) и без обслуживанияИспользование модуля docker_service анзибль развернуть службу роиться
Вот моя настройка:
У меня есть 3 узла Docker (v.1.12.1), который включает в себя один хост, работающий как менеджер, и два рабочих узла, все запущенные на CentOS 7. На узле менеджера (localhost) запускаю Ansible (v. 2.1.1.0) playbook, а рой уже сконфигурирован и работает
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
Начиная с PlayBook, который имеет этот код
- 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 }
Который называет эту роль:
- 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
Когда я бегу ansible-playbook ./site.yml
я в конечном итоге с запущенным контейнера. Ведение docker ps -a
дисплеи
[[email protected] 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
И делать docker service ls
не показывает услуг работает, так это выглядит, как docker_service
развертывает свое изображение в качестве локального контейнера, а не в качестве службы на роя
Так что мое предположение было то, что если у меня есть активный рой на машине, которая является менеджером рой, и я использую модуль Ansible docker_service
, тогда он автоматически узнает о рое и развернет службу к нему. Похоже, мое предположение неверно, и я не могу найти никаких документов, сообщений в блогах и т. Д., Которые подскажут мне, что делать и чего мне не хватает. Несчастные эксперты, пожалуйста, помогите!
Не знаете, почему мой вопрос был опущен. Если что-то еще у меня пропало, скажите, пожалуйста, так, и я с удовольствием добавлю дополнительные сведения. – Bostone
Это не особенно связано с разработкой программного обеспечения. Это, по-видимому, в первую очередь касается системного администрирования и сетевого взаимодействия, и для этих вопросов есть лучшие сайты StackExchange. – larsks