我想部署一個碼頭工人服務爲羣,但總是在我的本地(我作爲一個碼頭工人羣管理者使用的),並沒有服務運行容器結束了使用Ansible docker_service模塊部署服務一窩蜂
這裏是我的設置:
我有3個節點的Docker(v。1.12.1)swarm,包括一個作爲管理器運行的主機和兩個工作節點,都運行在CentOS 7上。在管理節點(localhost)上運行Ansible v。2.1.1.0)playbook和swarm已經配置並正在運行
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
與具有此代碼
- 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
部署我的形象作爲本地的容器,而不是作爲對羣服務
所以我的假設是,如果我有一個在swarm管理器上使用Ansible docker_service
模塊的機器上的主動羣,那麼它將自動意識到羣並將服務部署到它。看起來像我的假設是錯誤的,我找不到任何文檔,博客帖子等,這將暗示我該怎麼做,我失蹤了。 Ansible高手請幫忙!
不知道爲什麼我的問題是downvoted。如果還有其他遺漏,請告訴我,我很樂意添加更多詳細信息 – Bostone
這與軟件開發沒有特別的關係。這似乎主要是關於系統管理和網絡,並且針對這些問題有更好的StackExchange站點。 – larsks