如何在airflow中添加管理员用户?

如何在airflow中添加管理员用户?,airflow,Airflow,如何在airflow中添加管理员用户 我想使用简单的Web身份验证。 若我按照文档中的描述添加用户,那个么该用户不是管理员 来自文档的代码: import airflow from airflow import models, settings from airflow.contrib.auth.backends.password_auth import PasswordUser user = PasswordUser(models.User()) user.username = 'new_us

如何在airflow中添加管理员用户

我想使用简单的Web身份验证。 若我按照文档中的描述添加用户,那个么该用户不是管理员

来自文档的代码:

import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = 'new_user_name'
user.email = 'new_user_email@example.com'
user.password = 'set_the_password'
session = settings.Session()
session.add(user)
session.commit()
session.close()
exit()
我发现models.User()具有超级用户属性 我只是将该属性设置为True:

import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = 'new_user_name'
user.email = 'new_user_email@example.com'
user.password = 'set_the_password'
user.superuser = True
session = settings.Session()
session.add(user)
session.commit()
session.close()
exit()

如果您使用的是
rbac
UI,最简单的选项是为气流2运行以下命令:

气流用户创建\
--电子邮件--名字名字名字名字\
--lastname lastname--密码\
--角色管理员--用户名

在运行“添加用户”脚本时,也不要忘记设置AIRFLOW\u HOME var,否则它会将用户创建到sqlite数据库中,而不是实际的数据库中

添加_user.py

import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = 'admin'
user.email = 'admin@company.com'
user.password = 'pw123'
user.superuser = True
session = settings.Session()
session.add(user)
session.commit()
session.close()
exit()
创建用户

export AIRFLOW_HOME=/path/to/your/airflow

source venv/bin/activate

(airflow) python add_user.py

如果有人正在寻找一种容易理解的方式,那么事情就是这样

激活python环境并启动python shell。然后,借助这些命令,您可以轻松地在气流中设置新用户

>>> import airflow
>>> from airflow import models, settings
>>> from airflow.contrib.auth.backends.password_auth import PasswordUser
>>> user = PasswordUser(models.User())
>>> user.username = 'new_user_name'
>>> user.email = 'new_user_email@example.com'
>>> user.password = 'set_the_password'
>>> user.superuser = True
>>> session = settings.Session()
>>> session.add(user)
>>> session.commit()
>>> session.close()
>>> exit()

气流2.0+

airflow users create --role Admin --username x \
--firstname y \
--lastname z \
--email m \
--password n
只要将环境变量设置为指向airflow db后端(给定其可从终端访问),就可以在任何位置从终端执行此操作

很明显,安装了气流

pip3 install apache-airflow[postgres]

假设您使用的是postgres后端,如果您使用的是sqlite,则只需安装apache airflow即可。

根据apache airflow的最新文档,使用以下命令创建管理员用户

$airflow用户创建-e电子邮件-f firstname-l lastname-p密码-r管理员-u用户名

Apache airflow文档

airflow命令错误:参数组\u或\u命令:
airflow create\u用户`命令已被删除,请使用
airflow用户创建
,请参阅上面的帮助`
pip3 install apache-airflow[postgres]