class Jisota::Provisioner
Reads configuration and runs it
Public Instance Methods
run(configuration, logger)
click to toggle source
# File lib/jisota/provisioner.rb, line 5 def run(configuration, logger) packages = configuration.packages.merge(Jisota.global_packages) { |_, left, _| left } configuration.each_server do |server| run_server(server, configuration.ssh_engine, configuration.roles, packages, logger) end end
Private Instance Methods
run_server(server, ssh, roles, packages, logger)
click to toggle source
# File lib/jisota/provisioner.rb, line 14 def run_server(server, ssh, roles, packages, logger) ssh_options = { user: server.user, host: server.host } ssh_options[:keys] = [server.key] if server.key ssh.start(ssh_options) do |ssh_session| server.roles.each do |role_name| role = roles[role_name] context = ScriptContext.new(ssh_session: ssh_session, logger: logger, packages: packages) script = role.script_block.evaluate(context) script.execute(context) end end end