有没有办法将 Redis 层设置为 OpsWorks 中现有的 Rails 应用程序?

Posted

技术标签:

【中文标题】有没有办法将 Redis 层设置为 OpsWorks 中现有的 Rails 应用程序?【英文标题】:Is there a way to set Redis layer to existing Rails app in OpsWorks? 【发布时间】:2016-06-11 05:52:40 【问题描述】:

我使用 mysql 数据(1 层)创建了一个在 OpsWOrks(Ubuntu 服务器)中运行的 Rails 应用程序(2 层)。

有没有办法为 Redis 创建另一个层并将这个 Redis 层连接到现有的 Rails 层?我可以创建 Redis 层,但不知道如何连接它们。

我读过有一种方法可以使用 Chef recipes 将 Redis 添加到 Rails 层,但我对 Chef 不是很熟悉,所以我正在尝试 layer-approach。

编辑:

我试图停止 Redis,在“Rails”层下添加这个 Redis 层,但结果仍然相同 - 我无法验证 Redis 是否正常工作。 如果我登录到服务器(例如在rails-myapp1 上)并运行

redis-cli

输出是

redis-cli
WARNING:root:could not open file '/etc/apt/sources.list.d/trusty-multiverse.list'

The program 'redis-cli' is currently not installed. To run 'redis-cli' please ask your administrator to install the package 'redis-tools'

任何提示如何解决这个问题?

EDIT2:

我在“Redis”下也有redis1 层(现在是“无实例”),但结果是一样的。

EDIT3:

如果我在安装了 Redis 的服务器上通过 SSH 连接并运行 redis-cli 然后运行 ​​KEYS * 以查看 Redis 缓存的所有内容,则什么都没有。

config/environments/production.rb 中设置

  #config.cache_store = :redis_store, "redis://localhost:6379/0/cache"
  config.cache_store = :redis_store, "redis://127.0.0.1:6379/0/cache"

提前谢谢你。

【问题讨论】:

也许这个答案可以帮助你:***.com/questions/35741359/… 【参考方案1】:

OpsWorks 不为 Redis 提供内置层。

您可以执行How to run Redis on Amazon OpsWorks for a Rails application? 之类的操作来使用 Elasticache 并使用自定义说明书在您的 Rails 实例中进行配置。

或者如果你想在 OpsWorks 层创建 Redis 实例,你需要使用自定义说明书来设置 Redis 服务器。之后,您可以在 Rails 层中使用自定义说明书,通过使用层属性找到 Redis 层实例:http://docs.aws.amazon.com/opsworks/latest/userguide/attributes-json-opsworks-layers.html。然后将 Redis 配置到您的 Rails 应用程序中。

【讨论】:

以上是关于有没有办法将 Redis 层设置为 OpsWorks 中现有的 Rails 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jenkins 和 Opswork 集成进行持续部署

有没有办法为 UIScrollView 中的不同图层设置不同的帧大小?

aws opswork 是不是支持 CoreOS

有没有办法为 Django 缓存锁设置过期时间?

需要使用 webhook 帮助进行 opswork 自动部署的 Github

AWS opswork 云形成无法导入