Пока что Serverspec работает отлично. Тестирую свои серверы, все в порядке.
Допустим, я хочу протестировать свой кластер LDAP, выполнив несколько команд LDAP с моей локальной рабочей станции, например ldapsearch
. Причина, по которой я бы сделал это на своей рабочей станции, а не на каком-либо из серверов, заключается в том, чтобы убедиться, что все работает удаленно, включая балансировку нагрузки.
Какая конвенция? Как это достигается? Какие изменения мне нужно было бы внести в свой Rakefile
? Я создал Rakefile
через serverspec-init
. Есть примеры этого где-нибудь?
Насколько я понимаю, serverspec
это инструмент для проверки состояние конфигурации серверов на правильность и убедитесь, что он находится в желаемом состоянии. Это достигается за счет входа на сервер и выполнения команд, которые проверяют заданные элементы / значения конфигурации и возвращают выходные данные. Итак, я сомневаюсь, что serverpec - правильный инструмент для того, что вы хотите сделать.
В разделе о сайте говорится:
Serverspec проверяет фактическое состояние ваших серверов, выполняя команду локально, через SSH, через WinRM, через Docker API и так далее.
Мне кажется, что единственный вариант, близкий к тому, что вы ищете, - это использовать command
Тип ресурса для запуска и проверьте вывод некоторых команд, которые вы хотите выполнить. http://serverspec.org/resource_types.html#command
команда
Тип ресурса команды. его (: stdout), его (: stderr), его (: exit_status)
Вы можете получить stdout, stderr и статус выхода результата команды, а также можете использовать любые сопоставители, поддерживаемые RSpec.
describe command('ls -al /') do its(:stdout) { should match /bin/ } end describe command('ls /foo') do its(:stderr) { should match /No such file or directory/ } end describe command('ls /foo') do its(:exit_status) { should eq 0 } end
Вы можете установить команду, которая запускается на обратной петле (127.0.0.1), а не на внешнем сервере. Он по-прежнему будет использовать ssh локально, но сделает то, что вам нужно.