class Nginx
Public Instance Methods
deploy()
click to toggle source
# File lib/dust/recipes/nginx.rb, line 5 def deploy # default package to install @config['package'] ||= 'nginx' @config['user'] ||= 'nginx' if @node.uses_rpm? @config['user'] ||= 'www-data' if @node.uses_apt? Array(@config['package']).each do |package| return unless @node.install_package(package) end @node.mkdir('/etc/nginx') @node.mkdir('/etc/nginx/sites-enabled') @node.mkdir('/etc/nginx/sites-available') @node.deploy_file("#{@template_path}/nginx.conf", '/etc/nginx/nginx.conf', :binding => binding) # remove old sites that may be present msg = @node.messages.add('deleting old sites in /etc/nginx/sites-*') @node.rm '/etc/nginx/sites-*/*', :quiet => true msg.ok @config['sites'].each do |state, sites| Array(sites).each do |site| @node.deploy_file("#{@template_path}/sites/#{site}", "/etc/nginx/sites-available/#{site}", :binding => binding) # symlink to sites-enabled if this is listed as an enabled site if state == 'enabled' msg = @node.messages.add("enabling #{site}", :indent => 2) msg.parse_result(@node.exec("cd /etc/nginx/sites-enabled && ln -s ../sites-available/#{site} #{site}")[:exit_code]) end end end # deploy ssl certificates to /etc/nginx/certs @config['certs'] ||= [] Array(@config['certs']).each do |file| # file can either be # a string 'file': file is just copied over # a hash { 'source': 'target' } when source and target filename differ if file.is_a? String source = "#{@template_path}/certs/#{file}" destination = "/etc/nginx/certs/#{File.basename(file)}" elsif file.is_a? Hash source = "#{@template_path}/certs/#{File.basename(file.keys.first)}" destination = "/etc/nginx/certs/#{File.basename(file.values.first)}" else return @node.messages.add("#{file.inspect} is neither String nor Hash!").failed end unless File.exists?(source) @node.messages.add("#{source} not found. skipping.").warning next end @node.mkdir(File.dirname(destination)) @node.deploy_file(source, destination) @node.chown("#{@config['user']}:#{@node.get_gid(@config['user'])}", destination) @node.chmod('0600', destination) end # check configuration and restart nginx msg = @node.messages.add('checking nginx configuration') ret = @node.exec('/etc/init.d/nginx configtest') if ret[:exit_code] == 0 msg.ok @node.restart_service('nginx') if options.restart? else msg.failed("\n" + ret[:stderr]) end end
status()
click to toggle source
# File lib/dust/recipes/nginx.rb, line 81 def status @node.print_service_status 'nginx' end