有没有一种使用ansible的方法,我可以从文本文件读取数据,然后在sql查询中使用它。我需要运行的查询与文本文件内容一起在下面给出。我知道这可以通过python完成,但是我需要ansible,如果有人可以帮助的话,那会很棒。
mysql query - UPDATE table SET password = "{}", salt = "{}" WHERE people_id IN (3,2);
我的文本文件-
<password>
<salt>
我已经使用Python完成了此操作,但无法解决该问题,我做了很多研究,但没有解决方案。
import MySQLdb
db = MySQLdb.connect("localhost","prajwalarora","password","database")
cursor = db.cursor()
file = open('/home/prajwalarora/Desktop/pass.txt','r')
file_content = file.read()
lines = file_content.split()
file.close()
query = 'UPDATE sc_people SET password = "{}", salt = "{}" WHERE people_id IN (3,2);'.format( lines[0], lines[1])
print query
cursor.execute(query)
db.commit()
db.close()
我一直在使用此命令运行查询(不需要从文件中读取数据)
mysql -u root -pPASSWORD -D DBNAME -e "source /home/prajwalarora/Desktop/file.sql"
file.sql包含需要在 mysql cli
中运行的查询答案 0 :(得分:0)
您可以执行以下操作
vars:
sql_text: "{{ lookup('file', '/home/prajwalarora/Desktop/file.sql') }}"
tasks:
- name: Execute command
command: mysql -u root -pPASSWORD -D DBNAME -e "{{ sql_text }}"