0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker-airflow で ログイン認証機能を設定する

Last updated at Posted at 2020-02-18

スクリーンショット 2020-02-18 20.11.10.png

docker-airflowでログイン機能を設定したい人向け。
docker-airflowの場合、公式ドキュメントの手順通り実行すると、スクリプトでのユーザー登録でこける。

sqlite3.OperationalError: no such table: users

なので、自力でpasswordのハッシュ値生成して、直接ユーザー登録する必要があるので、手順をメモ。
CeleryExecutorの前提で書くけど、LocalExecutorでも同じだと思う。

1. airflow.conf を編集する

${PROJECT}/config/airflow.cnf[webserver] の項目のauthの設定(airflow-1.10.9ではL300あたり)を以下のようにする

~略~

[webserver]

~略^

# Set to true to turn on authentication:
# https://airflow.apache.org/security.html#web-authentication
authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth 

とりあえず、これでログイン必須になる。アクセスするとログイン画面は表示される。

2. パスワードのハッシュを取得

pythonスクリプトで取得する。ハッシュが取れればなんでもok。

# なければ、flask-bcryptをインストール
pip install flask-bcrypt

# pythonスクリプトを実行しハッシュを取得
python
>>> from flask_bcrypt import generate_password_hash
>>> generate_password_hash('your_password', 12)

# 出力されたハッシュ値をメモ

3. postgreSQLに直接ユーザー情報を登録する

直接postgreSQLでuser登録を行う。

# コンテナ一覧表示
docker ps

# postgreSQLのコンテナにsshログイン
docker exec -it ${PSQL_CONTAINER_ID} bash

# airflowユーザーでpsqlにログイン
psql -U airflow

# ユーザーをinsert
INSERT INTO users (username, email, superuser, password) VALUES ('your_name', 'your_email', True, '2で取得したハッシュ値');

これでdockerを再ビルドして、起動すればok。

参考

Fail to create user on users table on Docker Webserver Container

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?