diff --git a/site/profiles/templates/helpers/node_lookup.erb b/site/profiles/templates/helpers/node_lookup.erb index d12c364..248f3e7 100644 --- a/site/profiles/templates/helpers/node_lookup.erb +++ b/site/profiles/templates/helpers/node_lookup.erb @@ -3,6 +3,7 @@ import requests import sys import argparse import json +import os def build_query(node=None, fact_name=None, match=None, show_role=False): query_filters = [] @@ -23,8 +24,16 @@ def build_query(node=None, fact_name=None, match=None, show_role=False): return json.dumps(["and"] + query_filters) def query_puppetdb(query): + # Determine the correct SSL certificate path based on the OS + if os.path.exists('/etc/ssl/certs/ca-certificates.crt'): # Debian/Ubuntu + cert_path = '/etc/ssl/certs/ca-certificates.crt' + elif os.path.exists('/etc/pki/tls/cert.pem'): # RHEL/CentOS + cert_path = '/etc/pki/tls/cert.pem' + else: + raise FileNotFoundError("SSL certificate file not found.") + url = 'https://puppetdbapi.main.unkin.net/pdb/query/v4/facts' - response = requests.get(url, params={'query': query}, verify='/etc/pki/tls/cert.pem') + response = requests.get(url, params={'query': query}, verify=cert_path) process_response(response) def process_response(response):