docker-airflow icon indicating copy to clipboard operation
docker-airflow copied to clipboard

RBAC

Open prasanthbangs2016 opened this issue 4 years ago • 3 comments

im trying to create airfllow RBAC user as below through docker. and, config as follows

Dockerfile config

CMD ["airflow create_user -r Admin -u admin -f xx -l pamula -p xx -e [email protected]"]

ENTRYPOINT ["/usr/local/airflow/entrypoint.sh"]

CMD ["webserver"]

airflow.cfg

Use FAB-based webserver with RBAC feature

rbac = True

https://airflow.apache.org/security.html#web-authentication

authenticate = True auth_backend = airflow.contrib.auth.backends.password_auth

Docker container is up however if i see the logs i see below error and web UI is not coming, please do the needful.

docker logs -f 2ad74479183b [2020-07-23 22:14:46,885] {settings.py:253} INFO - settings.configure_orm(): Using pool settings. pool_size=5, max_overflow=10, pool_recycle=1800, pid=1


____ |( )_______ / /________ __ ____ /| |_ /__ / / __ / __ _ | /| / / ___ ___ | / _ / _ / _ / / // / |/ |/ / // |// // // // _/____/|__/ [2020-07-23 22:14:59,683] {manager.py:710} WARNING - No user yet created, use flask fab command to do it. [2020-07-23 22:15:48,179] {init.py:51} INFO - Using executor LocalExecutor [2020-07-23 22:15:48,179] {dagbag.py:403} INFO - Filling up the DagBag from /dev/null [2020-07-23 22:16:58,982] {security.py:461} INFO - Start syncing user roles. [2020-07-23 22:19:25,248] {security.py:370} INFO - Fetching a set of all permission, view_menu from FAB meta-table [2020-07-23 22:22:58,193] {security.py:313} INFO - Cleaning faulty perms Running the Gunicorn Server with: Workers: 4 sync Host: 0.0.0.0:8080 Timeout: 120 Logfiles: - -

[2020-07-23 22:23:00,757] {settings.py:253} INFO - settings.configure_orm(): Using pool settings. pool_size=5, max_overflow=10, pool_recycle=1800, pid=9 [2020-07-23 22:23:00 +0000] [9] [INFO] Starting gunicorn 19.10.0 [2020-07-23 22:23:00 +0000] [9] [INFO] Listening at: http://0.0.0.0:8080 (9) [2020-07-23 22:23:00 +0000] [9] [INFO] Using worker: sync [2020-07-23 22:23:00 +0000] [12] [INFO] Booting worker with pid: 12 [2020-07-23 22:23:00 +0000] [13] [INFO] Booting worker with pid: 13 [2020-07-23 22:23:00 +0000] [14] [INFO] Booting worker with pid: 14 [2020-07-23 22:23:01 +0000] [15] [INFO] Booting worker with pid: 15 [2020-07-23 22:23:08,197] {manager.py:710} WARNING - No user yet created, use flask fab command to do it. [2020-07-23 22:23:08,222] {manager.py:710} WARNING - No user yet created, use flask fab command to do it. [2020-07-23 22:23:08,264] {manager.py:710} WARNING - No user yet created, use flask fab command to do it. [2020-07-23 22:23:08,322] {manager.py:710} WARNING - No user yet created, use flask fab command to do it.

prasanthbangs2016 avatar Jul 23 '20 22:07 prasanthbangs2016

@prasanthbangs2016 did you ever figure this out?

mkwatson avatar Jul 30 '20 17:07 mkwatson

@mkwatson yes, i had reset the db and re initialized the db with airflow cli commnads

prasanthbangs2016 avatar Aug 02 '20 13:08 prasanthbangs2016

The trick for me was to modify the airflow.cfg as above but then place the airflow create_user call not in the Dockerfile, but in the entrypoint.

That is, add a line like airflow create_user -r Admin -u admin -f xx -l pamula -p xx -e [email protected]

after airflow initdb in https://github.com/puckel/docker-airflow/blob/a1d70c66f7a4009c5381ac10049632ece4274147/script/entrypoint.sh#L112

If you watch the logs via docker logs [webserver container id], you will see Admin user admin created. printed just before the webserver starts.

gte620v avatar Aug 10 '20 04:08 gte620v