ansible 2.0.0.2
config file = /home/mickael/git/emq-devops/ansible/ansible.cfg
configured module search path = Default w/o overrides
tidak ada
Menjalankan Ansible dari Ubuntu 14.04
Mengelola OS: CentOS 7
Saat menggunakan kembali peran dalam buku pedoman, penangan tidak menggunakan nilai variabel peran yang diharapkan dalam tugas penangan.
(Saya tidak yakin apakah itu perilaku yang diharapkan atau tidak. Saya menduga bahwa variabel yang digunakan dalam penangan diganti ketika penangan didefinisikan)
Klon https://github.com/mickael-ange/ansible-reports dan jalankan:
ansible-playbook playbooks/test-handlers-01.yml
Panggilan handler kedua akan memiliki item=test2
.
PLAY ***************************************************************************
TASK [setup] *******************************************************************
ok: [localhost]
TASK [test-handlers-01 : always changes to trigger handler] ********************
changed: [localhost]
TASK [test-handlers-01 : include] **********************************************
included: /home/mickael/git/ansible-reports/roles/test-handlers-01/tasks/flush_handlers.yml for localhost
RUNNING HANDLER [test-handlers-01 : test handler] ******************************
changed: [localhost] => (item=test1)
TASK [test-handlers-01 : always changes to trigger handler] ********************
changed: [localhost]
TASK [test-handlers-01 : include] **********************************************
included: /home/mickael/git/ansible-reports/roles/test-handlers-01/tasks/flush_handlers.yml for localhost
RUNNING HANDLER [test-handlers-01 : test handler] ******************************
changed: [localhost] => (item=test2)
PLAY RECAP *********************************************************************
localhost : ok=7 changed=4 unreachable=0 failed=0
Hasil sebenarnya adalah kedua panggilan handler menggunakan nilai variabel yang sama ( item=test1
) bahkan jika variabel test_name
telah didefinisikan ulang dalam buku pedoman.
$ ansible-playbook -vvvv playbooks/test-handlers-01.yml
Using /home/mickael/git/ansible-reports/ansible.cfg as config file
Loaded callback default of type stdout, v2.0
1 plays in playbooks/test-handlers-01.yml
PLAY ***************************************************************************
TASK [setup] *******************************************************************
ESTABLISH LOCAL CONNECTION FOR USER: mickael
localhost EXEC ( umask 22 && mkdir -p "$( echo $HOME/.ansible/tmp/ansible-tmp-1458621398.48-100196802537724 )" && echo "$( echo $HOME/.ansible/tmp/ansible-tmp-1458621398.48-100196802537724 )" )
localhost PUT /tmp/tmp67Fgab TO /home/mickael/.ansible/tmp/ansible-tmp-1458621398.48-100196802537724/setup
localhost EXEC LANG=C LC_ALL=C LC_MESSAGES=C /usr/bin/python /home/mickael/.ansible/tmp/ansible-tmp-1458621398.48-100196802537724/setup; rm -rf "/home/mickael/.ansible/tmp/ansible-tmp-1458621398.48-100196802537724/" > /dev/null 2>&1
ok: [localhost]
TASK [test-handlers-01 : always changes to trigger handler] ********************
task path: /home/mickael/git/ansible-reports/roles/test-handlers-01/tasks/main.yml:2
ESTABLISH LOCAL CONNECTION FOR USER: mickael
localhost EXEC ( umask 22 && mkdir -p "$( echo $HOME/.ansible/tmp/ansible-tmp-1458621398.81-97442582835398 )" && echo "$( echo $HOME/.ansible/tmp/ansible-tmp-1458621398.81-97442582835398 )" )
localhost PUT /tmp/tmpGhth2G TO /home/mickael/.ansible/tmp/ansible-tmp-1458621398.81-97442582835398/command
localhost EXEC LANG=C LC_ALL=C LC_MESSAGES=C /usr/bin/python /home/mickael/.ansible/tmp/ansible-tmp-1458621398.81-97442582835398/command; rm -rf "/home/mickael/.ansible/tmp/ansible-tmp-1458621398.81-97442582835398/" > /dev/null 2>&1
NOTIFIED HANDLER test handler
changed: [localhost] => {"changed": true, "cmd": "echo hello", "delta": "0:00:00.000985", "end": "2016-03-22 12:36:38.842304", "invocation": {"module_args": {"_raw_params": "echo hello", "_uses_shell": true, "chdir": null, "creates": null, "executable": null, "removes": null, "warn": true}, "module_name": "command"}, "rc": 0, "start": "2016-03-22 12:36:38.841319", "stderr": "", "stdout": "hello", "stdout_lines": ["hello"], "warnings": []}
TASK [test-handlers-01 : include] **********************************************
task path: /home/mickael/git/ansible-reports/roles/test-handlers-01/tasks/main.yml:7
included: /home/mickael/git/ansible-reports/roles/test-handlers-01/tasks/flush_handlers.yml for localhost
RUNNING HANDLER [test-handlers-01 : test handler] ******************************
ESTABLISH LOCAL CONNECTION FOR USER: mickael
localhost EXEC ( umask 22 && mkdir -p "$( echo $HOME/.ansible/tmp/ansible-tmp-1458621398.89-30437666642483 )" && echo "$( echo $HOME/.ansible/tmp/ansible-tmp-1458621398.89-30437666642483 )" )
localhost PUT /tmp/tmp0ZvLkG TO /home/mickael/.ansible/tmp/ansible-tmp-1458621398.89-30437666642483/command
localhost EXEC /bin/sh -c 'sudo -H -S -n -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-galeggchoargiitnuhweljdxhuzvxyfk; LANG=C LC_ALL=C LC_MESSAGES=C /usr/bin/python /home/mickael/.ansible/tmp/ansible-tmp-1458621398.89-30437666642483/command; rm -rf "/home/mickael/.ansible/tmp/ansible-tmp-1458621398.89-30437666642483/" > /dev/null 2>&1'"'"''
changed: [localhost] => (item=test1) => {"changed": true, "cmd": "echo test1", "delta": "0:00:00.001024", "end": "2016-03-22 12:36:38.923978", "invocation": {"module_args": {"_raw_params": "echo test1", "_uses_shell": true, "chdir": null, "creates": null, "executable": null, "removes": null, "warn": true}, "module_name": "command"}, "item": "test1", "rc": 0, "start": "2016-03-22 12:36:38.922954", "stderr": "", "stdout": "test1", "stdout_lines": ["test1"], "warnings": []}
TASK [test-handlers-01 : always changes to trigger handler] ********************
task path: /home/mickael/git/ansible-reports/roles/test-handlers-01/tasks/main.yml:2
ESTABLISH LOCAL CONNECTION FOR USER: mickael
localhost EXEC ( umask 22 && mkdir -p "$( echo $HOME/.ansible/tmp/ansible-tmp-1458621398.94-276260811692367 )" && echo "$( echo $HOME/.ansible/tmp/ansible-tmp-1458621398.94-276260811692367 )" )
localhost PUT /tmp/tmp86IG7E TO /home/mickael/.ansible/tmp/ansible-tmp-1458621398.94-276260811692367/command
localhost EXEC LANG=C LC_ALL=C LC_MESSAGES=C /usr/bin/python /home/mickael/.ansible/tmp/ansible-tmp-1458621398.94-276260811692367/command; rm -rf "/home/mickael/.ansible/tmp/ansible-tmp-1458621398.94-276260811692367/" > /dev/null 2>&1
NOTIFIED HANDLER test handler
changed: [localhost] => {"changed": true, "cmd": "echo hello", "delta": "0:00:00.001004", "end": "2016-03-22 12:36:38.968493", "invocation": {"module_args": {"_raw_params": "echo hello", "_uses_shell": true, "chdir": null, "creates": null, "executable": null, "removes": null, "warn": true}, "module_name": "command"}, "rc": 0, "start": "2016-03-22 12:36:38.967489", "stderr": "", "stdout": "hello", "stdout_lines": ["hello"], "warnings": []}
TASK [test-handlers-01 : include] **********************************************
task path: /home/mickael/git/ansible-reports/roles/test-handlers-01/tasks/main.yml:7
included: /home/mickael/git/ansible-reports/roles/test-handlers-01/tasks/flush_handlers.yml for localhost
RUNNING HANDLER [test-handlers-01 : test handler] ******************************
ESTABLISH LOCAL CONNECTION FOR USER: mickael
localhost EXEC ( umask 22 && mkdir -p "$( echo $HOME/.ansible/tmp/ansible-tmp-1458621399.02-117648891898111 )" && echo "$( echo $HOME/.ansible/tmp/ansible-tmp-1458621399.02-117648891898111 )" )
localhost PUT /tmp/tmpBLQAIM TO /home/mickael/.ansible/tmp/ansible-tmp-1458621399.02-117648891898111/command
localhost EXEC /bin/sh -c 'sudo -H -S -n -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-djwqhqqtijmpdsiqoxgfazrcxttepenq; LANG=C LC_ALL=C LC_MESSAGES=C /usr/bin/python /home/mickael/.ansible/tmp/ansible-tmp-1458621399.02-117648891898111/command; rm -rf "/home/mickael/.ansible/tmp/ansible-tmp-1458621399.02-117648891898111/" > /dev/null 2>&1'"'"''
changed: [localhost] => (item=test1) => {"changed": true, "cmd": "echo test1", "delta": "0:00:00.001034", "end": "2016-03-22 12:36:39.051023", "invocation": {"module_args": {"_raw_params": "echo test1", "_uses_shell": true, "chdir": null, "creates": null, "executable": null, "removes": null, "warn": true}, "module_name": "command"}, "item": "test1", "rc": 0, "start": "2016-03-22 12:36:39.049989", "stderr": "", "stdout": "test1", "stdout_lines": ["test1"], "warnings": []}
PLAY RECAP *********************************************************************
localhost : ok=7 changed=4 unreachable=0 failed=0
Saya mungkin telah memperbaikinya baru-baru ini, tetapi saya akan memeriksanya sesegera mungkin.
Ini masih sama dengan Ansible 2.1
Saya tidak bisa benar-benar menggunakan peran yang sama lebih dari satu kali jika pawang terlihat seperti
- name: delete varnish container
docker:
image: "{{ docker_varnish_image_tag }}"
name: "{{ docker_varnish_container_name }}"
state: absent
docker_api_version: "{{ docker_api_version }}"
Variabel docker_varnish_container_name
berbeda setiap kali saya memanggil peran ini seperti ini di buku pedoman
- { role: docker_varnish, docker_varnish_container_name: varnish-apps }
- { role: docker_varnish, docker_varnish_container_name: varnish-cache }
Tapi itu menghentikan wadah dengan nama yang telah didefinisikan sebagai yang pertama di buku pedoman.
Saya mencoba menggunakan variabel dalam nama handler tetapi mereka tidak dipicu sama sekali dalam kasus itu.
Memperbarui:
Ini hanya berfungsi jika saya memiliki peran ini
- name: Set container name variable
set_fact: docker_varnish_container_name={{container_name}}
when: container_name is defined
dan ini di buku pedoman
- { role: docker_varnish, container_name: varnish-apps }
- { role: docker_varnish, container_name: varnish-cache }