2018-07-25 11:57:33 +02:00
|
|
|
airflow
|
|
|
|
=======
|
2018-07-25 12:37:35 +02:00
|
|
|
|
2019-09-28 12:58:18 +02:00
|
|
|
![](https://airflow.apache.org/_images/pin_large.png)
|
|
|
|
|
2018-07-25 12:37:35 +02:00
|
|
|
## How It Works
|
|
|
|
|
|
|
|
```
|
|
|
|
+---------+
|
|
|
|
+--> | Worker1 |
|
|
|
|
redis | +---------+
|
|
|
|
postgres |
|
|
|
|
+--------+ | +---------+
|
|
|
|
| Master | <--+--> | Worker2 |
|
|
|
|
+--------+ | +---------+
|
|
|
|
webserver |
|
|
|
|
scheduler | +---------+
|
|
|
|
flower +--> | Worker3 |
|
|
|
|
+---------+
|
|
|
|
```
|
|
|
|
|
|
|
|
## Quick Start
|
|
|
|
|
|
|
|
```bash
|
2019-09-28 12:58:18 +02:00
|
|
|
$ docker stack deploy -c docker-stack.yaml airflow
|
2019-10-17 11:38:21 +02:00
|
|
|
$ docker stack services airflow
|
|
|
|
$ docker service ps airflow_webserver
|
|
|
|
$ docker exec -it airflow_webserver.1.xxxxxx sh
|
|
|
|
>>> airflow create_user -r Admin -u admin -e admin@borderxlab.com -f Super -l Admin -p secret
|
|
|
|
>>> airflow list_users
|
|
|
|
╒══════╤════════════╤══════════════════════╤══════════════╤═════════════╤═════════╕
|
|
|
|
│ Id │ Username │ Email │ First name │ Last name │ Roles │
|
|
|
|
╞══════╪════════════╪══════════════════════╪══════════════╪═════════════╪═════════╡
|
|
|
|
│ 1 │ admin │ admin@borderxlab.com │ Super │ Admin │ [Admin] │
|
|
|
|
╘══════╧════════════╧══════════════════════╧══════════════╧═════════════╧═════════╛
|
|
|
|
>>> exit
|
|
|
|
|
2019-09-28 12:58:18 +02:00
|
|
|
$ curl http://localhost:8080/
|
|
|
|
$ curl http://localhost:5555/
|
2018-07-25 12:37:35 +02:00
|
|
|
```
|
2019-09-28 12:58:18 +02:00
|
|
|
|
2019-10-17 10:05:51 +02:00
|
|
|
> :warning: You need to prepare nfs server with `airflow.cfg`.
|
|
|
|
|
2020-08-17 09:45:42 +02:00
|
|
|
```bash
|
2019-10-17 10:05:51 +02:00
|
|
|
$ python -c 'from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())'
|
|
|
|
CD2wL7G0zt1SLuO4JQpLJuHtBaBEcXWKbQyvkvf2cZ8=
|
|
|
|
```
|
|
|
|
|
|
|
|
> :warning: You should set another value to `fernet_key` in `airflow.cfg` to improve security.
|