elastic beanstalk 中的克隆环境
Cloning environment in elastic beanstalk
我想将我的 Rails EB Linux 从 1.11.8 更新到 2.12.2,所以我克隆了环境并致力于它,但我收到了这个错误:
PG::ConnectionBad (could not connect to server: Connection timed out
Is the server running on host "example.ccexample.us-east-1.rds.amazonaws.com" (111.11.21.22) and accepting
TCP/IP connections on port 5432?
另一个错误 -- 可能是同一问题?:
/opt/elastticbeanstalk/hooks/appdeploy/pre/12_db_migration.sh failed.
我的 env 变量都是正确的,所以数据库不应该只是简单地连接吗?
这是错误日志:
[2020-12-31T22:05:28.834Z] INFO [5012] - [Application update app-example/AppDeployStage0/AppDeployPreHook/12_db_migration.sh] : Starting activity...
[2020-12-31T22:07:45.564Z] INFO [5012] - [Application update example/AppDeployStage0/AppDeployPreHook/12_db_migration.sh] : Activity execution failed, because: ++ /opt/elasticbeanstalk/bin/get-config container -k script_dir
+ EB_SCRIPT_DIR=/opt/elasticbeanstalk/support/scripts
++ /opt/elasticbeanstalk/bin/get-config container -k app_staging_dir
+ EB_APP_STAGING_DIR=/var/app/ondeck
++ /opt/elasticbeanstalk/bin/get-config container -k app_user
+ EB_APP_USER=webapp
++ /opt/elasticbeanstalk/bin/get-config container -k support_dir
+ EB_SUPPORT_DIR=/opt/elasticbeanstalk/support
+ . /opt/elasticbeanstalk/support/envvars-wrapper.sh
+++ /opt/elasticbeanstalk/bin/get-config container -k support_dir
++ EB_SUPPORT_DIR=/opt/elasticbeanstalk/support
++ set +x
+ RAKE_TASK=db:migrate
+ . /opt/elasticbeanstalk/support/scripts/use-app-ruby.sh
++ . /usr/local/share/chruby/chruby.sh
+++ CHRUBY_VERSION=0.3.9
+++ RUBIES=()
+++ for dir in '"$PREFIX/opt/rubies"' '"$HOME/.rubies"'
+++ [[ -d /opt/rubies ]]
++++ ls -A /opt/rubies
+++ [[ -n ruby-2.4.10
ruby-2.5.8
ruby-2.6.6
ruby-current ]]
+++ RUBIES+=("$dir"/*)
+++ for dir in '"$PREFIX/opt/rubies"' '"$HOME/.rubies"'
+++ [[ -d /.rubies ]]
+++ unset dir
+++ cat /etc/elasticbeanstalk/.ruby_version
++ chruby 2.5.8
++ case "" in
++ local dir match
++ for dir in '"${RUBIES[@]}"'
++ dir=/opt/rubies/ruby-2.4.10
++ case "${dir##*/}" in
++ for dir in '"${RUBIES[@]}"'
++ dir=/opt/rubies/ruby-2.5.8
++ case "${dir##*/}" in
++ match=/opt/rubies/ruby-2.5.8
++ for dir in '"${RUBIES[@]}"'
++ dir=/opt/rubies/ruby-2.6.6
++ case "${dir##*/}" in
++ for dir in '"${RUBIES[@]}"'
++ dir=/opt/rubies/ruby-current
++ case "${dir##*/}" in
++ [[ -z /opt/rubies/ruby-2.5.8 ]]
++ shift
++ chruby_use /opt/rubies/ruby-2.5.8 ''
++ [[ ! -x /opt/rubies/ruby-2.5.8/bin/ruby ]]
++ [[ -n '' ]]
++ export RUBY_ROOT=/opt/rubies/ruby-2.5.8
++ RUBY_ROOT=/opt/rubies/ruby-2.5.8
++ export RUBYOPT=
++ RUBYOPT=
++ export PATH=/opt/rubies/ruby-2.5.8/bin:/opt/elasticbeanstalk/lib/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
++ PATH=/opt/rubies/ruby-2.5.8/bin:/opt/elasticbeanstalk/lib/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
+++ /opt/rubies/ruby-2.5.8/bin/ruby -
++ eval 'export RUBY_ENGINE=ruby;
export RUBY_VERSION=2.5.8;
export GEM_ROOT="/opt/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0";'
+++ export RUBY_ENGINE=ruby
+++ RUBY_ENGINE=ruby
+++ export RUBY_VERSION=2.5.8
+++ RUBY_VERSION=2.5.8
+++ export GEM_ROOT=/opt/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0
+++ GEM_ROOT=/opt/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0
++ (( 0 != 0 ))
+ cd /var/app/ondeck
+ su -s /bin/bash -c 'bundle exec /opt/elasticbeanstalk/support/scripts/check-for-rake-task.rb db:migrate' webapp
我还用新的环境名称更新了 config.yml:
分支默认值:
掌握:
环境:新名
环境默认值:
新名字:
分支:空
存储库:空
RevoltVendor-env:
分支:空
存储库:空
全球的:
application_name:应用名称
default_ec2_keyname: 空
default_platform:Puma Ruby 2.5 运行 在 64 位亚马逊上 Linux
default_region: us-east-1
include_git_submodules:真
instance_profile: 空
platform_name: 空
platform_version: 空
简介:eb-cli
sc:git
workspace_type:申请
如有任何帮助,我们将不胜感激
根据评论。
问题是由 RDS 中的错误的安全组 (SG) 入站规则引起的。 EB克隆操作创建新的SG,没有反映在RDS的SG中。
解决方案是更新 RDS 的 SG 并添加与克隆的 EB 环境关联的 SG。
我想将我的 Rails EB Linux 从 1.11.8 更新到 2.12.2,所以我克隆了环境并致力于它,但我收到了这个错误:
PG::ConnectionBad (could not connect to server: Connection timed out
Is the server running on host "example.ccexample.us-east-1.rds.amazonaws.com" (111.11.21.22) and accepting
TCP/IP connections on port 5432?
另一个错误 -- 可能是同一问题?:
/opt/elastticbeanstalk/hooks/appdeploy/pre/12_db_migration.sh failed.
我的 env 变量都是正确的,所以数据库不应该只是简单地连接吗?
这是错误日志:
[2020-12-31T22:05:28.834Z] INFO [5012] - [Application update app-example/AppDeployStage0/AppDeployPreHook/12_db_migration.sh] : Starting activity...
[2020-12-31T22:07:45.564Z] INFO [5012] - [Application update example/AppDeployStage0/AppDeployPreHook/12_db_migration.sh] : Activity execution failed, because: ++ /opt/elasticbeanstalk/bin/get-config container -k script_dir
+ EB_SCRIPT_DIR=/opt/elasticbeanstalk/support/scripts
++ /opt/elasticbeanstalk/bin/get-config container -k app_staging_dir
+ EB_APP_STAGING_DIR=/var/app/ondeck
++ /opt/elasticbeanstalk/bin/get-config container -k app_user
+ EB_APP_USER=webapp
++ /opt/elasticbeanstalk/bin/get-config container -k support_dir
+ EB_SUPPORT_DIR=/opt/elasticbeanstalk/support
+ . /opt/elasticbeanstalk/support/envvars-wrapper.sh
+++ /opt/elasticbeanstalk/bin/get-config container -k support_dir
++ EB_SUPPORT_DIR=/opt/elasticbeanstalk/support
++ set +x
+ RAKE_TASK=db:migrate
+ . /opt/elasticbeanstalk/support/scripts/use-app-ruby.sh
++ . /usr/local/share/chruby/chruby.sh
+++ CHRUBY_VERSION=0.3.9
+++ RUBIES=()
+++ for dir in '"$PREFIX/opt/rubies"' '"$HOME/.rubies"'
+++ [[ -d /opt/rubies ]]
++++ ls -A /opt/rubies
+++ [[ -n ruby-2.4.10
ruby-2.5.8
ruby-2.6.6
ruby-current ]]
+++ RUBIES+=("$dir"/*)
+++ for dir in '"$PREFIX/opt/rubies"' '"$HOME/.rubies"'
+++ [[ -d /.rubies ]]
+++ unset dir
+++ cat /etc/elasticbeanstalk/.ruby_version
++ chruby 2.5.8
++ case "" in
++ local dir match
++ for dir in '"${RUBIES[@]}"'
++ dir=/opt/rubies/ruby-2.4.10
++ case "${dir##*/}" in
++ for dir in '"${RUBIES[@]}"'
++ dir=/opt/rubies/ruby-2.5.8
++ case "${dir##*/}" in
++ match=/opt/rubies/ruby-2.5.8
++ for dir in '"${RUBIES[@]}"'
++ dir=/opt/rubies/ruby-2.6.6
++ case "${dir##*/}" in
++ for dir in '"${RUBIES[@]}"'
++ dir=/opt/rubies/ruby-current
++ case "${dir##*/}" in
++ [[ -z /opt/rubies/ruby-2.5.8 ]]
++ shift
++ chruby_use /opt/rubies/ruby-2.5.8 ''
++ [[ ! -x /opt/rubies/ruby-2.5.8/bin/ruby ]]
++ [[ -n '' ]]
++ export RUBY_ROOT=/opt/rubies/ruby-2.5.8
++ RUBY_ROOT=/opt/rubies/ruby-2.5.8
++ export RUBYOPT=
++ RUBYOPT=
++ export PATH=/opt/rubies/ruby-2.5.8/bin:/opt/elasticbeanstalk/lib/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
++ PATH=/opt/rubies/ruby-2.5.8/bin:/opt/elasticbeanstalk/lib/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
+++ /opt/rubies/ruby-2.5.8/bin/ruby -
++ eval 'export RUBY_ENGINE=ruby;
export RUBY_VERSION=2.5.8;
export GEM_ROOT="/opt/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0";'
+++ export RUBY_ENGINE=ruby
+++ RUBY_ENGINE=ruby
+++ export RUBY_VERSION=2.5.8
+++ RUBY_VERSION=2.5.8
+++ export GEM_ROOT=/opt/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0
+++ GEM_ROOT=/opt/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0
++ (( 0 != 0 ))
+ cd /var/app/ondeck
+ su -s /bin/bash -c 'bundle exec /opt/elasticbeanstalk/support/scripts/check-for-rake-task.rb db:migrate' webapp
我还用新的环境名称更新了 config.yml:
分支默认值: 掌握: 环境:新名 环境默认值: 新名字: 分支:空 存储库:空 RevoltVendor-env: 分支:空 存储库:空 全球的: application_name:应用名称 default_ec2_keyname: 空 default_platform:Puma Ruby 2.5 运行 在 64 位亚马逊上 Linux default_region: us-east-1 include_git_submodules:真 instance_profile: 空 platform_name: 空 platform_version: 空 简介:eb-cli sc:git workspace_type:申请
如有任何帮助,我们将不胜感激
根据评论。
问题是由 RDS 中的错误的安全组 (SG) 入站规则引起的。 EB克隆操作创建新的SG,没有反映在RDS的SG中。
解决方案是更新 RDS 的 SG 并添加与克隆的 EB 环境关联的 SG。