Hi,

The current DS only supports tasks running on the Worker servers, but in
most real business scenarios, tasks need to be run on the specified server,
and the server does not need to deploy the Worker service. Please
check the Issue
#11652 <https://github.com/apache/dolphinscheduler/issues/11652> .
Thanks to @SbloodyS for suggesting me to provide the details of the
architecture design.

Please check the architecture design. I'm not sure if DS needs to use a
fixed design template, so I'll try to be as detailed as possible.
This design mainly consists of four parts:

*Part 1: Create a host table.*
Create a table named t_ds_host in db. Please check the following  E-R
diagram.  T_DS_HOST table The purpose of this table design is to save the
host information configured in the UI.

[image: image.png]

*Part 2: Add host manage page.*
Add a *Host Manage* module in the Security Page, such as the
*Environment Manage* page. Users can add the host records and test connect
it.
[image: image.png]
*Part 3: Add host manage API*
Add host manage API, same as environment manage model.
About the connect test function, I think that DS needs to test SSH and SFTP
at the same time. Because we need to scp our task script to this host and
run shell commands. I plan to use the JSch or SSNJ 3rd.

*Part 4: Add host selection*
Add host selection on Shell and Python task pages.
Then shellTask or pythonTask can check this host param, if host param is
not null, the task will scp the command files to the remote server and
dispatch the exec command.

Why just add to Shell and Python tasks?
Because I think each task needs to decide for itself if it needs to be
executed on the remote server, I think shell and python should add it.

look forward to your comments.

B. R.
Yann

Reply via email to