我们已经在虚拟环境中使用sudo根从服务帐户“ ABC”安装了气流,但是我们面临的问题很少。
使用bash运算符调用python脚本。 Python脚本使用了一些 来自Unix帐户“ ABC”的环境变量。 气流,没有选择环境变量。为了找到 气流的用户,使用bashoperator命令创建了虚拟dag 'whoami',它返回ABC用户。所以气流使用的是相同的“ ABC” 用户。那为什么不选择环境变量呢?
然后尝试了sudo -u ABC python script
。由于使用sudo,因此未选择环境变量。解决方法是否没有环境变量,并且可以在开发环境中顺利运行而没有问题。但是当移动到其他环境时,出现以下错误,我们没有编辑sudoers文件的权限。管理员政策不符合要求。
sudo:抱歉,您必须有一个tty才能运行sudo
我的问题:
答案 0 :(得分:0)
使用virtualenv
安装任何python软件包总是一个好主意。因此,您应该始终喜欢在virtaulenv
中安装气流。
您可以使用systemd或supervisord并为气流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/'
答案 1 :(得分:0)
我们遇到了同样的问题。
sudo: sorry, you must have a tty to run sudo
我们得到的解决方案是
su ABC python script