Ame*_*ale 2 mysql database chef-infra chef-recipe
我正在尝试查询我的mysql数据库.我正在使用该database食谱,可以与我的数据库建立连接.我试图查询我的数据库以获取信息,所以现在问题是如何存储而不是信息,以便我可以在另一个资源中访问它.查询结果存储在哪里?这是我的食谱:
mysql_database "Get admin users" do
connection mysql_connection_info
sql "Select * from #{table_name}"
action :query
end
Run Code Online (Sandbox Code Playgroud)
提前致谢
如果您没有使用Ruby的经验,这可能会让您感到困惑.没有办法从Chef资源"返回"提供者的结果.这mysql_database是一种在运行时Chef::Recipe转换为的DSL方法Chef::Provider::Database::Mysql.此提供程序在cookbook中定义.
如果您花一些时间潜入该提供程序,您将可以使用该db对象查看它如何执行查询.为了获得查询结果,您需要在配方中创建自己的连接对象并对其执行命令.例如
require 'mysql'
db = ::Mysql.new('host', 'username', 'password', nil, 'port', 'socket') # varies with setup
users = db.query('SELECT * FROM users')
#
# You might need to manipulate the result into a more manageable data
# structure by splitting on a carriage return, etc...
#
# Assume the new object is an Array where each entry is a username.
#
file '/etc/group' do
contents users.join("\n")
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1933 次 |
| 最近记录: |