首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用无源气流初始化sqlite

用无源气流初始化sqlite
EN

Stack Overflow用户
提问于 2019-07-29 17:29:11
回答 1查看 797关注 0票数 0

我想要创建一个ansible任务来初始化用于气流服务器的sqlite数据库。

使用以下命令"airflow initdb“时,我的ansible任务无法初始化气流数据库。我可以通过以下两种方法成功地初始化sqlite:

  1. 激活虚拟环境时,从Python虚拟环境运行命令。
代码语言:javascript
复制
user@server:~$ source ~/airflow/.venv/bin/activate
(.venv) user@serverr:~$ airflow initdb
  1. 在没有激活虚拟环境的情况下从shell运行命令。
代码语言:javascript
复制
user@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

我的脚本:

代码语言:javascript
复制
- name: initialize | airflow | database
  shell: "~/airflow/.venv/bin/airflow initdb"
  args:
    executable: "/bin/bash"
  become: yes

我还尝试了以下几种变体:

代码语言:javascript
复制
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脚本中的错误消息:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-31 02:15:26

下面的命令应该适用于您。

代码语言:javascript
复制
- name: initialize | airflow | database
  shell: "#!/bin/bash /home/user/airflow/.venv/bin/airflow initdb"
  become: yes

由于您处于sh模式,它可能无法识别正在执行的命令。我相信一些极客会提供一个更好的解决方案。但现在,你可以试试这种方法。

以下命令包括虚拟环境激活和操作操作:

代码语言:javascript
复制
- name: initialize | airflow | database
  shell: "/bin/bash -c 'source /home/transit/airflow/.venv/bin/activate; 
         /home/transit/airflow/.venv/bin/airflow initdb'"
  become: yes
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57258746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档