Unix 气流用户问题
我们已经在虚拟环境中使用sudoroot安装了来自服务帐户(比如“ABC”)的气流,但我们面临的问题很少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的使用,未拾取环境
- 使用bash操作符调用python脚本。Python脚本使用了一些 unix帐户“ABC”中的环境变量。从运行时 未拾取气流、环境变量。为了找到 气流的用户,使用bashoperator命令创建虚拟dag “whoami”,它返回ABC用户。因此,气流使用相同的“ABC” 用户。那么为什么不选择环境变量呢
- 然后尝试了
。由于sudo的使用,未拾取环境变量。在没有环境变量的情况下进行了变通,并且在开发环境中运行良好,没有问题。但是,当移动到不同的环境时,出现以下错误,我们没有编辑sudoers文件的权限。管理策略没有遵守sudo-uabcpythonscript
- 然后在.cfg文件中使用'impersonation=ABC'选项并在没有sudo的情况下运行气流。这一次,bash命令对环境变量失败,它询问虚拟环境中脚本中使用的所有包
使用
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之前是否尝试寻源环境变量文件?