mirror of https://github.com/jumpserver/jumpserver
feat: 测试可连接性mongodb支持ssl
parent
ae79584faa
commit
211a0abe9e
|
@ -11,6 +11,11 @@
|
|||
login_host: "{{ jms_asset.address }}"
|
||||
login_port: "{{ jms_asset.port }}"
|
||||
login_database: "{{ jms_asset.specific.db_name }}"
|
||||
ssl: "{{ jms_asset.specific.use_ssl }}"
|
||||
ssl_ca_certs: "{{ jms_asset.specific.ca_cert }}"
|
||||
ssl_certfile: "{{ jms_asset.specific.client_key }}"
|
||||
connection_options:
|
||||
- tlsAllowInvalidHostnames: "{{ jms_asset.specific.allow_invalid_cert}}"
|
||||
register: db_info
|
||||
|
||||
- name: Display MongoDB version
|
||||
|
@ -38,6 +43,11 @@
|
|||
login_host: "{{ jms_asset.address }}"
|
||||
login_port: "{{ jms_asset.port }}"
|
||||
login_database: "{{ jms_asset.specific.db_name }}"
|
||||
ssl: "{{ jms_asset.specific.use_ssl }}"
|
||||
ssl_ca_certs: "{{ jms_asset.specific.ca_cert }}"
|
||||
ssl_certfile: "{{ jms_asset.specific.client_key }}"
|
||||
connection_options:
|
||||
- tlsAllowInvalidHostnames: "{{ jms_asset.specific.allow_invalid_cert}}"
|
||||
when:
|
||||
- db_info is succeeded
|
||||
- change_info is succeeded
|
||||
|
|
|
@ -11,3 +11,8 @@
|
|||
login_host: "{{ jms_asset.address }}"
|
||||
login_port: "{{ jms_asset.port }}"
|
||||
login_database: "{{ jms_asset.specific.db_name }}"
|
||||
ssl: "{{ jms_asset.specific.use_ssl }}"
|
||||
ssl_ca_certs: "{{ jms_asset.specific.ca_cert }}"
|
||||
ssl_certfile: "{{ jms_asset.specific.client_key }}"
|
||||
connection_options:
|
||||
- tlsAllowInvalidHostnames: "{{ jms_asset.specific.allow_invalid_cert}}"
|
||||
|
|
|
@ -11,6 +11,11 @@
|
|||
login_host: "{{ jms_asset.address }}"
|
||||
login_port: "{{ jms_asset.port }}"
|
||||
login_database: "{{ jms_asset.specific.db_name }}"
|
||||
ssl: "{{ jms_asset.specific.use_ssl }}"
|
||||
ssl_ca_certs: "{{ jms_asset.specific.ca_cert }}"
|
||||
ssl_certfile: "{{ jms_asset.specific.client_key }}"
|
||||
connection_options:
|
||||
- tlsAllowInvalidHostnames: "{{ jms_asset.specific.allow_invalid_cert}}"
|
||||
register: db_info
|
||||
|
||||
- name: Define info by set_fact
|
||||
|
|
|
@ -11,3 +11,8 @@
|
|||
login_host: "{{ jms_asset.address }}"
|
||||
login_port: "{{ jms_asset.port }}"
|
||||
login_database: "{{ jms_asset.specific.db_name }}"
|
||||
ssl: "{{ jms_asset.specific.use_ssl }}"
|
||||
ssl_ca_certs: "{{ jms_asset.specific.ca_cert }}"
|
||||
ssl_certfile: "{{ jms_asset.specific.client_key }}"
|
||||
connection_options:
|
||||
- tlsAllowInvalidHostnames: "{{ jms_asset.specific.allow_invalid_cert}}"
|
||||
|
|
|
@ -98,6 +98,30 @@ class JMSInventory:
|
|||
if gateway:
|
||||
host.update(self.make_proxy_command(gateway))
|
||||
|
||||
@staticmethod
|
||||
def write_cert_to_file(filename, content):
|
||||
if not content:
|
||||
return ''
|
||||
with open(filename, 'w') as f:
|
||||
f.write(content)
|
||||
return filename
|
||||
|
||||
def convert_cert_to_file(self, host, path_dir):
|
||||
specific = host.get('jms_asset', {}).get('specific')
|
||||
if not specific:
|
||||
return host
|
||||
|
||||
cert_dir = os.path.join(path_dir, 'certs')
|
||||
if not os.path.exists(cert_dir):
|
||||
os.makedirs(cert_dir, 0o700, True)
|
||||
|
||||
for i in ('ca_cert', 'client_key', 'client_cert'):
|
||||
result = self.write_cert_to_file(
|
||||
os.path.join(cert_dir, i), specific.get(i)
|
||||
)
|
||||
host['jms_asset']['specific'][i] = result
|
||||
return host
|
||||
|
||||
def asset_to_host(self, asset, account, automation, protocols, platform):
|
||||
host = {
|
||||
'name': '{}'.format(asset.name),
|
||||
|
@ -178,6 +202,8 @@ class JMSInventory:
|
|||
|
||||
if not automation.ansible_enabled:
|
||||
host['error'] = _('Ansible disabled')
|
||||
else:
|
||||
host = self.convert_cert_to_file(host, path_dir)
|
||||
|
||||
if self.host_callback is not None:
|
||||
host = self.host_callback(
|
||||
|
|
Loading…
Reference in New Issue