一年多前業務使用到redis-cluster集羣,然而當時部署時,redis-cluster集羣採用的是ruby 語言開發的腳本redis-trib.rb 來進行管理集羣的。因此當時給服務器安裝了ruby環境。最近項目再一次使用到了redis-cluster集羣,因此沒多想,直接照着當時的文檔記錄直接開幹,竟然行不通了,遇到了各類報錯,這次記錄在此方便後續使用查看.mysql
服務器環境:centos7.6x84_64位,最小化安裝
直接部署ruby環境:linux
yum -y install ruby ruby-devel yum -y install rubygems [root@localhost ~]# which gem /usr/bin/gem [root@localhost ~]# gem sources --remove http://rubygems.org/ http://rubygems.org/ removed from sources source http://rubygems.org/ not present in cache [root@localhost ~]# gem sources -l ***CURRENT SOURCES *** https://rubygems.org/ [root@localhost ~]# curl -L get.rvm.io | bash -s stable % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 194 100 194 0 0 379 0 --:--:-- --:--:-- --:--:-- 379 curl: (7) Failed connect to raw.githubusercontent.com:443; 拒絕鏈接
因而添加淘寶ruby源:git
[root@localhost ~]# gem sources --add https://ruby.taobao.org/ https://ruby.taobao.org/ added to sources Error fetching https://ruby.taobao.org/: hostname "ruby.taobao.org" does not match the server certificate (https://ruby.taobao.org/specs.4.8.gz)
原來是taobao Gems 源已中止維護,現由 ruby-china 提供鏡像服務,即咱們要換源
參考地址:https://blog.csdn.net/chris_ime/article/details/52013349github
gem sources -a https://gems.ruby-china.com/ [root@localhost ~]# gem sources -a https://gems.ruby-china.com/ https://gems.ruby-china.com/ added to sources [root@localhost ~]# gem sources -l *** CURRENT SOURCES *** https://rubygems.org/ https://gems.ruby-china.com/
安裝RVM:redis
[root@localhost soft]# curl -L get.rvm.io | bash -s stable % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 194 100 194 0 0 99 0 0:00:01 0:00:01 --:--:-- 99 100 24535 100 24535 0 0 5477 0 0:00:04 0:00:04 --:--:-- 20299 Downloading https://github.com/rvm/rvm/archive/1.29.9.tar.gz Downloading https://github.com/rvm/rvm/releases/download/1.29.9/1.29.9.tar.gz.asc gpg: 已建立目錄‘/root/.gnupg’ gpg: 新的配置文件‘/root/.gnupg/gpg.conf’已創建 gpg: 警告:在‘/root/.gnupg/gpg.conf’裏的選項於這次運行期間未被使用 gpg: 鑰匙環‘/root/.gnupg/pubring.gpg’已創建 gpg: 於 2019年07月10日 星期三 16時31分02秒 CST 建立的簽名,使用 RSA,鑰匙號 39499BDB gpg: 沒法檢查簽名:沒有公鑰 GPG signature verification failed for '/usr/local/rvm/archives/rvm-1.29.9.tgz' - 'https://github.com/rvm/rvm/releases/download/1.29.9/1.29.9.tar.gz.asc'! Try to install GPG v2 and then fetch the public key: gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB or if it fails: command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import - command curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import - In case of further problems with validation please refer to https://rvm.io/rvm/security [root@localhost soft]# echo $? 2
報錯了,根據提示以下操做:sql
[root@localhost soft]# gpg --keyserver hkp://keys.gnupg.net --recv-keys ^C [root@localhost soft]# gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB gpg: 鑰匙環‘/root/.gnupg/secring.gpg’已創建 gpg: 下載密鑰‘D39DC0E3’,從 hkp 服務器 pool.sks-keyservers.net gpg: 下載密鑰‘39499BDB’,從 hkp 服務器 pool.sks-keyservers.net gpg: /root/.gnupg/trustdb.gpg:創建了信任度數據庫 gpg: 密鑰 D39DC0E3:公鑰「Michal Papis (RVM signing) <mpapis@gmail.com>」已導入 gpg: 密鑰 39499BDB:公鑰「Piotr Kuczynski <piotr.kuczynski@gmail.com>」已導入 gpg: 沒有找到任何絕對信任的密鑰 gpg: 合計被處理的數量:2 gpg: 已導入:2 (RSA: 2) [root@localhost soft]# curl -L http://get.rvm.io | bash -s stable % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 194 100 194 0 0 97 0 0:00:02 0:00:01 0:00:01 97 curl: (7) Failed connect to raw.githubusercontent.com:443; 拒絕鏈接 [root@localhost soft]# curl -L http://get.rvm.io | bash -s stable % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 194 100 194 0 0 94 0 0:00:02 0:00:02 --:--:-- 94 100 24535 100 24535 0 0 2868 0 0:00:08 0:00:08 --:--:-- 5254 Downloading https://github.com/rvm/rvm/archive/1.29.9.tar.gz Downloading https://github.com/rvm/rvm/releases/download/1.29.9/1.29.9.tar.gz.asc gpg: 於 2019年07月10日 星期三 16時31分02秒 CST 建立的簽名,使用 RSA,鑰匙號 39499BDB gpg: 無缺的簽名,來自於「Piotr Kuczynski <piotr.kuczynski@gmail.com>」 gpg: 警告:這把密鑰未經受信任的簽名認證! gpg: 沒有證據代表這個簽名屬於它所聲稱的持有者。 主鑰指紋: 7D2B AF1C F37B 13E2 069D 6956 105B D0E7 3949 9BDB GPG verified '/usr/local/rvm/archives/rvm-1.29.9.tgz' Creating group 'rvm' Installing RVM to /usr/local/rvm/ Installation of RVM in /usr/local/rvm/ is almost complete: * First you need to add all users that will be using rvm to 'rvm' group, and logout - login again, anyone using rvm will be operating with `umask u=rwx,g=rwx,o=rx`. * To start using RVM you need to run `source /etc/profile.d/rvm.sh` in all your open shell windows, in rare cases you need to reopen all shell windows. * Please do NOT forget to add your users to the rvm group. The installer no longer auto-adds root or users to the rvm group. Admins must do this. Also, please note that group memberships are ONLY evaluated at login time. This means that users must log out then back in before group membership takes effect! Thanks for installing RVM [root@localhost soft]# echo $? 0
到此處rvm安裝成功shell
加載rvm環境:數據庫
[root@localhost soft]# find / -name rvm -print /usr/local/rvm /usr/local/rvm/src/rvm /usr/local/rvm/src/rvm/bin/rvm /usr/local/rvm/src/rvm/lib/rvm /usr/local/rvm/src/rvm/scripts/rvm /usr/local/rvm/bin/rvm /usr/local/rvm/lib/rvm /usr/local/rvm/scripts/rvm [root@localhost soft]# source /usr/local/rvm/scripts/rvm
rvm查看當前能夠安裝的ruby環境的版本:windows
[root@localhost soft]# rvm list known #MRI Rubies [ruby-]1.8.6[-p420] [ruby-]1.8.7[-head] # security released on head [ruby-]1.9.1[-p431] [ruby-]1.9.2[-p330] [ruby-]1.9.3[-p551] [ruby-]2.0.0[-p648] [ruby-]2.1[.10] [ruby-]2.2[.10] [ruby-]2.3[.8] [ruby-]2.4[.6] [ruby-]2.5[.5] [ruby-]2.6[.3] [ruby-]2.7[.0-preview1] ruby-head #for forks use: rvm install ruby-head-<name> --url https://github.com/github/ruby.git --branch 2.2 #JRuby jruby-1.6[.8] jruby-1.7[.27] jruby-9.1[.17.0] jruby[-9.2.7.0] jruby-head
這次演示ruby環境安裝的是ruby-2.4.6:centos
[root@localhost soft]# rvm install 2.4.6 Searching for binary rubies, this might take some time. No binary rubies available for: centos/7/x86_64/ruby-2.4.6. Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies. Checking requirements for centos. Installing requirements for centos. Installing required packages: libffi-devel, readline-devel, sqlite-devel....... Requirements installation successful. Installing Ruby from source to: /usr/local/rvm/rubies/ruby-2.4.6, this may take a while depending on your cpu(s)... ruby-2.4.6 - #downloading ruby-2.4.6, this may take a while depending on your connection... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 12.0M 100 12.0M 0 0 54872 0 0:03:50 0:03:50 --:--:-- 38723 ruby-2.4.6 - #extracting ruby-2.4.6 to /usr/local/rvm/src/ruby-2.4.6..... ruby-2.4.6 - #configuring.................................................................. ruby-2.4.6 - #post-configuration.. ruby-2.4.6 - #compiling...............................- .................................................................................... ruby-2.4.6 - #installing........................... ruby-2.4.6 - #making binaries executable.. ruby-2.4.6 - #downloading rubygems-3.0.6 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 866k 100 866k 0 0 40767 0 0:00:21 0:00:21 --:--:-- 39023 No checksum for downloaded archive, recording checksum in user configuration. ruby-2.4.6 - #extracting rubygems-3.0.6..... ruby-2.4.6 - #removing old rubygems........ ruby-2.4.6 - #installing rubygems-3.0.6............................................... ruby-2.4.6 - #gemset created /usr/local/rvm/gems/ruby-2.4.6@global ruby-2.4.6 - #importing gemset /usr/local/rvm/gemsets/global.gems................................................................ ruby-2.4.6 - #generating global wrappers....... ruby-2.4.6 - #gemset created /usr/local/rvm/gems/ruby-2.4.6 ruby-2.4.6 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems evaluated to empty gem list ruby-2.4.6 - #generating default wrappers....... ruby-2.4.6 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake). Install of ruby-2.4.6 - #complete Ruby was built without documentation, to build it run: rvm docs generate-ri [root@localhost soft]# [root@localhost soft]# echo $? 0
此時ruby-2.4.6環境安裝成功
查看當前ruby的版本:
[root@localhost soft]# ruby --version
ruby 2.4.6p354 (2019-04-01 revision 67394) [x86_64-linux]
切換到ruby-2.4.6環境:
[root@localhost soft]# rvm use 2.4.6
Using /usr/local/rvm/gems/ruby-2.4.6
[root@localhost soft]# ruby --version
ruby 2.4.6p354 (2019-04-01 revision 67394) [x86_64-linux]
把ruby-2.4.6環境設置成默認:
[root@localhost soft]# rvm use 2.4.6 --default
Using /usr/local/rvm/gems/ruby-2.4.6
[root@localhost soft]# ruby --version
ruby 2.4.6p354 (2019-04-01 revision 67394) [x86_64-linux]
安裝redis.gem 默認直接安裝的是redis-4.1.3:
[root@localhost soft]# gem install redis Fetching redis-4.1.3.gem Successfully installed redis-4.1.3 Parsing documentation for redis-4.1.3 Installing ri documentation for redis-4.1.3 Done installing documentation for redis after 1 seconds 1 gem installed [root@localhost soft]# echo $? 0
安裝成功:
[root@localhost soft]# /data/soft/redis-4.0.12/src/redis-trib.rb Usage: redis-trib <command> <options> <arguments ...> create host1:port1 ... hostN:portN --replicas <arg> check host:port info host:port fix host:port --timeout <arg> reshard host:port
友情提示:
在管理redis-cluster集羣時,常常會使用到rvm環境,每次執行/data/soft/redis-4.0.12/src/redis-trib.rb 命令時,總得提早加載source /usr/local/rvm/scripts/rvm
而後切換到ruby-2.4.6 環境: rvm use 2.4.6 ;有點繁瑣,因此直接寫入到環境變量文件,這樣在登陸這檯安裝有redis-trib.rb命令的機器時,會自動加載ruby環境,是能夠減小每次在命令行執行加載rvm的命令
[root@mysql-redis182 ~]# cat .bashrc #.bashrc #User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' #Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi ### [[ -s "/usr/local/rvm/scripts/rvm" ]] && . "/usr/local/rvm/scripts/rvm" rvm use 2.4.6 >/dev/null 2>&1