diff --git a/lib/ansible/modules/monitoring/logicmonitor.py b/lib/ansible/modules/monitoring/logicmonitor.py index f2267207a71..fc1157bbb6f 100644 --- a/lib/ansible/modules/monitoring/logicmonitor.py +++ b/lib/ansible/modules/monitoring/logicmonitor.py @@ -89,7 +89,7 @@ options: - NOTE You should use Ansible service modules such as M(service) or M(supervisorctl) for managing the Collector 'logicmonitor-agent' and 'logicmonitor-watchdog' services. Specifically, you'll probably want to start these services after a Collector add and stop these services before a Collector remove. - "Host: Perform actions on a host device." - "Hostgroup: Perform actions on a LogicMonitor host group." - - NOTE Host and Hostgroup tasks should always be performed via local_action. There are no benefits to running these tasks on the remote host and doing so will typically cause problems. + - 'NOTE Host and Hostgroup tasks should always be performed via delegate_to: localhost. There are no benefits to running these tasks on the remote host and doing so will typically cause problems.' required: true default: null choices: ['collector', 'host', 'datsource', 'hostgroup'] @@ -192,352 +192,367 @@ options: ... ''' EXAMPLES = ''' - # example of adding a new LogicMonitor collector to these devices - --- - - hosts: collectors - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: Deploy/verify LogicMonitor collectors - become: yes - logicmonitor: - target=collector - action=add - company={{ company }} - user={{ user }} - password={{ password }} - - #example of adding a list of hosts into monitoring - --- - - hosts: hosts - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: Deploy LogicMonitor Host - # All tasks except for target=collector should use local_action - local_action: > - logicmonitor - target=host - action=add - collector='mycompany-Collector' - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - groups="/servers/production,/datacenter1" - properties="{'snmp.community':'secret','dc':'1', 'type':'prod'}" - - #example of putting a datasource in SDT - --- - - hosts: localhost - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: SDT a datasource - # All tasks except for target=collector should use local_action - local_action: > - logicmonitor - target=datasource - action=sdt - id='123' - duration=3000 - starttime='2017-03-04 05:06' - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - - #example of creating a hostgroup - --- - - hosts: localhost - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: Create a host group - # All tasks except for target=collector should use local_action - local_action: > - logicmonitor - target=hostgroup - action=add - fullpath='/servers/development' - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - properties="{'snmp.community':'commstring', 'type':'dev'}" - - #example of putting a list of hosts into SDT - --- - - hosts: hosts - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: SDT hosts - # All tasks except for target=collector should use local_action - local_action: > - logicmonitor - target=host - action=sdt - duration=3000 - starttime='2016-11-10 09:08' - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - collector='mycompany-Collector' - - #example of putting a host group in SDT - --- - - hosts: localhost - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: SDT a host group - # All tasks except for target=collector should use local_action - local_action: > - logicmonitor - target=hostgroup - action=sdt - fullpath='/servers/development' - duration=3000 - starttime='2017-03-04 05:06' - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - - #example of updating a list of hosts - --- - - hosts: hosts - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: Update a list of hosts - # All tasks except for target=collector should use local_action - local_action: > - logicmonitor - target=host - action=update - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - collector='mycompany-Collector' - groups="/servers/production,/datacenter5" - properties="{'snmp.community':'commstring','dc':'5'}" - - #example of updating a hostgroup - --- - - hosts: hosts - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: Update a host group - # All tasks except for target=collector should use local_action - local_action: > - logicmonitor - target=hostgroup - action=update - fullpath='/servers/development' - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - properties="{'snmp.community':'hg', 'type':'dev', 'status':'test'}" - - #example of removing a list of hosts from monitoring - --- - - hosts: hosts - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: Remove LogicMonitor hosts - # All tasks except for target=collector should use local_action - local_action: > - logicmonitor - target=host - action=remove - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - collector='mycompany-Collector' - - #example of removing a host group - --- - - hosts: hosts - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: Remove LogicMonitor development servers hostgroup - # All tasks except for target=collector should use local_action - local_action: > - logicmonitor - target=hostgroup - action=remove - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - fullpath='/servers/development' - - name: Remove LogicMonitor servers hostgroup - # All tasks except for target=collector should use local_action - local_action: > - logicmonitor - target=hostgroup - action=remove - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - fullpath='/servers' - - name: Remove LogicMonitor datacenter1 hostgroup - # All tasks except for target=collector should use local_action - local_action: > - logicmonitor - target=hostgroup - action=remove - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - fullpath='/datacenter1' - - name: Remove LogicMonitor datacenter5 hostgroup - # All tasks except for target=collector should use local_action - local_action: > - logicmonitor - target=hostgroup - action=remove - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - fullpath='/datacenter5' - - ### example of removing a new LogicMonitor collector to these devices - --- - - hosts: collectors - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: Remove LogicMonitor collectors - become: yes - logicmonitor: - target=collector - action=remove - company={{ company }} - user={{ user }} - password={{ password }} - - #complete example - --- - - hosts: localhost - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: Create a host group - local_action: > - logicmonitor - target=hostgroup - action=add - fullpath='/servers/production/database' - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - properties="{'snmp.community':'commstring'}" - - name: SDT a host group - local_action: > - logicmonitor - target=hostgroup - action=sdt - fullpath='/servers/production/web' - duration=3000 - starttime='2012-03-04 05:06' - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - - - hosts: collectors - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: Deploy/verify LogicMonitor collectors - logicmonitor: - target: collector - action: add - company: {{ company }} - user: {{ user }} - password: {{ password }} - - name: Place LogicMonitor collectors into 30 minute Scheduled downtime - logicmonitor: target=collector action=sdt company={{ company }} - user={{ user }} password={{ password }} - - name: Deploy LogicMonitor Host - local_action: > - logicmonitor - target=host - action=add - collector=agent1.ethandev.com - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - properties="{'snmp.community':'commstring', 'dc':'1'}" - groups="/servers/production/collectors, /datacenter1" - - - hosts: database-servers - remote_user: '{{ username }}' - vars: - company: 'mycompany' - user: 'myusername' - password: 'mypassword' - tasks: - - name: deploy logicmonitor hosts - local_action: > - logicmonitor - target=host - action=add - collector=monitoring.dev.com - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' - properties="{'snmp.community':'commstring', 'type':'db', 'dc':'1'}" - groups="/servers/production/database, /datacenter1" - - name: schedule 5 hour downtime for 2012-11-10 09:08 - local_action: > - logicmonitor - target=host - action=sdt - duration=3000 - starttime='2012-11-10 09:08' - company='{{ company }}' - user='{{ user }}' - password='{{ password }}' +# example of adding a new LogicMonitor collector to these devices +--- +- hosts: collectors + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: Deploy/verify LogicMonitor collectors + become: yes + logicmonitor: + target: collector + action: add + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + +#example of adding a list of hosts into monitoring +--- +- hosts: hosts + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: Deploy LogicMonitor Host + # All tasks except for target=collector should use delegate_to: localhost + logicmonitor: + target: host + action: add + collector: mycompany-Collector + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + groups: /servers/production,/datacenter1 + properties: + snmp.community: secret + dc: 1 + type: prod + delegate_to: localhost + +#example of putting a datasource in SDT +--- +- hosts: localhost + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: SDT a datasource + # All tasks except for target=collector should use delegate_to: localhost + logicmonitor: + target: datasource + action: sdt + id: 123 + duration: 3000 + starttime: '2017-03-04 05:06' + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + +#example of creating a hostgroup +--- +- hosts: localhost + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: Create a host group + # All tasks except for target=collector should use delegate_to: localhost + logicmonitor + target: hostgroup + action: add + fullpath: /servers/development + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + properties: + snmp.community: commstring + type: dev + +#example of putting a list of hosts into SDT +--- +- hosts: hosts + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: SDT hosts + # All tasks except for target=collector should use delegate_to: localhost + logicmonitor: + target: host + action: sdt + duration: 3000 + starttime: '2016-11-10 09:08' + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + collector: mycompany-Collector + delegate_to: localhost + +#example of putting a host group in SDT +--- +- hosts: localhost + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: SDT a host group + # All tasks except for target=collector should use delegate_to: localhost + logicmonitor: + target: hostgroup + action: sdt + fullpath: /servers/development + duration: 3000 + starttime: '2017-03-04 05:06' + company=: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + +#example of updating a list of hosts +--- +- hosts: hosts + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: Update a list of hosts + # All tasks except for target=collector should use delegate_to: localhost + logicmonitor: + target: host + action: update + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + collector: mycompany-Collector + groups: /servers/production,/datacenter5 + properties: + snmp.community: commstring + dc: 5 + delegate_to: localhost + +#example of updating a hostgroup +--- +- hosts: hosts + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: Update a host group + # All tasks except for target=collector should use delegate_to: localhost + logicmonitor: + target: hostgroup + action: update + fullpath: /servers/development + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + properties: + snmp.community: hg + type: dev + status: test + delegate_to: localhost + +#example of removing a list of hosts from monitoring +--- +- hosts: hosts + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: Remove LogicMonitor hosts + # All tasks except for target=collector should use delegate_to: localhost + logicmonitor: + target: host + action: remove + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + collector: mycompany-Collector + delegate_to: localhost + +#example of removing a host group +--- +- hosts: hosts + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: Remove LogicMonitor development servers hostgroup + # All tasks except for target=collector should use delegate_to: localhost + logicmonitor: + target: hostgroup + action: remove + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + fullpath: /servers/development + delegate_to: localhost + - name: Remove LogicMonitor servers hostgroup + # All tasks except for target=collector should use delegate_to: localhost + logicmonitor: + target: hostgroup + action: remove + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + fullpath: /servers + delegate_to: localhost + - name: Remove LogicMonitor datacenter1 hostgroup + # All tasks except for target=collector should use delegate_to: localhost + logicmonitor: + target: hostgroup + action: remove + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + fullpath: /datacenter1 + delegate_to: localhost + - name: Remove LogicMonitor datacenter5 hostgroup + # All tasks except for target=collector should use delegate_to: localhost + logicmonitor: + target: hostgroup + action: remove + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + fullpath: /datacenter5 + delegate_to: localhost + +### example of removing a new LogicMonitor collector to these devices +--- +- hosts: collectors + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: Remove LogicMonitor collectors + become: yes + logicmonitor: + target: collector + action: remove + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + +#complete example +--- +- hosts: localhost + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: Create a host group + logicmonitor: + target: hostgroup + action: add + fullpath: /servers/production/database + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + properties: + snmp.community: commstring + - name: SDT a host group + logicmonitor: + target: hostgroup + action: sdt + fullpath: /servers/production/web + duration: 3000 + starttime: '2012-03-04 05:06' + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + +- hosts: collectors + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: Deploy/verify LogicMonitor collectors + logicmonitor: + target: collector + action: add + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + - name: Place LogicMonitor collectors into 30 minute Scheduled downtime + logicmonitor: + target: collector + action: sdt + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + - name: Deploy LogicMonitor Host + logicmonitor: + target: host + action: add + collector: agent1.ethandev.com + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + properties: + snmp.community: commstring + dc: 1 + groups: /servers/production/collectors, /datacenter1 + delegate_to: localhost + +- hosts: database-servers + remote_user: '{{ username }}' + vars: + company: mycompany + user: myusername + password: mypassword + tasks: + - name: deploy logicmonitor hosts + logicmonitor: + target: host + action: add + collector: monitoring.dev.com + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + properties: + snmp.community: commstring + type: db + dc: 1 + groups: /servers/production/database, /datacenter1 + delegate_to: localhost + - name: schedule 5 hour downtime for 2012-11-10 09:08 + logicmonitor: + target: host + action: sdt + duration: 3000 + starttime: '2012-11-10 09:08' + company: '{{ company }}' + user: '{{ user }}' + password: '{{ password }}' + delegate_to: localhost '''