mysql_session ресурс
Используйте mysql_session ресурс аудита Chef InSpec для проверки SQL-команд, выполняемых на базе данных MySQL.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс стал доступен в версии InSpec v1.0.0.
Синтаксис
Блок ресурса mysql_session объявляет имя пользователя и пароль для сессии, а затем команду, которая должна быть выполнена:
describe mysql_session('username', 'password').query('QUERY') do
its('output') { should match(/expected-result/) }
end
где
-
mysql_sessionобъявляет имя пользователя и пароль, устанавливает соединение локально и предоставляет разрешение на выполнение запроса -
query('QUERY')содержит запрос, который должен быть выполнен -
its('output') { should eq(/expected-result/) }сравнивает результаты запроса с ожидаемым результатом в тесте
Примеры
Следующие примеры показывают, как использовать этот ресурс аудита Chef InSpec.
Проверка соответствия баз данных
sql = mysql_session('my_user','password')
describe sql.query('show databases like \'test\';') do
its('output') { should_not match(/test/) }
end
Альтернативное подключение: Разный хост
sql = mysql_session('my_user','password','db.example.com')
Альтернативное подключение: Разный порт
sql = mysql_session('my_user','password','localhost',3307)
Альтернативное подключение: Использование сокета
sql = mysql_session('my_user','password', nil, nil, '/var/lib/mysql-default/mysqld.sock')
Проверка успешного выполнения запроса
describe mysql_session('my_user','password').query('show tables in existing_database;') do
its('exit_status') { should eq(0) }
end
Проверка неудачного выполнения запроса
describe mysql_session('my_user','password').query('show tables in non_existent_database;') do
its('exit_status') { should_not eq(0) }
end
Проверка конкретного сообщения об ошибке
describe mysql_session('my_user','password').query('show tables in non_existent_database;') do
its('stderr') { should match(/Unknown database/) }
end
Матчеры
Этот ресурс аудита Chef InSpec создаёт объект command и возвращает объект результата. Полный список доступных матчеров можно найти на странице matchers.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/mysql_session/