资源规划

组件 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插件下载速度。

  1. vagrant plugin list
  2. # 集群主机名管理插件
  3. vagrant plugin install vagrant-hostmanager
  4. # guest addtions
  5. vagrant plugin install vagrant-vbguest
  6. # 目录共享插件
  7. vagrant plugin install vagrant-bindfs

(2)导入基本操作系统镜像

  1. # 查看box列表
  2. vagrant box list
  3. # 新增box
  4. cd /cygdrive/i/learn_resource/tools/vagrant/box/RHEL
  5. vagrant box add redhat8.2 Vagrant-RedHat-8.2-x86_64.VirtualBox.box

(3)编写VagrantFile_

  1. # -*- mode: ruby -*-
  2. # vi: set ft=ruby :
  3. Vagrant.require_version ">= 1.6.0"
  4. boxes = [
  5. {
  6. :name => "cicd-server-1",
  7. :eth1 => "192.168.56.101",
  8. :mem => "8192",
  9. :cpu => "1"
  10. }
  11. ]
  12. Vagrant.configure(2) do |config|
  13. config.vm.box = "redhat8.2"
  14. # 第一次安装时请注释以下三行配置,配置ssh密码验证(sshd_config)后再打开
  15. config.ssh.username = 'vagrant'
  16. config.ssh.password = 'vagrant'
  17. config.ssh.insert_key = true
  18. # ssh config end
  19. config.vm.box_check_update = false
  20. if Vagrant.has_plugin?("vagrant-vbguest")
  21. config.vbguest.auto_update = false
  22. end
  23. # 禁用系统默认的共享目录
  24. config.vm.synced_folder '.', '/vagrant', disabled: true
  25. boxes.each do |opts|
  26. config.vm.define opts[:name] do |config|
  27. config.vm.hostname = opts[:name]
  28. config.vm.provider "virtualbox" do |v|
  29. v.customize ["modifyvm", :id, "--name", opts[:name]]
  30. v.customize ["modifyvm", :id, "--memory", opts[:mem]]
  31. v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
  32. end
  33. config.vm.network :private_network, ip: opts[:eth1]
  34. end
  35. end
  36. config.vm.synced_folder "./share", "/mnt/app-data", type: "nfs"
  37. config.bindfs.bind_folder "/mnt/app-data","/share",force_user:"vagrant",force_group:"vagrant",o:"nonempty"
  38. end

(4)初始化虚拟机

  1. # 假设VagrantFile存放目录:E:\vagrant\mybox\cicd
  2. # 进入Cygwin终端
  3. cd /cygdrive/e/vagrant/mybox/cicd
  4. # 创建共享目录,并将其设置为windows共享目录(推荐添加everyone读写权限)
  5. mkdir share
  6. echo 'test' > share/test.txt
  7. vagrant up
  8. # 登录虚拟机
  9. vagrant ssh
  10. # 查看虚拟机运行状态
  11. vagrant status

Vagrant需要先安装virtualbox guest addtions才能开启Virtualbox目录共享功能。未开启时启动虚拟机将会抛出异常“__unknown filesystem type ‘vboxsf’”。解决方案如下:

  1. # 示例(Cygwin客户端)
  2. cd /cygdrive/e/vagrant/mybox/cicd
  3. vagrant up && vagrant ssh
  4. # 使用root用户更新系统组件(配置yum源过程省略)
  5. sudo su
  6. # 更换yum源,将原有源删除或备份到别的目下下
  7. cd /etc/yum.repos.d/
  8. mv /etc/yum.repos.d/redhat.repo /etc/yum.repos.d/redhat.repo.backup
  9. wget -O /etc/yum.repos.d/redhat.repo http://mirrors.aliyun.com/repo/Centos-8.repo
  10. # 清除原有缓存,重建缓存
  11. yum clean all
  12. yum makecache
  13. yum repolist
  14. yum -y install make automake gcc gcc-c++ kernel-devel wget tar fuse-devel
  15. # 退出root用户
  16. exit
  17. # 退出vagrant用户,退出ssh
  18. exit
  19. vagrant halt # 关闭虚拟机
  20. # 配置VBoxGuestAdditions.iso镜像(VirtualBox界面操作就,添加“虚拟光驱”,${VirtualBox安装目录}\VBoxGuestAdditions.iso)
  21. vagrant up
  22. # 若Vagrant启动没有自动加载VBoxGuestAdditions,则进行手动安装
  23. vagrant ssh
  24. sudo mkdir -p /media/cdrom
  25. sudo mount -t auto /dev/cdrom /media/cdrom/
  26. cd /media/cdrom/
  27. sudo sh VBoxLinuxAdditions.run
  28. exit
  29. vagrant reload

(5)SSH登录配置

  1. sudo chmod 766 /etc/ssh/sshd_config
  2. sudo vi /etc/ssh/sshd_config

