class Vpsb::Resources::WebRoleJson

Public Instance Methods

call(data) click to toggle source
# File lib/vpsb/resources/web_role_json.rb, line 6
def call(data)
  template(data)
end

Private Instance Methods

template(data) click to toggle source
# File lib/vpsb/resources/web_role_json.rb, line 12
def template(data)
  {
    name: "web",
    description: "Web Server Role",
    chef_type: "role",
    json_class: "Chef::Role",
    default_attributes: {
      build_essential: {
        compiletime: true
      },
      rvm:{
        user_autolibs: "disabled",
        rvm_gem_options: "--rdoc --ri",
        default_ruby: data.get(:ruby_version),
        rubies: [ data.get(:ruby_version) ],
        user_installs:[
          {
            user: "deploy",
            default_ruby:  data.get(:ruby_version),
            rubies: [ data.get(:ruby_version) ],
            global_gems: [
              {name: "bundler"},
              {name: "rake"}
            ]
          }
        ]
      },
      nginx:{
        version: "1.4.1",
        user: "www-data",
        default_site_enabled: false,
        source: {use_existing_user: true},
        init_style: "init",
        binary: "/opt/nginx/sbin",
        modules: [
          "http_stub_status_module",
          "http_ssl_module",
          "http_gzip_static_module"
        ],
        gzip_types: [
          "text/plain",
          "text/html",
          "text/css",
          "text/xml",
          "text/javascript",
          "application/json",
          "application/x-javascript",
          "application/xml",
          "application/xml+rss"
        ]
      },
      unicorn: {
        options: { backlog: "64" },
        preload_app: true,
        worker_processes: data.get(:unicorn_worker_processes),
        worker_timeout: data.get(:unicorn_worker_timeout)
      }
    },
    run_list: [
      "recipe[unattended-upgrades]",
      "recipe[base]",
      "recipe[nodejs]",
      "recipe[nodejs::npm]",
      "recipe[base::user_deploy]",
      "recipe[apt]",
      "recipe[build-essential]",
      "recipe[rvm::user]",
      "recipe[nginx]",
      "recipe[nginx::source]",
      "recipe[simple_iptables]",
      "recipe[base::iptables]",
      "recipe[runit]",
      "recipe[unicorn]",
      "recipe[base::webapps]",
      "recipe[base::components]"
    ]
  }
end