无法通过Ansible在远程主机上执行sqlite命令- [Errno 2]无此类文件或目录:b '立方3'”

ngynwnxp  于 2022-11-24  发布在  SQLite
关注(0)|答案(1)|浏览(216)

我试图在许多服务器上运行一个简单的查询。我100%知道有问题的文件和目录存在。
我可以执行简单的命令,如lspwdwhoami等,还可以在远程主机上运行sqlite命令。
行动手册任务:

- name: Do a test SELECT statement
  become: yes
  become_user: root
  command: sqlite3 /usr/local/share/sqlite/dbfile.sqlite3 "SELECT * FROM db WHERE hostname="{{ db_server_prompt }}""
  register: query_result

- debug: var=query_result.stdout_lines

我收到的错误是"msg": "[Errno 2] No such file or directory: b'sqlite3'",
我的语法有什么问题吗?为什么在使用sqlite3命令时它告诉我有"No such file or directory"?我已经尝试了可执行文件的绝对路径(/usr/bin/sqlite3),但我得到了同样的错误。
我尝试使用chdir作为每个this answer的参数,但是我得到了Unable to change directory before execution。这些东西都不起作用。我真的很想使用Ansible,因为有20多个服务器需要它。

    • 更新**我可以将其作为临时命令运行:

ansible sqlite_servers_test -m command -a "sqlite3 /usr/local/share/sqlite/dbfile.sqlite3 "SELECT * FROM db_pool WHERE hostname=myhostname" "
尝试通过行动手册运行它有什么区别?

qfe3c7zg

qfe3c7zg1#

如果你使用的是windows,并且不想永久安装sqlite3(在我的例子中,我只想更新保存在windows中的*.db sqlite3文件的一些表字段,不想在windows中安装sqlite3),我下载了sqlite3.exe并复制到windows中执行我的ansible。之后sqlite3从windows中删除。
Download link
是的。

相关问题