Scott's Blog

学则不固, 知则不惑

0%

记录 Airflow 的部署

一个 Python 编写的调度工具,在此记录它的部署过程。

部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# deploy new server
From vultr

# win10 generate ssh key
ssh-keygen
cat | Users/YourUserName/.ssh/id_rsa.pub | set-clibboard

使用 Docker 配置 Airflow

# 拉取镜像
docker pull puckel/docker-airflow
# 启动
docker run -d -p 8080:8080 puckel/docker-airflow webserver
# 进入启动的容器并启动 shell
docker exec -i -t 1291e03f bash

# 设置登录密码
## 创建 py 文件
vim set_password.py

## 贴入代码
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()

## 修改配置文件,将配置文件拷贝出来用vim修改
sudo docker cp a3a3dc6b79fe:/usr/local/airflow/airflow.cfg .
vim airflow.cfg . # 修改
sudo docker cp airflow.cfg dc8b159da311:/usr/local/airflow/

# 将 py 文件拷贝到容器
sudo docker cp set_password.py 1291e03f85fc:/usr/local/airflow/

# 进入容器
docker exec -i -t 1291e03f85fc bash

# 运行配置登录的代码
python set_password.py # 提示缺少包 flask_bcrypt

# 安装 flask_bcrypt 包
pip intall flask_bcrypt

# 运行配置登录的代码, 重启
python set_password.py
docker container restart 1291e03f85fc
docker container ls

使用
# list dags

airflow list_dags

Filling up the DagBag from /home/repl/workspace/dags , 加粗部分为 dags 所在文件夹

# 查看配置文件
cat ~/airflow/airflow.cfg

其他
# 容器启动失败查看日志
sudo docker logs ${container_id}

参考