资源规划
| 组件 | cicd-server-1 | cicd-test-2 | cicd-prod-3 |
|---|---|---|---|
| OS | redhat-8.2 | redhat-8.2 | redhat-8.2 |
环境准备
已安装:
box下载:https://app.vagrantup.com/pbalu/boxes/rhel8
方式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/RHELvagrant box add redhat8.2 Vagrant-RedHat-8.2-x86_64.VirtualBox.box
(3)编写VagrantFile_
# -*- mode: ruby -*-# vi: set ft=ruby :Vagrant.require_version ">= 1.6.0"boxes = [{:name => "cicd-server-1",:eth1 => "192.168.56.101",:mem => "8192",:cpu => "1"}]Vagrant.configure(2) do |config|config.vm.box = "redhat8.2"# 第一次安装时请注释以下三行配置,配置ssh密码验证(sshd_config)后再打开config.ssh.username = 'vagrant'config.ssh.password = 'vagrant'config.ssh.insert_key = true# ssh config endconfig.vm.box_check_update = falseif Vagrant.has_plugin?("vagrant-vbguest")config.vbguest.auto_update = falseend# 禁用系统默认的共享目录config.vm.synced_folder '.', '/vagrant', disabled: trueboxes.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]]endconfig.vm.network :private_network, ip: opts[:eth1]endendconfig.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
(4)初始化虚拟机
# 假设VagrantFile存放目录:E:\vagrant\mybox\cicd# 进入Cygwin终端cd /cygdrive/e/vagrant/mybox/cicd# 创建共享目录,并将其设置为windows共享目录(推荐添加everyone读写权限)mkdir shareecho 'test' > share/test.txtvagrant up# 登录虚拟机vagrant ssh# 查看虚拟机运行状态vagrant status
Vagrant需要先安装virtualbox guest addtions才能开启Virtualbox目录共享功能。未开启时启动虚拟机将会抛出异常“__unknown filesystem type ‘vboxsf’”。解决方案如下:
# 示例(Cygwin客户端)cd /cygdrive/e/vagrant/mybox/cicdvagrant up && vagrant ssh# 使用root用户更新系统组件(配置yum源过程省略)sudo su# 更换yum源,将原有源删除或备份到别的目下下cd /etc/yum.repos.d/mv /etc/yum.repos.d/redhat.repo /etc/yum.repos.d/redhat.repo.backupwget -O /etc/yum.repos.d/redhat.repo http://mirrors.aliyun.com/repo/Centos-8.repo# 清除原有缓存,重建缓存yum clean allyum makecacheyum repolistyum -y install make automake gcc gcc-c++ kernel-devel wget tar fuse-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 ## 公钥文件路径(和上面生成的文件同)
设置完之后记得重启SSH服务,才能使刚才设置有效。
systemctl restart sshd.servicesystemctl status sshd.service
系统基本设置
# 查看firewall的状态sudo firewall-cmd --state# 查看防火墙状态(RedHat8之前的版本,防火墙采用iptables)sudo service iptables status# 查看firewall服务状态sudo systemctl status firewalld# 停止防火墙sudo systemctl stop firewalldsudo systemctl disable firewalld# 临时禁用SELinuxsetenforce 0# 禁用SELinuxsudo vi /etc/selinux/configSELINUX=disabled# 查看SELinux状态(注意重启liunx系统后才生效)getenforce
软件上传目录
软件统一放置于~/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:引用初始化虚拟机
# 将虚拟机导出为boxvagrant package --base cicd-server-1 --output Vagrant-RedHat-8.2-x86_64.VirtualBox-base.box# 引用boxcd /cygdrive/i/learn_resource/tools/vagrant/box/RHELvagrant box add redhat8.2 Vagrant-RedHat-8.2-x86_64.VirtualBox-base.box
磁盘空间扩容
- 磁盘文件操作。
```bash
1.固定磁盘转换为动态磁盘
“D:\software\vbox6\VBoxManage” modifyhd “E:\tmp_VMs\cicd-server-1\box-disk001.vmdk” -type normal
2.vmdk转化为vdi
“D:\software\vbox6\VBoxManage” clonehd “E:\tmp_VMs\cicd-server-1\box-disk001.vmdk” “E:\tmp_VMs\cicd-server-1\box-disk001.vdi” —format VDI
3.扩容
“D:\software\vbox6\VBoxManage” modifyhd “E:\tmp_VMs\cicd-server-1\box-disk001.vdi” —resize 51200
4.vdi恢复为vmdk(注意:新vmdk文件名不要和转换前的一致,否则会报错)
“D:\software\vbox6\VBoxManage” clonehd “E:\tmp_VMs\cicd-server-1\box-disk001.vdi” “E:\tmp_VMs\cicd-server-1\box-disk002.vmdk” -format VMDK
2. 更换磁盘(VirtualBox中将就的磁盘移除,更换为新制作的磁盘)。2. 系统调整磁盘规划。```bash# 1.查看挂载情况。fdisk -l################################################################################## 一般情况下,有两个物理分区/dev/sda1和/dev/sda2:/dev/sda1空间较小,用作boot分区。 ## /dev/sda2空间稍大,分成两个逻辑卷,一个用作根分区,一个用作交换分区。 ## 接着要做的就是将/dev/sda上未分配的磁盘空间分区,并添加到根分区所属的逻辑卷上。 ################################################################################### 2.将/dev/sda上未分配的磁盘空间分区。fdisk /dev/sda################################################################################## ... ## Command (m for help) : n ## Command action : p ## Partition number (1-4): 3 ## First cylinder (*-*, default *): w ## Using default value * ## Command (m for help): w ################################################################################### 3.重启虚拟机。# 4.将新建的分区格式化,建立文件系统。mkfs.ext4 /dev/sda3# 5.创建物理卷。pvcreate /dev/sda3# 6.执行完后查看物理卷,可以看到新增的物理卷。pvdisplay# 7.查看卷组。vgdisplay# 8.扩展卷组。(rhel8根据上一步骤查询结果,进行更改)vgextend rhel8 /dev/sda3# 9.查看逻辑卷,找到用作根的逻辑卷路径(此处为:/dev/rhel8/root)。lvdisplay# 10.扩展逻辑卷。lvextend -L 30G -n /dev/rhel8/root# 11.调整根逻辑卷大小。(当系统为CentOS7时,使用xfs_growfs(文件系统为xfx,# 可使用“df -Th”查看)替换resize2fs)resize2fs /dev/rhel8/root# 12.再次检查系统的空间情况。df-h
