Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ansible
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ansible
Commits
ccf031f1
Commit
ccf031f1
authored
Mar 14, 2014
by
Alexander Bulimov
Committed by
Michael DeHaan
Aug 08, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
zabbix_maintenance fixes and parameter names update
parent
edebadc3
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
51 additions
and
50 deletions
+51
-50
library/monitoring/zabbix_maintenance
+51
-50
No files found.
library/monitoring/zabbix_maintenance
View file @
ccf031f1
...
@@ -25,7 +25,7 @@ module: zabbix_maintenance
...
@@ -25,7 +25,7 @@ module: zabbix_maintenance
short_description: Create Zabbix maintenance windows
short_description: Create Zabbix maintenance windows
description:
description:
- This module will let you create Zabbix maintenance windows.
- This module will let you create Zabbix maintenance windows.
version_added: "1.
5
"
version_added: "1.
6
"
author: Alexander Bulimov
author: Alexander Bulimov
requirements:
requirements:
- zabbix-api python module
- zabbix-api python module
...
@@ -36,38 +36,39 @@ options:
...
@@ -36,38 +36,39 @@ options:
required: true
required: true
default: null
default: null
choices: [ "present", "absent" ]
choices: [ "present", "absent" ]
server:
server
_url
:
description:
description:
- Url of Zabbix server, with schema (http or https).
- Url of Zabbix server, with protocol (http or https).
C(url) is an alias for C(server_url).
required: true
required: true
default: null
default: null
aliases: [ "url" ]
aliases: [ "url" ]
user:
login_
user:
description:
description:
- Zabbix user name.
- Zabbix user name.
required: true
required: true
default: null
default: null
passw
d:
login_passwor
d:
description:
description:
- Zabbix user password.
- Zabbix user password.
required: true
required: true
default: null
default: null
hosts:
host
_name
s:
description:
description:
- Hosts to manage maintenance window for. Separate multiple hosts with commas.
- Hosts to manage maintenance window for. Separate multiple hosts with commas.
C(host
) is an alias for C(host
s).
C(host
_name) is an alias for C(host_name
s).
B(Required) option when C(state) is I(present) and no C(groups) specified.
B(Required) option when C(state) is I(present) and no C(
host_
groups) specified.
required: false
required: false
default: null
default: null
aliases: [ "host" ]
aliases: [ "host
_name
" ]
groups:
host_
groups:
description:
description:
- Host groups to manage maintenance window for. Separate multiple groups with commas.
- Host groups to manage maintenance window for. Separate multiple groups with commas.
C(
group) is an alias for C(
groups).
C(
host_group) is an alias for C(host_
groups).
B(Required) option when C(state) is I(present) and no C(hosts) specified.
B(Required) option when C(state) is I(present) and no C(host
_name
s) specified.
required: false
required: false
default: null
default: null
aliases: [ "group" ]
aliases: [ "
host_
group" ]
minutes:
minutes:
description:
description:
- Length of maintenance window in minutes.
- Length of maintenance window in minutes.
...
@@ -102,39 +103,39 @@ EXAMPLES = '''
...
@@ -102,39 +103,39 @@ EXAMPLES = '''
# Create maintenance window named "Update of www1"
# Create maintenance window named "Update of www1"
# for host www1.example.com for 90 minutes
# for host www1.example.com for 90 minutes
- zabbix_maintenance: name="Update of www1"
- zabbix_maintenance: name="Update of www1"
host=www1.example.com
host
_name
=www1.example.com
state=present
state=present
minutes=90
minutes=90
server=https://monitoring.example.com
server
_url
=https://monitoring.example.com
user=ansible
login_
user=ansible
passw
d=pAsSwOrD
login_passwor
d=pAsSwOrD
# Create maintenance window named "Mass update"
# Create maintenance window named "Mass update"
# for host www1.example.com and host groups Office and Dev
# for host www1.example.com and host groups Office and Dev
- zabbix_maintenance: name="Update of www1"
- zabbix_maintenance: name="Update of www1"
host=www1.example.com
host
_name
=www1.example.com
group
=Office,Dev
host_groups
=Office,Dev
state=present
state=present
server=https://monitoring.example.com
server
_url
=https://monitoring.example.com
user=ansible
login_
user=ansible
passw
d=pAsSwOrD
login_passwor
d=pAsSwOrD
# Create maintenance window named "update"
# Create maintenance window named "update"
# for host
www
1.example.com and without data collection.
# for host
s www1.example.com and db
1.example.com and without data collection.
- zabbix_maintenance: name=update
- zabbix_maintenance: name=update
host
=www
1.example.com
host
_names=www1.example.com,db
1.example.com
state=present
state=present
collect_data=false
collect_data=false
server=https://monitoring.example.com
server
_url
=https://monitoring.example.com
user=ansible
login_
user=ansible
passw
d=pAsSwOrD
login_passwor
d=pAsSwOrD
# Remove maintenance window named "Test1"
# Remove maintenance window named "Test1"
- zabbix_maintenance: name=Test1
- zabbix_maintenance: name=Test1
state=absent
state=absent
server=https://monitoring.example.com
server
_url
=https://monitoring.example.com
user=ansible
login_
user=ansible
passw
d=pAsSwOrD
login_passwor
d=pAsSwOrD
'''
'''
import
datetime
,
time
import
datetime
,
time
...
@@ -205,9 +206,9 @@ def check_maintenance(zbx, name):
...
@@ -205,9 +206,9 @@ def check_maintenance(zbx, name):
return
1
,
None
,
str
(
e
)
return
1
,
None
,
str
(
e
)
return
0
,
result
,
None
return
0
,
result
,
None
def
get_group_ids
(
zbx
,
group_name
s
):
def
get_group_ids
(
zbx
,
host_group
s
):
group_ids
=
[]
group_ids
=
[]
for
group
in
group_name
s
:
for
group
in
host_group
s
:
try
:
try
:
result
=
zbx
.
hostgroup
.
get
(
result
=
zbx
.
hostgroup
.
get
(
{
{
...
@@ -256,12 +257,12 @@ def main():
...
@@ -256,12 +257,12 @@ def main():
module
=
AnsibleModule
(
module
=
AnsibleModule
(
argument_spec
=
dict
(
argument_spec
=
dict
(
state
=
dict
(
required
=
True
,
default
=
None
,
choices
=
[
'present'
,
'absent'
]),
state
=
dict
(
required
=
True
,
default
=
None
,
choices
=
[
'present'
,
'absent'
]),
server
=
dict
(
required
=
True
,
default
=
None
,
aliases
=
[
'url'
]),
server
_url
=
dict
(
required
=
True
,
default
=
None
,
aliases
=
[
'url'
]),
host
s
=
dict
(
type
=
'list'
,
required
=
False
,
default
=
None
,
aliases
=
[
'host
'
]),
host
_names
=
dict
(
type
=
'list'
,
required
=
False
,
default
=
None
,
aliases
=
[
'host_name
'
]),
minutes
=
dict
(
type
=
'int'
,
required
=
False
,
default
=
10
),
minutes
=
dict
(
type
=
'int'
,
required
=
False
,
default
=
10
),
groups
=
dict
(
type
=
'list'
,
required
=
False
,
default
=
None
,
aliases
=
[
'
group'
]),
host_groups
=
dict
(
type
=
'list'
,
required
=
False
,
default
=
None
,
aliases
=
[
'host_
group'
]),
user
=
dict
(
required
=
True
,
default
=
None
),
login_
user
=
dict
(
required
=
True
,
default
=
None
),
passw
d
=
dict
(
required
=
True
,
default
=
None
),
login_passwor
d
=
dict
(
required
=
True
,
default
=
None
),
name
=
dict
(
required
=
True
,
default
=
None
),
name
=
dict
(
required
=
True
,
default
=
None
),
desc
=
dict
(
required
=
False
,
default
=
"Created by Ansible"
),
desc
=
dict
(
required
=
False
,
default
=
"Created by Ansible"
),
collect_data
=
dict
(
type
=
'bool'
,
required
=
False
,
default
=
True
),
collect_data
=
dict
(
type
=
'bool'
,
required
=
False
,
default
=
True
),
...
@@ -272,15 +273,15 @@ def main():
...
@@ -272,15 +273,15 @@ def main():
if
not
HAS_ZABBIX_API
:
if
not
HAS_ZABBIX_API
:
module
.
fail_json
(
msg
=
"Missing requried zabbix-api module (check docs or install with: pip install zabbix-api)"
)
module
.
fail_json
(
msg
=
"Missing requried zabbix-api module (check docs or install with: pip install zabbix-api)"
)
host
s
=
module
.
params
[
'host
s'
]
host
_names
=
module
.
params
[
'host_name
s'
]
groups
=
module
.
params
[
'
groups'
]
host_groups
=
module
.
params
[
'host_
groups'
]
state
=
module
.
params
[
'state'
]
state
=
module
.
params
[
'state'
]
user
=
module
.
params
[
'
user'
]
login_user
=
module
.
params
[
'login_
user'
]
passwd
=
module
.
params
[
'passw
d'
]
login_password
=
module
.
params
[
'login_passwor
d'
]
minutes
=
module
.
params
[
'minutes'
]
minutes
=
module
.
params
[
'minutes'
]
name
=
module
.
params
[
'name'
]
name
=
module
.
params
[
'name'
]
desc
=
module
.
params
[
'desc'
]
desc
=
module
.
params
[
'desc'
]
server
=
module
.
params
[
'server
'
]
server
_url
=
module
.
params
[
'server_url
'
]
collect_data
=
module
.
params
[
'collect_data'
]
collect_data
=
module
.
params
[
'collect_data'
]
if
collect_data
:
if
collect_data
:
maintenance_type
=
0
maintenance_type
=
0
...
@@ -289,8 +290,8 @@ def main():
...
@@ -289,8 +290,8 @@ def main():
try
:
try
:
zbx
=
ZabbixAPI
(
server
)
zbx
=
ZabbixAPI
(
server
_url
)
zbx
.
login
(
user
,
passw
d
)
zbx
.
login
(
login_user
,
login_passwor
d
)
except
BaseException
as
e
:
except
BaseException
as
e
:
module
.
fail_json
(
msg
=
"Failed to connect to Zabbix server:
%
s"
%
e
)
module
.
fail_json
(
msg
=
"Failed to connect to Zabbix server:
%
s"
%
e
)
...
@@ -302,15 +303,15 @@ def main():
...
@@ -302,15 +303,15 @@ def main():
start_time
=
time
.
mktime
(
now
.
timetuple
())
start_time
=
time
.
mktime
(
now
.
timetuple
())
period
=
60
*
int
(
minutes
)
#N * 60 seconds
period
=
60
*
int
(
minutes
)
#N * 60 seconds
if
groups
:
if
host_
groups
:
(
rc
,
group_ids
,
error
)
=
get_group_ids
(
zbx
,
groups
)
(
rc
,
group_ids
,
error
)
=
get_group_ids
(
zbx
,
host_
groups
)
if
rc
!=
0
:
if
rc
!=
0
:
module
.
fail_json
(
msg
=
"Failed to get group_ids:
%
s"
%
error
)
module
.
fail_json
(
msg
=
"Failed to get group_ids:
%
s"
%
error
)
else
:
else
:
group_ids
=
[]
group_ids
=
[]
if
hosts
:
if
host
_name
s
:
(
rc
,
host_ids
,
error
)
=
get_host_ids
(
zbx
,
hosts
)
(
rc
,
host_ids
,
error
)
=
get_host_ids
(
zbx
,
host
_name
s
)
if
rc
!=
0
:
if
rc
!=
0
:
module
.
fail_json
(
msg
=
"Failed to get host_ids:
%
s"
%
error
)
module
.
fail_json
(
msg
=
"Failed to get host_ids:
%
s"
%
error
)
else
:
else
:
...
@@ -321,8 +322,8 @@ def main():
...
@@ -321,8 +322,8 @@ def main():
module
.
fail_json
(
msg
=
"Failed to check maintenance
%
s existance:
%
s"
%
(
name
,
error
))
module
.
fail_json
(
msg
=
"Failed to check maintenance
%
s existance:
%
s"
%
(
name
,
error
))
if
not
exists
:
if
not
exists
:
if
not
host
s
and
not
groups
:
if
not
host
_names
and
not
host_
groups
:
module
.
fail_json
(
msg
=
"At least one host
or host
group must be defined for each created maintenance."
)
module
.
fail_json
(
msg
=
"At least one host
_name or host_
group must be defined for each created maintenance."
)
if
module
.
check_mode
:
if
module
.
check_mode
:
changed
=
True
changed
=
True
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment