From 5864871fc17046ce37875dd6e43414b1cf381cd3 Mon Sep 17 00:00:00 2001 From: Filippo125 Date: Sat, 14 Jul 2018 15:10:16 +0200 Subject: [PATCH] Zabbix inventory improvement (#42669) * Add validate_certs option to zabbix inventory * Add validation option * Fix pep8 * Add changelog --- changelogs/fragments/42669-add_ssl_zabbix_inventory.yaml | 4 ++++ contrib/inventory/zabbix.ini | 3 +++ contrib/inventory/zabbix.py | 7 ++++++- 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/42669-add_ssl_zabbix_inventory.yaml diff --git a/changelogs/fragments/42669-add_ssl_zabbix_inventory.yaml b/changelogs/fragments/42669-add_ssl_zabbix_inventory.yaml new file mode 100644 index 00000000000..cb9be605b24 --- /dev/null +++ b/changelogs/fragments/42669-add_ssl_zabbix_inventory.yaml @@ -0,0 +1,4 @@ +--- +minor_changes: + - Added capability to skip ssl verification + on zabbix host with dynamic inventory \ No newline at end of file diff --git a/contrib/inventory/zabbix.ini b/contrib/inventory/zabbix.ini index 618c2b9fe8e..ac12c1b4978 100644 --- a/contrib/inventory/zabbix.ini +++ b/contrib/inventory/zabbix.ini @@ -9,3 +9,6 @@ server = http://zabbix.example.com/zabbix # Login username = admin password = zabbix + +# Verify the server's SSL certificate +validate_certs = True \ No newline at end of file diff --git a/contrib/inventory/zabbix.py b/contrib/inventory/zabbix.py index d5573aa0034..48b3017194c 100755 --- a/contrib/inventory/zabbix.py +++ b/contrib/inventory/zabbix.py @@ -73,6 +73,10 @@ class ZabbixInventory(object): self.zabbix_username = config.get('zabbix', 'username') if config.has_option('zabbix', 'password'): self.zabbix_password = config.get('zabbix', 'password') + # ssl certs + if config.has_option('zabbix', 'validate_certs'): + if config.get('zabbix', 'validate_certs') in ['false', 'False', False]: + self.validate_certs = False def read_cli(self): parser = argparse.ArgumentParser() @@ -118,6 +122,7 @@ class ZabbixInventory(object): self.zabbix_server = None self.zabbix_username = None self.zabbix_password = None + self.validate_certs = True self.meta = {} self.read_settings() @@ -125,7 +130,7 @@ class ZabbixInventory(object): if self.zabbix_server and self.zabbix_username: try: - api = ZabbixAPI(server=self.zabbix_server) + api = ZabbixAPI(server=self.zabbix_server, validate_certs=self.validate_certs) api.login(user=self.zabbix_username, password=self.zabbix_password) except BaseException as e: print("Error: Could not login to Zabbix server. Check your zabbix.ini.", file=sys.stderr)