我想要创建一个ansible任务来初始化用于气流服务器的sqlite数据库。
使用以下命令"airflow initdb“时,我的ansible任务无法初始化气流数据库。我可以通过以下两种方法成功地初始化sqlite:
user@server:~$ source ~/airflow/.venv/bin/activate
(.venv) user@serverr:~$ airflow initdbuser@server:~$ ~/airflow/.venv/bin/airflow initdb我试图在不激活虚拟环境的情况下初始化数据库。
这里是我的环境:
服务器操作系统: Ubuntu 18.04
Python 3.6.8,Python虚拟环境: venv (包: python3-venv)
Ansible: 2.8.2,DB: Sqlite,气流1.10.3
我的脚本:
- name: initialize | airflow | database
shell: "~/airflow/.venv/bin/airflow initdb"
args:
executable: "/bin/bash"
become: yes我还尝试了以下几种变体:
shell: "airflow initdb"
args:
chdir: /home/user/airflow/.venv/bin
executable: "/bin/bash"
become: yes
- name: initialize | airflow | database
shell: "/home/user/airflow/.venv/bin/airflow initdb"
become: yes下面是我的ansible脚本中的错误消息:
TASK [airflow : initialize airflow database] ******************************************************************************
fatal: [air]: FAILED! => {"changed": true, "cmd": "airflow initdb", "delta": "0:00:00.002485", "end": "2019-07-29 11:40:52.737741", "msg": "non-zero return code", "rc": 127, "start": "2019-07-29 11:40:52.735256", "stderr": "/bin/bash: airflow: command not found", "stderr_lines": ["/bin/bash: airflow: command not found"], "stdout": "", "stdout_lines": []}任何帮助都将非常感谢-TIA
发布于 2019-07-31 02:15:26
下面的命令应该适用于您。
- name: initialize | airflow | database
shell: "#!/bin/bash /home/user/airflow/.venv/bin/airflow initdb"
become: yes由于您处于sh模式,它可能无法识别正在执行的命令。我相信一些极客会提供一个更好的解决方案。但现在,你可以试试这种方法。
以下命令包括虚拟环境激活和操作操作:
- name: initialize | airflow | database
shell: "/bin/bash -c 'source /home/transit/airflow/.venv/bin/activate;
/home/transit/airflow/.venv/bin/airflow initdb'"
become: yeshttps://stackoverflow.com/questions/57258746
复制相似问题