diff --git a/apps/accounts/automations/verify_account/custom/rdp/main.yml b/apps/accounts/automations/verify_account/custom/rdp/main.yml index cf4a937a7..b0c7cbe4f 100644 --- a/apps/accounts/automations/verify_account/custom/rdp/main.yml +++ b/apps/accounts/automations/verify_account/custom/rdp/main.yml @@ -1,11 +1,12 @@ - hosts: custom gather_facts: no vars: + ansible_shell_type: sh ansible_connection: local tasks: - - name: Verify account - ssh_ping: + - name: Verify account (pyfreerdp) + rdp_ping: login_host: "{{ jms_asset.address }}" login_port: "{{ jms_asset.port }}" login_user: "{{ account.username }}" diff --git a/apps/accounts/automations/verify_account/custom/ssh/main.yml b/apps/accounts/automations/verify_account/custom/ssh/main.yml index cf4a937a7..29b1dc22b 100644 --- a/apps/accounts/automations/verify_account/custom/ssh/main.yml +++ b/apps/accounts/automations/verify_account/custom/ssh/main.yml @@ -4,7 +4,7 @@ ansible_connection: local tasks: - - name: Verify account + - name: Verify account (paramiko) ssh_ping: login_host: "{{ jms_asset.address }}" login_port: "{{ jms_asset.port }}" diff --git a/apps/assets/automations/ping/custom/rdp/main.yml b/apps/assets/automations/ping/custom/rdp/main.yml new file mode 100644 index 000000000..75e40c027 --- /dev/null +++ b/apps/assets/automations/ping/custom/rdp/main.yml @@ -0,0 +1,15 @@ +- hosts: custom + gather_facts: no + vars: + ansible_shell_type: sh + ansible_connection: local + + tasks: + - name: Test asset connection (pyfreerdp) + rdp_ping: + login_user: "{{ jms_account.username }}" + login_password: "{{ jms_account.secret }}" + login_host: "{{ jms_asset.address }}" + login_port: "{{ jms_asset.port }}" + login_secret_type: "{{ jms_account.secret_type }}" + login_private_key_path: "{{ jms_account.private_key_path }}" diff --git a/apps/assets/automations/ping/custom/rdp/manifest.yml b/apps/assets/automations/ping/custom/rdp/manifest.yml new file mode 100644 index 000000000..77b8a855e --- /dev/null +++ b/apps/assets/automations/ping/custom/rdp/manifest.yml @@ -0,0 +1,13 @@ +id: ping_by_rdp +name: "{{ 'Ping by pyfreerdp' | trans }}" +category: + - device + - host +type: + - windows +method: ping +i18n: + Ping by pyfreerdp: + zh: 使用 Python 模块 pyfreerdp 测试主机可连接性 + en: Ping by pyfreerdp module + ja: Pyfreerdpモジュールを使用してホストにPingする diff --git a/apps/assets/automations/ping/custom/main.yml b/apps/assets/automations/ping/custom/ssh/main.yml similarity index 90% rename from apps/assets/automations/ping/custom/main.yml rename to apps/assets/automations/ping/custom/ssh/main.yml index 50911847b..9725f63d7 100644 --- a/apps/assets/automations/ping/custom/main.yml +++ b/apps/assets/automations/ping/custom/ssh/main.yml @@ -4,7 +4,7 @@ ansible_connection: local tasks: - - name: Test asset connection + - name: Test asset connection (paramiko) ssh_ping: login_user: "{{ jms_account.username }}" login_password: "{{ jms_account.secret }}" diff --git a/apps/assets/automations/ping/custom/manifest.yml b/apps/assets/automations/ping/custom/ssh/manifest.yml similarity index 100% rename from apps/assets/automations/ping/custom/manifest.yml rename to apps/assets/automations/ping/custom/ssh/manifest.yml diff --git a/apps/ops/ansible/modules/rdp_ping.py b/apps/ops/ansible/modules/rdp_ping.py index f069b5bf7..6098f155d 100644 --- a/apps/ops/ansible/modules/rdp_ping.py +++ b/apps/ops/ansible/modules/rdp_ping.py @@ -39,10 +39,6 @@ import pyfreerdp from typing import NamedTuple from ansible.module_utils.basic import AnsibleModule -from ops.ansible.modules_utils.custom_common import ( - common_argument_spec -) - # ========================================= # Module execution. @@ -55,6 +51,18 @@ class Param(NamedTuple): password: str +def common_argument_spec(): + options = dict( + login_host=dict(type='str', required=False, default='localhost'), + login_port=dict(type='int', required=False, default=22), + login_user=dict(type='str', required=False, default='root'), + login_password=dict(type='str', required=False, no_log=True), + login_secret_type=dict(type='str', required=False, default='password'), + login_private_key_path=dict(type='str', required=False, no_log=True), + ) + return options + + def main(): options = common_argument_spec() module = AnsibleModule(argument_spec=options, supports_check_mode=True)