我试图在许多服务器上运行一个简单的查询。我100%知道有问题的文件和目录存在。
我可以执行简单的命令,如ls
、pwd
、whoami
等,还可以在远程主机上运行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" "
尝试通过行动手册运行它有什么区别?
1条答案
按热度按时间qfe3c7zg1#
如果你使用的是windows,并且不想永久安装sqlite3(在我的例子中,我只想更新保存在windows中的
*.db
sqlite3文件的一些表字段,不想在windows中安装sqlite3),我下载了sqlite3.exe
并复制到windows中执行我的ansible。之后sqlite3从windows中删除。Download link。
是的。