Unix 气流用户问题

Unix 气流用户问题,unix,airflow,airflow-scheduler,user-management,Unix,Airflow,Airflow Scheduler,User Management,我们已经在虚拟环境中使用sudoroot安装了来自服务帐户(比如“ABC”)的气流,但我们面临的问题很少 使用bash操作符调用python脚本。Python脚本使用了一些 unix帐户“ABC”中的环境变量。从运行时 未拾取气流、环境变量。为了找到 气流的用户,使用bashoperator命令创建虚拟dag “whoami”,它返回ABC用户。因此,气流使用相同的“ABC” 用户。那么为什么不选择环境变量呢 然后尝试了sudo-uabcpythonscript。由于sudo的使用,未拾取环境

我们已经在虚拟环境中使用sudoroot安装了来自服务帐户(比如“ABC”)的气流,但我们面临的问题很少

  • 使用bash操作符调用python脚本。Python脚本使用了一些 unix帐户“ABC”中的环境变量。从运行时 未拾取气流、环境变量。为了找到 气流的用户,使用bashoperator命令创建虚拟dag “whoami”,它返回ABC用户。因此,气流使用相同的“ABC” 用户。那么为什么不选择环境变量呢

  • 然后尝试了
    sudo-uabcpythonscript
    。由于sudo的使用,未拾取环境变量。在没有环境变量的情况下进行了变通,并且在开发环境中运行良好,没有问题。但是,当移动到不同的环境时,出现以下错误,我们没有编辑sudoers文件的权限。管理策略没有遵守

sudo:对不起,你必须有一个tty才能运行sudo

  • 然后在.cfg文件中使用'impersonation=ABC'选项并在没有sudo的情况下运行气流。这一次,bash命令对环境变量失败,它询问虚拟环境中脚本中使用的所有包
我的问题是:

  • 气流在Sudo root之后通过ABC安装。为什么ABC没有 在运行脚本时处理
  • 为什么不选择ABC环境变量
  • 甚至模拟选项也没有选择环境 变量
  • 是否可以在没有虚拟环境的情况下安装airflow
  • 安装气流的最佳方法是什么?使用独立用户 苏多根呢?我们使用专用用户来运行python 剧本。请专家们澄清

  • 使用
    virtualenv
    安装任何python软件包都是一个好主意。因此,您应该始终更喜欢在
    virtaulenv
    中安装气流

    您可以使用systemd或为airflow Web服务器和调度器创建程序。主管的配置示例:

    [program:airflow-webserver]
    command=sh /home/airflow/scripts/start-airflow-webserver.sh
    directory=/home/airflow
    autostart=true
    autorestart=true
    startretries=3
    stderr_logfile=/home/airflow/supervisor/logs/airflow-webserver.err.log
    stdout_logfile=/home/airflow/supervisor/logs/airflow-webserver.log
    user=airflow
    environment=AIRFLOW_HOME='/home/airflow/'
    
    [program:airflow-scheduler]
    command=sh /home/airflow/scripts/start-airflow-scheduler.sh
    directory=/home/airflow
    autostart=true
    autorestart=true
    startretries=3
    stderr_logfile=/home/airflow/supervisor/logs/airflow-scheduler.err.log
    stdout_logfile=/home/airflow/supervisor/logs/airflow-scheduler.log
    user=airflow
    environment=AIRFLOW_HOME='/home/airflow/'
    

    使用
    virtualenv
    安装任何python软件包都是一个好主意。因此,您应该始终更喜欢在
    virtaulenv
    中安装气流

    您可以使用systemd或为airflow Web服务器和调度器创建程序。主管的配置示例:

    [program:airflow-webserver]
    command=sh /home/airflow/scripts/start-airflow-webserver.sh
    directory=/home/airflow
    autostart=true
    autorestart=true
    startretries=3
    stderr_logfile=/home/airflow/supervisor/logs/airflow-webserver.err.log
    stdout_logfile=/home/airflow/supervisor/logs/airflow-webserver.log
    user=airflow
    environment=AIRFLOW_HOME='/home/airflow/'
    
    [program:airflow-scheduler]
    command=sh /home/airflow/scripts/start-airflow-scheduler.sh
    directory=/home/airflow
    autostart=true
    autorestart=true
    startretries=3
    stderr_logfile=/home/airflow/supervisor/logs/airflow-scheduler.err.log
    stdout_logfile=/home/airflow/supervisor/logs/airflow-scheduler.log
    user=airflow
    environment=AIRFLOW_HOME='/home/airflow/'
    

    我们的问题和你的一样

    sudo: sorry, you must have a tty to run sudo
    
    我们得到的解决办法是

    su ABC python script
    

    我们的问题和你的一样

    sudo: sorry, you must have a tty to run sudo
    
    我们得到的解决办法是

    su ABC python script
    

    在启动webserver和scheduler之前是否尝试寻源环境变量文件?在启动webserver和scheduler之前是否尝试寻源环境变量文件?