基于 Vagrant 手动部署多个 Redis Server
环境准备
- 宿主机环境:Windows 10
- 虚拟机环境:Vagrant + VirtualBox
Vagrantfile 配置
首先,我们需要编写一个 Vagrantfile
来定义我们的虚拟机配置。假设已经在 D:\Vagrant\redis
目录下创建了一个 Vagrantfile
,其内容如下:
Vagrant.configure("2") do |config|
config.vm.box = "local_centos7"
[ "redis1", "redis2", "redis3" ].each_with_index do |name, index|
config.vm.define name do |node|
node.vm.network "private_network", ip: "192.168.50.#{index + 101}"
end
end
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
end
end
这里准备创建了
redis1
至redis3
的虚拟机,以redis1
为实操,操作熟练后,其他虚拟机也是一样的。
为什么使用 local_centos7
而不是 centos/7
?
-
local_centos7
是我们本地已经下载好的 CentOS 7 盒子,使用本地盒子可以避免每次创建虚拟机时都从网络下载,节省时间和带宽。 -
CentOS 7 盒子从官网下载有时是非常缓慢的,这里我提供了咱们国内的下载链接(点这里跳转,提取码:
2024
)
创建本地盒子
在终端(cmd)中进入 Vagrantfile
所在目录 D:\Vagrant\redis
,然后运行以下命令来添加本地盒子:
vagrant box add local_centos7 <CentOS-7...box所在路径(文件拖拽到 cmd)>
检查盒子是否创建成功
-
查看终端的输出提示,如果没有报错,说明盒子添加成功。
-
使用以下命令列出所有安装的盒子,查看是否存在
local_centos7
:vagrant box list
上述 Vagrantfile
如已创建(假设所在目录为:D:\Vagrant\redis
),并且 local_centos7
已创建,就已经成功一半了。
启动虚拟机
在 Vagrantfile
所在目录的终端中运行以下命令启动虚拟机:
vagrant up
进入 redis1
虚拟机
启动完成后,通过以下命令进入 redis1
虚拟机:
vagrant ssh redis1
配置 YUM 源
为了提高软件包的下载速度,我们可以将 YUM 源更换为阿里云的镜像源。
-
切换到
root
用户:su # 提示输入密码(vagrant)
-
下载阿里云的 CentOS 7 YUM 源配置文件:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-
编辑 YUM 源配置文件,将
http
替换为https
:vi /etc/yum.repos.d/CentOS-Base.repo
进入
vi
的命令模式,使用以下命令全局替换::%s/http:/https:/g
-
清理 YUM 缓存并重新生成缓存:
yum clean all yum makecache
测试换源是否成功
安装 wget
以测试换源是否成功:
yum install wget -y
安装 GCC
Redis 编译需要 GCC 工具链,首先检查是否已安装:
gcc --version # 如果输出了 gcc 的版本,则跳过 gcc 的安装
如果提示:bash: gcc: command not found
,那么就需要安装:
yum install gcc -y
中途无报错并且输出类似如下,表示安装成功。
安装 Redis
-
创建
Redis 安装目录
并下载Redis 源码
:mkdir -p /opt/software/redis && cd /opt/software/redis wget https://download.redis.io/redis-stable.tar.gz tar -xzf redis-stable.tar.gz && cd redis-stable
-
编译并安装 Redis:
make install
-
检查 Redis 是否安装完成:
ll /usr/local/bin | grep redis
如果看到
redis-server
,redis-cli
等文件,说明 Redis 安装成功。
本文来自博客园,作者:顾平安,转载请注明原文链接:https://www.cnblogs.com/gupingan/p/18305426