我在远程群集中有一个脚本(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,其与上述相同
1条答案
按热度按时间rqqzpn5f1#
一般来说,这是一个关于如何从某个自动化进程运行shell脚本的问题。答案完全取决于脚本是如何编写的,以及它调用了什么命令/工具。一个常见的建议是使用一个环境变量来存储密码。
SSHOperator
通过它的environment
参数来支持这一点。应该使用什么环境变量呢?或者实际上这种方法是否有效,100%取决于您的脚本在做什么。