配置如下:

  1. RSAAuthentication yes ## 启用 RSA 认证
  2. PasswordAuthentication yes ## 开启ssh密码登陆
  3. PubkeyAuthentication yes ## 启用公钥私钥配对认证方式
  4. PermitRootLogin yes ## 不限制登录方式
  5. AuthorizedKeysFile .ssh/authorized_keys ## 公钥文件路径(和上面生成的文件同)

设置完之后记得重启SSH服务,才能使刚才设置有效。

  1. systemctl restart sshd.service
  2. systemctl status sshd.service

系统基本设置

  1. # 查看firewall的状态
  2. sudo firewall-cmd --state
  3. # 查看防火墙状态(RedHat8之前的版本,防火墙采用iptables)
  4. sudo service iptables status
  5. # 查看firewall服务状态
  6. sudo systemctl status firewalld
  7. # 停止防火墙
  8. sudo systemctl stop firewalld
  9. sudo systemctl disable firewalld
  10. # 临时禁用SELinux
  11. setenforce 0
  12. # 禁用SELinux
  13. sudo vi /etc/selinux/config
  14. SELINUX=disabled
  15. # 查看SELinux状态(注意重启liunx系统后才生效)
  16. getenforce

软件上传目录

软件统一放置于~/software目录下。

  1. sudo mkdir -p /home/vagrant/software
  2. sudo chmod 755 /home/vagrant/software
  3. sudo chown vagrant:vagrant /home/vagrant/software

软件安装目录

软件统一安装于~/modules目录下。

  1. sudo mkdir -p /home/vagrant/modules
  2. sudo chmod 755 /home/vagrant/modules
  3. sudo chown vagrant:vagrant /home/vagrant/modules

Maven仓库目录

Maven仓库配置于~/repository目录下。

  1. sudo mkdir -p /home/vagrant/repository
  2. sudo chmod 755 /home/vagrant/repository
  3. sudo chown vagrant:vagrant /home/vagrant/repository

测试数据文件目录

测试数据文件统一存放于~/datas目录下。

  1. sudo mkdir -p /home/vagrant/datas
  2. sudo chmod 755 /home/vagrant/datas
  3. sudo chown vagrant:vagrant /home/vagrant/datas

方式2:引用初始化虚拟机

  1. # 将虚拟机导出为box
  2. vagrant package --base cicd-server-1 --output Vagrant-RedHat-8.2-x86_64.VirtualBox-base.box
  3. # 引用box
  4. cd /cygdrive/i/learn_resource/tools/vagrant/box/RHEL
  5. vagrant box add redhat8.2 Vagrant-RedHat-8.2-x86_64.VirtualBox-base.box

磁盘空间扩容

  1. 磁盘文件操作。 ```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

  1. 2. 更换磁盘(VirtualBox中将就的磁盘移除,更换为新制作的磁盘)。
  2. 2. 系统调整磁盘规划。
  3. ```bash
  4. # 1.查看挂载情况。
  5. fdisk -l
  6. #################################################################################
  7. # 一般情况下,有两个物理分区/dev/sda1和/dev/sda2:/dev/sda1空间较小,用作boot分区。 #
  8. # /dev/sda2空间稍大,分成两个逻辑卷,一个用作根分区,一个用作交换分区。 #
  9. # 接着要做的就是将/dev/sda上未分配的磁盘空间分区,并添加到根分区所属的逻辑卷上。 #
  10. #################################################################################
  11. # 2.将/dev/sda上未分配的磁盘空间分区。
  12. fdisk /dev/sda
  13. #################################################################################
  14. # ... #
  15. # Command (m for help) : n #
  16. # Command action : p #
  17. # Partition number (1-4): 3 #
  18. # First cylinder (*-*, default *): w #
  19. # Using default value * #
  20. # Command (m for help): w #
  21. #################################################################################
  22. # 3.重启虚拟机。
  23. # 4.将新建的分区格式化,建立文件系统。
  24. mkfs.ext4 /dev/sda3
  25. # 5.创建物理卷。
  26. pvcreate /dev/sda3
  27. # 6.执行完后查看物理卷,可以看到新增的物理卷。
  28. pvdisplay
  29. # 7.查看卷组。
  30. vgdisplay
  31. # 8.扩展卷组。(rhel8根据上一步骤查询结果,进行更改)
  32. vgextend rhel8 /dev/sda3
  33. # 9.查看逻辑卷,找到用作根的逻辑卷路径(此处为:/dev/rhel8/root)。
  34. lvdisplay
  35. # 10.扩展逻辑卷。
  36. lvextend -L 30G -n /dev/rhel8/root
  37. # 11.调整根逻辑卷大小。(当系统为CentOS7时,使用xfs_growfs(文件系统为xfx,
  38. # 可使用“df -Th”查看)替换resize2fs)
  39. resize2fs /dev/rhel8/root
  40. # 12.再次检查系统的空间情况。
  41. df-h