Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


opsworks_ruby (45) Versions 1.18.0

Set of chef recipes for OpsWorks based Ruby projects

cookbook 'opsworks_ruby', '= 1.18.0', :supermarket
cookbook 'opsworks_ruby', '= 1.18.0'
knife supermarket install opsworks_ruby
knife supermarket download opsworks_ruby
Quality 83%

opsworks_ruby Cookbook

Chef cookbook
Build Status
Coverage Status
Documentation Status
Commitizen friendly

A chef cookbook to deploy Ruby applications to Amazon OpsWorks.

Quick Start

Refer to Getting Started
guide in documentation.


You can either install everything locally using rvm and pip
or use the Docker container which includes all necessary dependencies inside it.

Build documentation

docker-compose run cookbook bash -c "cd docs && make html"


for details.

Author and Contributors

Author: Igor Rzegocki (@ajgon)



License: MIT

1.18.0 (2020-02-29)

Bug Fixes

  • appserver: fix .env and application.yml symlinks creation (0580955), closes #232


  • appserver: Add new appserver config params for passenger (#227) (0500521)
  • setup: add support for fullstaq ruby repos (1489d01), closes #229

1.17.0 (2019-11-23)

Bug Fixes

  • replace symlink options instead of appending them (b2650fb), closes #224


  • database: add support for multiple databases per environment (0c7f89f), closes #226


  • app['global']['create_dirs_before_symlink'], app['global']['purge_before_symlink'] and app['global']['symlinks'] now overrides defaults instead of appending them. If you were relying on those options in your Custom JSON, you need to add missing defaults manually.

For example given:

  "deploy": {
    "myapp": {
      "global": {
        "create_dirs_before_symlink": ["test/create"],
        "purge_before_symlink": ["test/purge"],
        "symlinks": {
          "test": "test/symlinks"

you need to replace it to:

  "deploy": {
    "myapp": {
      "global": {
        "create_dirs_before_symlink": ["tmp", "public", "config", "../../shared/cache", "../../shared/assets", "test/create"],
        "purge_before_symlink": ["log", "tmp/cache", "tmp/pids", "public/system", "public/assets", "test/purge"],
        "symlinks": {
          "system": "public/system",
          "assets": "public/assets",
          "cache": "tmp/cache",
          "pids": "tmp/pids",
          "log": "log",
          "test": "test/symlinks"

1.16.0 (2019-09-11)

Bug Fixes

  • webserver: remove default nginx config from conf.d (#220) (23929e3)
  • keep the last nginx cookbook version compatible with chef 12 (b5b13d0), closes #222


  • setup: add chef version configuration option (ffe2b42)

1.15.0 (2019-07-09)

Bug Fixes

  • apache: fix apache serving assets rather than proxying to app server (#210) (9dfdeed)
  • appserver: Compare lockfiles instead of main Gemfile (c02af02)
  • appserver: fix duplicate after_fork/on_worker_boot stanzas in appserver configs (c0b0e84)
  • worker: adapted monit config for sidekiq 6.x (4a58654), closes #215
  • worker: fix sidekiq quiet/shutdown scripts (59198b9), closes #217
  • worker: quieting and stopping sidekiq (efc1231)


  • apache: apache configuration to use appserver’s port provided in custom json (b576788)
  • setup: add global option for enabling/disabling nodejs (1f1fa4b)
  • setup: support for webpacker (569b9bb)
  • setup: use latest nodejs lts 10.15.3 (61bb605)

1.14.0 (2019-03-06)

Bug Fixes


  • appserver: re-establish database connections when preloading app (db17de6), closes #198
  • ruby: Added support for ruby 2.6 (27bad91)

1.13.0 (2018-11-09)

Bug Fixes

  • db: Fix typo for aurora postgresql (1bb2fb5)


  • worker: Support Shoryuken worker library (5359679)

<a name="1.12.0"></a>

1.12.0 (2018-10-03)


  • appserver: add port configuration (6540201)
  • database: added aurora-postgres as an accepted engine for Postgres RDS (626a11d)
  • webserver: add support for force_ssl attribute (2281047), closes #189

<a name="1.11.0"></a>

1.11.0 (2018-07-17)

Bug Fixes

  • add Apache 2.4's "Require all granted" to apache2+passenger config file (#171) (f4e5871)
  • webserver: add X-Content-Type-Options: nosniff to assets served by rails for extra security (07d3336)


  • webserver: hardened security headers, disabled tls1.0 and tls1.1 for non-legacy SSL config (8351d58)


  • webserver: If you are using SSL in your project, TLSv1.0 and TLSv1.1 has been disabled for all responses - only TLSv1.2 is served. If you still need older ciphers, consider using app['webserver']['ssl_for_legacy_browsers'] configuration option.

<a name="1.10.1"></a>

1.10.1 (2018-06-24)

Bug Fixes

  • do not read pidfile at each stop retry (prevent from early pidfile deletion) (c5f0fe4), closes #163
  • framework: added environment variables context to bundle install (fe01d45), closes #167


  • appserver: support rails restart command on puma. (bb04fb4)
  • db: added postgis driver (6b3c058), closes #165

<a name="1.10.0"></a>

1.10.0 (2018-06-10)

Bug Fixes

  • appserver: moved env files creation to before_symlink phase (2ed059d), closes #157
  • setup: Fixed deployer user setup (9af3651), closes #159


  • appserver: add additional puma configuration options (f994e2f)
  • ruby: introduced new ruby-version JSON parameter. (99798ce), closes #156


  • ruby: If you were using ruby-ng.ruby_version JSON configuration parameter in your stack/layer configuration, please change it to ruby-version. Since ruby-version is set by default to the freshest version of ruby available, you may end up with unexpected upgrade of ruby on your system.

<a name="1.9.1"></a>

1.9.1 (2018-05-22)

Bug Fixes

  • chef: Downgraded apt cookbook below version 7 (8ea8eee), closes #151
  • chef: Removed broken deployer cookbook (51a4942), closes #155

<a name="1.9.0"></a>

1.9.0 (2018-03-17)

Bug Fixes

  • appserver: Wait up to 10 sec for graceful shutdown (def1c21), closes #127
  • configure: Don't create pids symlink if it already exists (4671ac9), closes #126
  • appserver: failed to start appserver. (#146) (4505890)
  • source: remove temporary directories after deploy (b92417f)
  • source: Subdirectories on S3 are now properly handled (9373173)
  • webserver: Switched chef_nginx back to nginx cookbook (683f840), closes #148


  • ruby: Added support for ruby 2.5 (2fd887a)
  • source: Added support for HTTP (34829f2)
  • source: Added support for S3 (019c0ad), closes #133


  • source: app['scm'] has been renamed to app['source']. This only affects the Custom JSON files, so if you were using this block there, you should change it. If you were using OpsWorks git configurator (which is probably 99.99% true), this change wouldn't affect you.

<a name="1.8.0"></a>

1.8.0 (2017-10-23)

Bug Fixes

  • moved all pid-related files from shared/pids to /run/lock (bc9daf0), closes #92
  • db: Respect database port provided by RDS (#124) (7aeb78e), closes #123
  • logrotate: remove duplicate log entry in config file generated from webserver service install (eabf207)
  • worker: quiet_sidekiq now uses sidekiqctl instead of kill -USR1 which is deprectaed (1e9e32b), closes #93


  • scm: Support configurable location of git_ssh_wrapper (#121) (de153bf), closes #120

<a name="1.7.1"></a>

1.7.1 (2017-09-22)

Bug Fixes

  • webserver: do not unnecessarily restart webserver (db15b26), closes #114
  • webserver: Only remove default enabled sites (ef085a0), closes #111


  • webserver: remove version info on Apache/Nginx (6aba9f3)

<a name="1.7.0"></a>

1.7.0 (2017-09-05)

Bug Fixes

  • appserver: passing USER and HOME environment variables to appserver process (43210bc), closes #85
  • db: safer migration/setup command (19bf034), closes #58
  • overcommit: disable fasterer warning that was causing commits to fail (7752706)
  • missing databag caused maximum_override integration failure (1be29e1)


  • appserver+webserver: add apache2 + passenger support (43c61f9)
  • database: support null database driver (29e1040), closes #98
  • global: support per-application deploy directory (28cb797), closes #95
  • logrotate: support arbitrary logrotate customization (fa95ab0), closes #107
  • webserver: allow extensible webserver site customization (4efd130), closes #100
  • webserver: server_tokens off on Nginx (#91) (5568f6c)

<a name="1.6.0"></a>

1.6.0 (2017-06-03)

Bug Fixes

  • ubuntu: proper provisioning for ubuntu 16.04 (ea5b530), closes #81


  • webserver: Specify upgrade method for nginx (2624d04)
  • logrotate: rotate all logs in app/log (4737b49)


  • Support for all legacy distributions has been dropped off. Currently, only Ubuntu 16.04 and Amazon Linux 2017.03 are supported.

This cookbook should work on earlier versions (especially on Ubuntu),
PR with fixes to them will be accepted, however the core team won't
include any patches for those distros by they own.

<a name="1.5.0"></a>

1.5.0 (2017-04-25)


  • framework: Allow increased timeout during deploy (#76) (e216972)
  • logrotate: implement logrotate (86ebc10), closes #78

<a name="1.4.0"></a>

1.4.0 (2017-03-12)

Bug Fixes

  • Bump faraday middleware version (d508928)
  • Switched nginx cookbook to more actively developed chef_nginx (0f4f64c), closes #65


  • webserver: Add app specific error log and location for nginx (a098279)
  • worker: Safely quiet and shutdown sidekiq (c36652f)


  • nginx cookbook is not a opsworks_ruby dependency anymore. Now it's chef_nginx which is more actively developed. Please update your recipe repositories.

<a name="1.3.0"></a>

1.3.0 (2017-01-16)


  • appserver: Allowed deploy_before_restart on null appserver (b0375a6)
  • database: Added aurora as allowed engine for mysql2 adapter (a2789f0)
  • ruby: Added support for ruby 2.4 (a89451f)


  • ruby: Ruby 2.4 is now a default Ruby interpreter

<a name="1.2.1"></a>

1.2.1 (2016-11-27)

Bug Fixes

  • Fixed broken migration_command default (36cdb68), closes #58

<a name="1.2.0"></a>

1.2.0 (2016-11-02)

Bug Fixes

  • Moved global deploy parameters to app['global'] section (b4f8d6b)


  • app['create_dirs_before_symlink'], app['purge_before_symlink'], app['rollback_on_error'] and app['symlinks'] are now app['global']['create_dirs_before_symlink'], app['global']['purge_before_symlink'], app['global']['rollback_on_error'] and app['global']['symlink']. The old format still works, but it shows DEPRECATION warning. It will be removed in one of the next major releases.

<a name="1.1.2"></a>

1.1.2 (2016-10-27)

Bug Fixes

  • webserver: Improved apache2 support (4293bff)
  • node['applications'] are back (5fc42c3), closes #55


  • app['rollback_on_error'] implemented (e6934a7), closes #54

<a name="1.1.1"></a>

1.1.1 (2016-10-21)

Bug Fixes

  • deploy: Fixed deploy callbacks launching order (81d31c9)

<a name="1.1.0"></a>

1.1.0 (2016-10-21)

Bug Fixes

  • Application deployment fix (7ac4166)


  • node['applications'] becomes obsolete

<a name="1.0.0"></a>

1.0.0 (2016-10-04)

Bug Fixes

  • monit reload and monit restart order (2c4a84a), closes #29
  • appserver: Removed accept_filter from unicorn configurator (76a7f36)
  • framework: Added missing deploy_environment to null framework (673a21d)
  • framework: Fixed envs_in_console for rails (f8856c8)


  • appserver: "Puma" support added (f6e80ad), closes #38
  • appserver: "Thin" support added (9667939), closes #39
  • appserver: Switched default appserver from unicorn to puma (0e72200)
  • framework: "hanami.rb" support added (23fdd04), closes #43
  • framework: "Null" support added (b9e7b63), closes #47
  • framework: "Padrino" support added (a240d92), closes #44
  • framework: Environemnt variables in rails console (89252b3)
  • global: Moved app['environment'] to app['global']['environment'] (432a21c), closes #50
  • webserver: "Apache2" support added (1ca5b0b), closes #40
  • worker: "delayed_job" support added (7235720), closes #42
  • worker: "resque" support added (ccc13e4), closes #41

Performance Improvements

  • Added fasterer gem to overcommit (c1ed974)


  • global: If you were using an app['environment'] variable (for example to set env to staging), please update your stack/layer JSONs to app['global']['environment'].
  • appserver: Unicorn is no longer a default appserver, in favor of Puma. If you have a working instances which were relying on that, you have to either set app['appserver']['adapter'] = 'unicorn' in your stack/layer JSON file, or switch the app server in your application
  • webserver: sites-available and sites-enabled file names format changed. From this commit, the *.conf extension is appended. If you plan to update your cookbooks on productional environments, don't forget to remove the old ones, otherwise you will end up with two the same configurations in different files, which cause nginx to fail.

If you start noticing duplicate upstream errors, this is probably due
this case.

<a name="0.8.0"></a>

0.8.0 (2016-09-02)

Bug Fixes

  • Switched from nginx reload to nginx restart after succesful deploy/undeploy (16ab9d1), closes #36


  • Added GIT_SSH support for bundle install (232e8ac), closes #37
  • Caches bundler installs to speed up deployments (baa0f44)
  • Implemented configurable RAILS_ENV (2567b71), closes #34

<a name="0.7.0"></a>

0.7.0 (2016-08-29)

Bug Fixes

  • Moved extra env files creation, later in the stack (before_restart) (8a5223f)
  • Reload monit after restarting services (eaa2aab)
  • Set the default DB adapter to sqlite3 (b4b1ee4)
  • specify bundle path on bundle install (b9d4335)


  • Added support for gems like figaro and dotenv (c989494), closes #28

<a name="0.6.0"></a>

0.6.0 (2016-08-17)


  • Removed application_ruby cookbook dependency

<a name="0.5.0"></a>

0.5.0 (2016-07-21)


  • Added configuration for isolated worker servers w/o app/webserver (56642f1)
  • Added monit compatibility with amazon linux (2ef12b9)

<a name="0.4.0"></a>

0.4.0 (2016-06-16)


  • Enables drivers to be attached to before_* and after_* deploy events (fa8e605)

<a name="0.3.1"></a>

0.3.1 (2016-06-16)

Bug Fixes

  • Change path to 500.html to be in the "current" dir (4aeac7f)
  • Support for multiple RDSes with multiple applications (a23df47)

<a name="0.3.0"></a>

0.3.0 (2016-06-08)


  • eliminate RDS requirement (daa4254)


  • Sqlite3 is no longer set as the default database adapter.

In order to use sqlite as the database adapter it must be defined
in the node.

<a name="0.2.1"></a>

0.2.1 (2016-05-11)

  • Added environment variables support for assets precompile (f24e742)
  • Added optional removal of scm files (82b25ec)
  • Added support for custom configuration in nginx (448019a)
  • Fixed deploy environment (bf843aa)
  • Fixed nginx defaults order (af560db)
  • Fixed sidekiq config builder (a32b410)

<a name="0.2.0"></a>

0.2.0 (2016-04-24)

  • Added MariaDB Driver support (197b7de)
  • Added multi-platform support (6118154)
  • Added MySQL Driver support (72d4b9f)
  • Added Sqlite Driver support (3ecb321)
  • Minor bugfixes, resolves #19 (9f8615f), closes #19

<a name="0.1.0"></a>

0.1.0 (2016-04-23)

  • configure recipe initial implementation (c57f71e)
  • Added assets precompilation support. Resolves #12 (b8d8ff5), closes #12
  • Added auto-start of nginx to setup phase. Resolves #15 (fbb07dc), closes #15
  • Added basic documentation (235519f)
  • Added code quality tools (730857f)
  • Added core_ext specs. Resolves #7 (b089eb3), closes #7
  • Added DHparams and nginx version detection support. Resolves #8 and resolves #9 (4e60594), closes #8 #9
  • Added missing specs (ff85e4f)
  • Added nginx reload after deploy. Resolves #13 (f1bc277), closes #13
  • Added ruby and bundler installation to setup phase (0182e70), closes #5 #6
  • Added symlinking defaults. Resolves #16 (4a1edd9), closes #16
  • Added travis config and coveralls support (a782a64)
  • Added undeploy recipe (aba311b)
  • Added webserver setup (nginx) (1581def)
  • Added workers support. Resolves #18 (05e3a75), closes #18
  • Appserver implemented (unicorn) (bbb79cc)
  • Basic SCM support implemented (bcab3d7)
  • Finished database support in recipes (cf955a0)
  • Fixed appserver restart sequence (9a75f9c)
  • Fixed nginx defaults. Resolves #14 and resolves #17 (8320f3b), closes #14 #17
  • Fixes on bugs detected while deploying to real OpsWorks (035363b)
  • Initial commit (d8bed5c)
  • Initial version, with simple postgresql driver introduced (5d00083)
  • Moved DB packages installation from configure to setup (e23f2d4)
  • Moved libraries to flat directory structure, because AWS chef hates us (e6aa211)
  • Rails deploy hooks implemented (79d2d64)
  • Recipes cleanup: added missing actions and shutdown recipe (9eb9bb8)
  • Reorganized appserver cookbooks, added bundle install to deploy (2e9947b)

Collaborator Number Metric

1.18.0 failed this metric

Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.

Contributing File Metric

1.18.0 passed this metric

Foodcritic Metric

1.18.0 passed this metric

No Binaries Metric

1.18.0 passed this metric

Testing File Metric

1.18.0 passed this metric

Version Tag Metric

1.18.0 passed this metric