【问题标题】:Is there a way to set Redis layer to existing Rails app in OpsWorks?有没有办法将 Redis 层设置为 OpsWorks 中现有的 Rails 应用程序?
【发布时间】: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"

提前谢谢你。

【问题讨论】:

标签: ruby-on-rails ruby amazon-web-services redis aws-opsworks


【解决方案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 应用程序中。

【讨论】:

    猜你喜欢
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 2020-01-19
    • 1970-01-01
    • 2022-10-07
    • 2012-11-08
    • 2021-10-22
    相关资源
    最近更新 更多