Module: Jisota
- Defined in:
- lib/jisota.rb,
lib/jisota/role.rb,
lib/jisota/param.rb,
lib/jisota/errors.rb,
lib/jisota/logger.rb,
lib/jisota/server.rb,
lib/jisota/package.rb,
lib/jisota/version.rb,
lib/jisota/collection.rb,
lib/jisota/ssh_engine.rb,
lib/jisota/file_script.rb,
lib/jisota/provisioner.rb,
lib/jisota/ssh_session.rb,
lib/jisota/upload_file.rb,
lib/jisota/param_parser.rb,
lib/jisota/script_block.rb,
lib/jisota/configuration.rb,
lib/jisota/command_script.rb,
lib/jisota/package_script.rb,
lib/jisota/composite_script.rb
Defined Under Namespace
Classes: Collection, CommandScript, CompositeScript, Configuration, FileScript, Logger, Package, PackageScript, Param, ParamParser, ParameterError, Provisioner, Role, SSHEngine, SSHSession, ScriptBlock, Server, UploadFile
Constant Summary collapse
- VERSION =
"0.0.1"
Class Method Summary collapse
-
.config(&block) ⇒ Object
Shorthand for defining a new configuration.
-
.global_config(&block) ⇒ Object
Shorthand for defining packages in the global package manager The global package manager is useful when sharing a package between multiple projects or configurations.
-
.global_packages ⇒ Object
The global package manager.
-
.run(configuration, options = {}) ⇒ Object
Runs a provision with the given configuration.
Class Method Details
.config(&block) ⇒ Object
Shorthand for defining a new configuration
Example:
config = Jisota.config do
role :app do
ruby version: "2.1.1"
postgresql
end
server "123.456.789.000", user: "john", roles: :app
end
28 29 30 |
# File 'lib/jisota.rb', line 28 def self.config(&block) Configuration.new(&block) end |
.global_config(&block) ⇒ Object
Shorthand for defining packages in the global package manager The global package manager is useful when sharing a package between multiple projects or configurations
Example:
Jisota.global_config do
package :apt do
param :packages, splat: true, required: true
run { cmd "sudo apt-get install -y #{packages.join(" ")}" }
end
end
45 46 47 48 49 50 |
# File 'lib/jisota.rb', line 45 def self.global_config(&block) config = config(&block) config.packages.each do |package| global_packages << package end end |
.global_packages ⇒ Object
The global package manager
All build-in packages also live here Local packages with the same name will have precedence over these.
57 58 59 |
# File 'lib/jisota.rb', line 57 def self.global_packages @global_packages ||= Collection.new end |
.run(configuration, options = {}) ⇒ Object
10 11 12 13 14 |
# File 'lib/jisota.rb', line 10 def self.run(configuration, = {}) provisioner = .fetch(:provisioner) { Provisioner.new } logger = .fetch(:logger) { Logger.new } provisioner.run(configuration, logger) end |