shell 如何在Airflow运行时输入密码

kx7yvsdv  于 2022-11-16  发布在  Shell
关注(0)|答案(1)|浏览(112)

我在远程群集中有一个脚本(RegisterKerbTicketAndOAuth.sh文件),
我正在使用ssh operator从Airflow连接到远程集群,并成功登录,这是成功的
现在的问题是,当我像这样运行sh文件时

sh RegisterKerbTicketAndOAuth.sh  userID@azureprd.onmicrosoft.com

上面的命令将在运行时提示输入密码两次,如下所示:

Enter password for this1:: XXXXXX
Enter password for this2:: XXXXXX

我如何在气流中通过我的

kinitCommandScript = """ 
sh RegisterKerbTicketAndOAuth.sh  userID@azureprd.onmicrosoft.com
"""

我的任务如下所示

kinitAuthentication = SSHOperator(
    ssh_hook = ConnectingToSSH, #SSHconnectionDetails
    task_id='GenerateTokenToRunDownstreamTasks',
    command= kinitCommandScript,
    #params={'my_param':NONFEDPASSWORD},
    dag=dag)

上面的注解“#params”不起作用。有人能建议如何在运行时为我的shell脚本在气流中传递我的密码吗?

注意:已尝试使用BashOperator,其与上述相同

rqqzpn5f

rqqzpn5f1#

一般来说,这是一个关于如何从某个自动化进程运行shell脚本的问题。答案完全取决于脚本是如何编写的,以及它调用了什么命令/工具。一个常见的建议是使用一个环境变量来存储密码。SSHOperator通过它的environment参数来支持这一点。应该使用什么环境变量呢?或者实际上这种方法是否有效,100%取决于您的脚本在做什么。

相关问题