【问题标题】:How to enter password during runtime in Airflow如何在 Airflow 运行时输入密码
【发布时间】:2022-10-19 02:19:39
【问题描述】:

我在远程集群中有一个脚本(RegisterKerbTicketAndOAuth.sh 文件),

我正在使用 ssh 操作符从 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 试过,和上面一样

【问题讨论】:

    标签: python shell airflow airflow-2.x


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-11
      • 2010-09-18
      • 1970-01-01
      • 2016-06-18
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      相关资源
      最近更新 更多