serverspec の matchers 確認
例えば、lib/serverspec/matchers/be_directory.rb は以下な記述。
RSpec::Matchers.define :be_directory do match do |actual| backend.check_directory(example, actual) end end
check_directory という手続きは lib/serverspec/backend/puppet.rb で定義されてました。何故に Puppet クラスなのか。
module Serverspec module Backend class Puppet < Exec # Use Exec methods as fallbacks def check_directory(example, directory) d = ::Puppet::Type::File.new(:name => directory, :ensure => 'directory') d.insync?(d.retrieve) end
つうかこれ、そもそも何の試験なんだろ (を
be_directory ってことはそのまんまのソレなのかな。ええと、リファレンス見てもアレなのでソースげとするか。
$ git clone git://github.com/puppetlabs/puppet.git
つうか puppet なソレはハードル高いな。てか、そもそもこれを使ってどんな試験を書いているのか、というのも気になります。serverspec で用意されてるマッチャのドキュメントは以下な模様。
見てみるに service が動いてる? 的なマッチャもありますね。つうか当り前なのかどうかアレですがマッチャが少ない感。
大項目として
- Cron
- Commands
- Files/Directories
- Iptables
- Linux Kernel Paremeters
- Packages
- Ports
- SELinux
- Services
- Users/Groups
というものがあるみたい。
別途で
wordpress の試験をでっちあげてみる方向にて。