Hi,
I'm facin g following ISSUE.
My roles are mostly multi distribution enabled. My testing env is based
on 8 different distribution/releases
- debian 7/8, ubuntu 14.04/16.04, centos 6/7, rhel 6/7
My way how to do distribution specific task is as follow
air-2:zabbix-agent hudecof$ cat tasks/main.yml
---
# tasks file for zabbix-agent
- name: "common | set os specific variables"
include_vars: "{{ item }}"
with_first_found:
- "os-{{ ansible_distribution }}-{{ ansible_distribution_release }}.yml"
- "os-{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml"
- "os-{{ ansible_distribution }}-{{
ansible_distribution_major_version }}.yml"
- "os-{{ ansible_distribution }}.yml"
- "os-default.yml"
tags:
- zabbix-agent
- name: "run os specific tasks"
include: "{{ task_item }}"
with_items: "{{ zabbix_agent_tasks }}"
loop_control:
loop_var: task_item
tags:
- zabbix-agent
air-2:zabbix-agent hudecof$ cat vars/os-Debian.yml
---
# list of packages to install
zabbix_agent_tasks:
- packages-Debian.yml
- common-config.yml
- common-service.yml
- common-facts.yml
zabbix_agent_packages:
- zabbix-agent
# name of the service
zabbix_agent_service: zabbix-agent
# user and group
zabbix_agent_user: zabbix
zabbix_agent_group: zabbix
air-2:zabbix-agent hudecof$ cat vars/os-CentOS.yml
---
# list of packages to install
zabbix_agent_tasks:
- packages-CentOS.yml
- common-config.yml
- common-service.yml
- common-facts.yml
zabbix_agent_packages:
- zabbix-agent
# name of the service
zabbix_agent_service: zabbix-agent
# user and group
zabbix_agent_user: zabbix
zabbix_agent_group: zabbix
When I run the role against full test set, the task execution order is like
TASK [zabbix-agent : common | set os specific variables]
***********************
ok: [ditlcm01] =>
(item=/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/vars/os-Debian.yml)
ok: [ditlcm04] =>
(item=/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/vars/os-Ubuntu.yml)
ok: [ditlcm03] =>
(item=/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/vars/os-Ubuntu.yml)
ok: [ditlcm05] =>
(item=/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/vars/os-CentOS.yml)
ok: [ditlcm02] =>
(item=/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/vars/os-Debian.yml)
ok: [ditlcm07] =>
(item=/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/vars/os-RedHat.yml)
ok: [ditlcm06] =>
(item=/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/vars/os-CentOS.yml)
ok: [ditlcm08] =>
(item=/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/vars/os-RedHat.yml)
TASK [zabbix-agent : run os specific tasks]
************************************
included:
/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/tasks/packages-Debian.yml
for ditlcm02, ditlcm03, ditlcm04, ditlcm01
included:
/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/tasks/common-config.yml
for ditlcm02, ditlcm03, ditlcm04, ditlcm05, ditlcm06, ditlcm07,
ditlcm08, ditlcm01
included:
/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/tasks/common-service.yml
for ditlcm02, ditlcm03, ditlcm04, ditlcm05, ditlcm06, ditlcm07,
ditlcm08, ditlcm01
included:
/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/tasks/common-facts.yml
for ditlcm02, ditlcm03, ditlcm04, ditlcm05, ditlcm06, ditlcm07,
ditlcm08, ditlcm01
included:
/Users/hudecof/devel/github/ansible_roles/roles/zabbix-agent/tasks/packages-CentOS.yml
for ditlcm05, ditlcm06, ditlcm07, ditlcm08
TASK [zabbix-agent : debian | install packages]
********************************
changed: [ditlcm02] => (item=[u'zabbix-agent'])
changed: [ditlcm03] => (item=[u'zabbix-agent'])
changed: [ditlcm04] => (item=[u'zabbix-agent'])
changed: [ditlcm01] => (item=[u'zabbix-agent'])
TASK [zabbix-agent : create directories]
***************************************
failed: [ditlcm05] (item=/etc/zabbix/scripts) => {"failed": true,
"file_item": "/etc/zabbix/scripts", "gid": 0, "group": "root", "mode":
"0755", "msg": "chgrp failed: failed to look up group zabbix", "owner":
"root", "path": "/etc/zabbix/scripts", "secontext":
"unconfined_u:object_r:etc_t:s0", "size": 4096, "state": "directory",
"uid": 0}
changed: [ditlcm02] => (item=/etc/zabbix/scripts)
changed: [ditlcm03] => (item=/etc/zabbix/scripts)
changed: [ditlcm01] => (item=/etc/zabbix/scripts)
changed: [ditlcm04] => (item=/etc/zabbix/scripts)
changed: [ditlcm02] => (item=/etc/zabbix/zabbix_agentd.d)
changed: [ditlcm01] => (item=/etc/zabbix/zabbix_agentd.d)
failed: [ditlcm05] (item=/etc/zabbix/zabbix_agentd.d) => {"failed":
true, "file_item": "/etc/zabbix/zabbix_agentd.d", "gid": 0, "group":
"root", "mode": "0755", "msg": "chgrp failed: failed to look up group
zabbix", "owner": "root", "path": "/etc/zabbix", "secontext":
"unconfined_u:object_r:etc_t:s0", "size": 4096, "state": "directory",
"uid": 0}
changed: [ditlcm03] => (item=/etc/zabbix/zabbix_agentd.d)
changed: [ditlcm04] => (item=/etc/zabbix/zabbix_agentd.d)
failed: [ditlcm07] (item=/etc/zabbix/zabbix_agentd.d) => {"failed":
true, "file_item": "/etc/zabbix/zabbix_agentd.d", "gid": 0, "group":
"root", "mode": "0755", "msg": "chgrp failed: failed to look up group
zabbix", "owner": "root", "path": "/etc/zabbix", "secontext":
"unconfined_u:object_r:etc_t:s0", "size": 4096, "state": "directory",
"uid": 0}
failed: [ditlcm06] (item=/etc/zabbix/zabbix_agentd.d) => {"failed":
true, "file_item": "/etc/zabbix/zabbix_agentd.d", "gid": 0, "group":
"root", "mode": "0755", "msg": "chgrp failed: failed to look up group
zabbix", "owner": "root", "path": "/etc/zabbix", "secontext":
"unconfined_u:object_r:etc_t:s0", "size": 4096, "state": "directory",
"uid": 0}
failed: [ditlcm08] (item=/etc/zabbix/zabbix_agentd.d) => {"failed":
true, "file_item": "/etc/zabbix/zabbix_agentd.d", "gid": 0, "group":
"root", "mode": "0755", "msg": "chgrp failed: failed to look up group
zabbix", "owner": "root", "path": "/etc/zabbix", "secontext":
"unconfined_u:object_r:etc_t:s0", "size": 6, "state": "directory", "uid": 0}
failed: [ditlcm07] (item=/etc/zabbix/scripts) => {"failed": true,
"file_item": "/etc/zabbix/scripts", "gid": 0, "group": "root", "mode":
"0755", "msg": "chgrp failed: failed to look up group zabbix", "owner":
"root", "path": "/etc/zabbix/scripts", "secontext":
"unconfined_u:object_r:etc_t:s0", "size": 4096, "state": "directory",
"uid": 0}
failed: [ditlcm06] (item=/etc/zabbix/scripts) => {"failed": true,
"file_item": "/etc/zabbix/scripts", "gid": 0, "group": "root", "mode":
"0755", "msg": "chgrp failed: failed to look up group zabbix", "owner":
"root", "path": "/etc/zabbix/scripts", "secontext":
"unconfined_u:object_r:etc_t:s0", "size": 4096, "state": "directory",
"uid": 0}
failed: [ditlcm08] (item=/etc/zabbix/scripts) => {"failed": true,
"file_item": "/etc/zabbix/scripts", "gid": 0, "group": "root", "mode":
"0755", "msg": "chgrp failed: failed to look up group zabbix", "owner":
"root", "path": "/etc/zabbix/scripts", "secontext":
"unconfined_u:object_r:etc_t:s0", "size": 6, "state": "directory", "uid": 0}
TASK [zabbix-agent : create zabbix-agentd.conf]
********************************
changed: [ditlcm01]
changed: [ditlcm04]
changed: [ditlcm03]
changed: [ditlcm02]
TASK [zabbix-agent : copy include directory]
***********************************
TASK [zabbix-agent : copy script directory]
************************************
TASK [zabbix-agent : ensure zabbix agent started/stopped]
**********************
ok: [ditlcm02]
ok: [ditlcm01]
ok: [ditlcm03]
changed: [ditlcm04]
TASK [zabbix-agent : create facts.d directory]
*********************************
changed: [ditlcm04]
changed: [ditlcm02]
changed: [ditlcm01]
changed: [ditlcm03]
TASK [zabbix-agent : create facts file]
****************************************
changed: [ditlcm02]
changed: [ditlcm01]
changed: [ditlcm04]
changed: [ditlcm03]
RUNNING HANDLER [zabbix-agent : restart zabbix-agent]
**************************
changed: [ditlcm03]
changed: [ditlcm04]
changed: [ditlcm02]
changed: [ditlcm01]
to retry, use: --limit @./.ansible/retry/zabbix.retry
PLAY RECAP
*********************************************************************
ditlcm01 : ok=21 changed=6 unreachable=0
failed=0
ditlcm02 : ok=21 changed=6 unreachable=0
failed=0
ditlcm03 : ok=21 changed=6 unreachable=0
failed=0
ditlcm04 : ok=21 changed=7 unreachable=0
failed=0
ditlcm05 : ok=14 changed=0 unreachable=0
failed=1
ditlcm06 : ok=14 changed=0 unreachable=0
failed=1
ditlcm07 : ok=14 changed=0 unreachable=0
failed=1
ditlcm08 : ok=14 changed=0 unreachable=0
failed=1
That means, the ansible is executing the debian package install on
debian based distributions /common for debian and ubuntu/, then is
running tasks common for all distributions ..
And that the problem.. I need to run the CentOS/ReadHat install package
tasks before, see the errors
Workaround is to set serial to 1, but this not a option ;(
--
*Peter Hudec*
Infraštruktúrny architekt
phu...@cnc.sk <mailto:
phu...@cnc.sk>
*CNC, a.s.*
Borská 6, 841 04 Bratislava
Recepcia: +421 2 35 000 100
Mobil:
+421 905 997 203
*
www.cnc.sk* <http:///
www.cnc.sk>