在气流任务中,我执行以下操作:
try:
db_hd = sqlite3.connect(self.sqlite_db)
except sqlite3.Error as e:
print("sqlite_db:", self.sqlite_db)
print("system user:", getpass.getuser(), pwd.getpwuid(os.getuid()).pw_name)
raise
日志中显示的是:
^{pr2}$文件权限包括:
-rw-rw----. 1 root airflow 2048 Aug 16 17:59 /opt/secure/sqlite.db
mysecairflowuser在“气流”组中:
[root@myserver ~]# grep mysecairflowuser /etc/group
airflow:x:1105:myairflowuser,mysecairflowuser
selinux处于许可模式:
[root@myserver ~]# getenforce
Permissive
所有工作服务器上的文件权限、组、系统用户和selinux设置都相同。在所有worker上,进程以mysecairflowuser的身份运行,systemd服务文件为:
[Unit]
Description=Airflow worker
After=network.target
[Service]
EnvironmentFile=/etc/airflow/deci.global.env
User=mysecairflowuser
Group=airflow
Type=simple
ExecStart=/usr/local/bin/airflow worker
[Install]
WantedBy=multi-user.target
如果我在本地执行Python代码,在任何工作服务器上以mysecairflowuser的身份登录,它就可以工作,因此我确信mysecairflowuser可以访问这个文件。
如果我向任何具有chmod o+r /opt/secure/sqlite.db
的用户授予读取权限,则在气流任务执行期间不会出错。
知道是什么原因造成的吗?在
环境:CentOS 7上的Airflow v1.10.1,使用Celery、一个运行调度程序和Web服务器的主服务器和几个工人。在
目前没有回答
相关问题 更多 >
编程相关推荐