资源规划
| 组件 | bigdata-node1 | bigdata-node2 | bigdata-node3 |
|---|---|---|---|
| OS | centos-7.6 | centos-7.6 | centos-7.6 |
环境准备
- 已安装
- Vagrant官网box下载
- CentOS官网box下载
- http://cloud.centos.org/centos/7/vagrant/x86_64/images/
- http://cloud.centos.org/centos/8/vagrant/x86_64/images/
方式1:完全搭建
虚拟机安装
1. 安装Vagrant插件
将 ${VAGRRANT_HOME}\embedded\gems 所有文件中的“https://rubygems.org”替换为“https://gems.ruby-china.com”,以加快Vagrant插件下载速度。vagrant plugin list# 集群主机名管理插件vagrant plugin install vagrant-hostmanager# guest addtionsvagrant plugin install vagrant-vbguest# 目录共享插件vagrant plugin install vagrant-bindfs
2. 导入基本操作系统镜像
# 查看box列表vagrant box list# 新增boxcd /cygdrive/i/learn_resource/tools/vagrant/box/CentOSvagrant box add centos7.6 Vagrant-CentOS-7.6-x86_64.VirtualBox.box
3. 编写VagrantFile
```ruby-- mode: ruby --
vi: set ft=ruby :
Vagrant.require_version “>= 1.6.0”
boxes = [ { :name => “bigdata-node1”, :eth1 => “192.168.0.101”, :mem => “4096”, :cpu => “1” }, { :name => “bigdata-node2”, :eth1 => “192.168.0.102”, :mem => “2048”, :cpu => “1” }, { :name => “bigdata-node3”, :eth1 => “192.168.0.103”, :mem => “2048”, :cpu => “1” } ]
Vagrant.configure(2) do |config|
config.vm.box = “centos7.6”
第一次安装时请注释以下三行配置,配置ssh密码验证(sshd_config)后再打开
config.ssh.username = ‘vagrant’ config.ssh.password = ‘vagrant’ config.ssh.insert_key = true
ssh config end
config.vm.box_check_update = false if Vagrant.has_plugin?(“vagrant-vbguest”) config.vbguest.auto_update = false end
禁用系统默认的共享目录
config.vm.synced_folder ‘.’, ‘/vagrant’, disabled: true
boxes.each do |opts| config.vm.define opts[:name] do |config| config.vm.hostname = opts[:name] config.vm.provider “virtualbox” do |v| v.customize [“modifyvm”, :id, “—name”, opts[:name]] v.customize [“modifyvm”, :id, “—memory”, opts[:mem]] v.customize [“modifyvm”, :id, “—cpus”, opts[:cpu]] end config.vm.network :private_network, ip: opts[:eth1] end end config.vm.synced_folder “./share”, “/mnt/app-data”, type: “nfs” config.bindfs.bind_folder “/mnt/app-data”,”/share”,force_user:”vagrant”,force_group:”vagrant”,o:”nonempty” end
<a name="IcDQi"></a>### 4. 初始化虚拟机```powershell# 假设VagrantFile存放目录:E:\vagrant\mybox\bigdata# 进入Cygwin终端cd /cygdrive/e/vagrant/mybox/bigdata# 创建共享目录,并将其设置为windows共享目录(推荐添加everyone读写权限)mkdir shareecho 'test' > share/test.txtvagrant up# 独立安装启动vagrant up bigdata-node1vagrant up bigdata-node2vagrant up bigdata-node3# 登录虚拟机vagrant ssh# 独立登录vagrant ssh bigdata-node1vagrant ssh bigdata-node2vagrant ssh bigdata-node3# 查看虚拟机运行状态vagrant status
Vagrant需要先安装virtualbox guest addtions才能开启Virtualbox目录共享功能。未开启时启动虚拟机将会抛出异常“__unknown filesystem type ‘vboxsf’”。解决方案如下:
# 示例(Cygwin客户端)cd /cygdrive/e/vagrant/mybox/bigdatavagrant up && vagrant ssh# 使用root用户更新系统组件(配置yum源过程省略)sudo surm -f /var/run/yum.pid # 当出现"Another app is currently holding the yum lock; waiting for it to exit..."时执行yum updateyum install -y gcc gcc-devel gcc-c++ gcc-c++-devel make kernel kernel-devel# 退出root用户exit# 退出vagrant用户,退出sshexitvagrant halt # 关闭虚拟机# 配置VBoxGuestAdditions.iso镜像(VirtualBox界面操作就,添加“虚拟光驱”,${VirtualBox安装目录}\VBoxGuestAdditions.iso)vagrant up# 若Vagrant启动没有自动加载VBoxGuestAdditions,则进行手动安装vagrant sshsudo mkdir -p /media/cdromsudo mount -t auto /dev/cdrom /media/cdrom/cd /media/cdrom/sudo sh VBoxLinuxAdditions.runexitvagrant reload
5. SSH登录配置
sudo chmod 766 /etc/ssh/sshd_configsudo vi /etc/ssh/sshd_config
配置如下:
RSAAuthentication yes ## 启用 RSA 认证PasswordAuthentication yes ## 开启ssh密码登陆PubkeyAuthentication yes ## 启用公钥私钥配对认证方式PermitRootLogin yes ## 不限制登录方式AuthorizedKeysFile .ssh/authorized_keys ## 公钥文件路径(和上面生成的文件同)
系统设置
1. 基本配置
# 停止防火墙sudo systemctl stop firewalld# 禁用防火墙sudo systemctl disable firewalld# 查看防火墙状态sudo systemctl status firewalld# 禁用Selinux(注意重启liunx系统后才生效)sudo vi /etc/selinux/configSELINUX=disabled# 关闭Swapsudo vi /etc/fstab# 注释掉swap相关命令行echo vm.swappiness=0 >> /etc/sysctl.conf# 临时生效(重启后永久生效)sysctl -w vm.swappiness=0sysctl -pfree -g
2. 集群主机配置
# 设置主机名(集群所有节点)sudo vi /etc/hosts
配置如下:
# 127.0.0.1 localhost# 注意:务必注释# 127.0.1.1 ${HOST_NAME}# 本机内网IP建议配置与第一行(多个域名情况下)192.168.0.101 bigdata-node1192.168.0.102 bigdata-node2192.168.0.103 bigdata-node3
软件上传目录
软件统一放置于~/software目录下。
sudo mkdir -p /home/vagrant/softwaresudo chmod 755 /home/vagrant/softwaresudo chown vagrant:vagrant /home/vagrant/software
软件安装目录
软件统一安装于~/modules目录下。
sudo mkdir -p /home/vagrant/modulessudo chmod 755 /home/vagrant/modulessudo chown vagrant:vagrant /home/vagrant/modules
Maven仓库目录
Maven仓库配置于~/repository目录下。
sudo mkdir -p /home/vagrant/repositorysudo chmod 755 /home/vagrant/repositorysudo chown vagrant:vagrant /home/vagrant/repository
测试数据文件目录
测试数据文件统一存放于~/datas目录下。
sudo mkdir -p /home/vagrant/datassudo chmod 755 /home/vagrant/datassudo chown vagrant:vagrant /home/vagrant/datas
方式2:引用初始化虚拟机
cd /cygdrive/i/learn_resource/tools/vagrant/box/CentOSvagrant box add centos7.6 Vagrant-CentOS-7.6-x86_64.VirtualBox-base.box
