本地测试环境搭建

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 为了日常更好的学习、测试,又不想付出云主机等开销,搭建一个本地测试环境无疑是个明智的选择。再结合GitHub、Jenkins、Docker等工具,进行持续集成、资源隔离,既可以快速的构建、部署自己的项目,又可以迅速的环境恢复。仔细想了一下,简直不能更好。

本地测试环境搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。

封面

工欲善其事,必先利其器
——《论语·卫灵公》

为了日常更好的学习、测试,又不想付出云主机等开销,搭建一个本地测试环境无疑是个明智的选择。再结合GitHub、Jenkins、Docker等工具,进行持续集成、资源隔离,既可以快速的构建、部署自己的项目,又可以迅速的环境恢复。仔细想了一下,简直不能更好。


目录

[TOC]


环境描述

本地环境:

  • 操作系统:Windows7 企业版
  • 处理器:i5-3340M 2.70GHz
  • 内存:16GB
  • 系统类型:64位
  • 硬盘:总量300GB,剩余100GB
  • 虚拟化软件:Oracle VM VirtualBox 5.0.20
  • 远程访问软件:SecureCRT 6.6.1

测试环境:

  • 操作系统:CentOS 7.3
  • Linux内核:3.10
  • 系统镜像:CentOS-7-x86_64-Minimal-1611.iso
  • CPU核数:1核
  • 内存:2GB
  • 系统类型:64位
  • 硬盘:20GB

创建虚拟机

1、安装操作系统

具体设置:

(PS:右CTRL切换鼠标焦点)

  • 系统类型:local-4(随意)、Linux、Red Hat (64-bit)
  • 内存大小:2048MB(2GB)
  • 虚拟硬盘:现在创建虚拟硬盘
  • 虚拟硬盘文件类型:VDI(VirtualBox磁盘映像)
  • 虚拟硬盘分配方式:动态分配(PS:固定大小创建真的很慢,因为我要创建4、5个,实在等不起)
  • 虚拟硬盘位置大小:local-4(随意)、20GB(最好不要用默认8GB,容易不够用,因为上面是动态分配,大点没关系)
  • 语言:中文、简体中文(中国)
  • 安装位置:不变
  • 用户设置:ROOT密码(secret)、不会创建任何用户

截图:

Linux、Red Hat (64-bit)

内存:2048MB(2GB)

默认设置:现在创建虚拟硬盘

默认设置:VDI(VirtualBox磁盘映像)

默认设置:动态分配

硬盘大小:20GB(最好不要用默认8GB,容易不够用)

2、配置IP

配置动态IP

日常使用经常会需要通过IP来访问虚机及运行在其上的服务,因此需要给虚机配置IP。
网上有很多方法,最简单的方法就是在安装完成之后,先关机,再添加一个新的虚拟网卡即可,启动后就会发现多了一个IP,该IP是动态IP(可以通过ip a命令,查看是否包含dynamic来区分)。

截图:

网卡1(原网卡)保留不动,连接方式:网络地址转换(NAT),以后做端口转发时会用到

网卡2-启用网络连接,连接方式:仅主机(Host-Only)适配器

查看静态IP,命令:ip a,192.168.56.101

配置静态IP

除了上述方法,也可以通过修改网卡的配置文件来为虚机配置静态IP,在要创建多个虚机来组成测试环境的情况下,建议采用这种方式。

具体步骤:

  • 查看网卡信息,命令:ip a,记录网卡名和MAC地址
  • 修改网卡的配置文件:/etc/sysconfig/network-scripts/ifcfg-enp0s8、ifcfg-enp0s3,若没有,则新建。
  • 重启network服务,命令:systemctl restart network.service
  • 重启虚机

将/etc/sysconfig/network-scripts/ifcfg-enp0s3中的ONBOOT=no改为yes,否则yum可能会不正常。

修改(或新建)后的网卡配置文件(/etc/sysconfig/network-scripts/ifcfg-enp0s8)如下:

DEVICE=enp0s8
BOOTPROTO=static
TYPE=Ethernet
NAME=enp0s8
BROADCAST=192.168.56.255
HWADDR=08:00:27:44:F5:35
IPADDR=192.168.56.101
IPV6INIT=yes
IPV6_AUTOCONF=yes
NETMASK=255.255.255.0
NETWORK=192.168.56.1
ONBOOT=yes

截图:

查看网卡信息,命令:ip a,记录网卡名和MAC地址

重启虚机后的网卡信息,没有了原来的dynamic,表示静态IP配置成功

3、配置远程访问

Virtual Box等虚拟机软件的控制界面虽然也能访问虚机,甚至某些操作系统还有可视化界面,但是对于一个合格的程序员来说,为了掌握Linux下的操作,以及追求流程的操作体验,使用远程访问工具来访问虚机,无疑是一个Good idea。

具体步骤:

  • Alt + C(或者从工具栏打开)打开连接窗口,点击“新建会话”
  • 连接协议:SSH2
  • 主机名:192.168.56.101,端口:22,防火墙:None,用户名:root
  • 文件传输协议:SFTP
  • 会话名称:192.168.56.101(可自定义),描述:无
  • 用户名:root,密码:(secret),保存密码
  • 确认保存(暂无截图)
  • 检查确认IP,命令:ip a

截图:

Alt + C(或者从工具栏打开)打开连接窗口,点击“新建会话”

连接协议:SSH2

主机名:192.168.56.101,端口:22,防火墙:None,用户名:root

文件传输协议:SFTP

会话名称:192.168.56.101(可自定义),描述:无

用户名:root,密码:(secret),保存密码

检查确认IP,命令:ip a

4、修改主机名

由于在许多测试过程中,都需要用到多个虚机,在使用远程访问工具时,不容易区分,所以需要修改主机名,方便日常管理和区分。CentOS 7提供了主机名工具:hostnamectl,通过这个工具,可以很方便的管理主机名。

4.1、永久修改主机名:

hostnamectl set-hostname local-56-101

4.2、重新登陆或Alt + C(新建会话),可以确认主机名是否修改成功:

附:hostnamectl使用方法:
hostnamectl --help

安装工具

不论是进行项目开发,还是进行多机器的运维、测试,使用合适的工具,都能极大的提高日常开发效率。所以在创建完虚机后,首先需要安装一些实用、方便的工具。

lrzsz

lrzsz是一个Linux下类似ftp的用于文件上传、下载的工具,通过lrzsz可以很方便的在本地宿主机与VirtualBox上的虚机直接传输文件。

安装:

yum install lrzsz -y

命令:

  • 从本机上传文件:rz
  • 从虚机下载文件:sz [文件名]

Vim

Vim在Vi的基础上添加了很多特性,虽然系统默认集成了Vi,但还是推荐安装Vim,并修改配置文件,来对字符集、编码、tab键等进行设置。

安装:

yum install vim -y

配置:

tee ~/.vimrc <<EOF
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set ts=4
set expandtab
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
EOF
source ~/.vimrc

bind-utils与net-tools

bind-utils与net-tools分别包含了nslookup与ifconfig等常用的网络相关的工具。

安装:

yum install bind-utils net-tools -y

Git

Git是一个开源、免费的分布式版本控制系统,可以高速、有效的处理各种规模的项目的版本管理。

安装:

yum install git -y

Ansible

Ansible是一款基于Python开发的自动化运维工具,可以进行配置管理、批量部署等功能。对于机器较多的场景,可以使用Ansible来免去重复敲命令的烦恼。

安装:

yum install ansible -y

使用方法:

  • 创建一个工作目录:~/ansible
  • 在工作目录中创建一个Inventory文件,即包含各主机信息的文件
  • 官方文档

Inventory文件说明:

  • [cluster]是组的别名,可以通过该组名对其下的所有机器进行控制
  • 每一行内容分别是:机器别名、机器IP、ssh访问时使用的用户名、ssh访问时使用的密码

创建Inventory文件:

mkdir ~/ansible
tee ~/ansible/cluster.inv <<EOF
[cluster]
192.168.56.101 ansible_ssh_host=192.168.56.101 ansible_ssh_user=root ansible_ssh_pass=test
192.168.56.102 ansible_ssh_host=192.168.56.102 ansible_ssh_user=root ansible_ssh_pass=test
192.168.56.103 ansible_ssh_host=192.168.56.103 ansible_ssh_user=root ansible_ssh_pass=test
192.168.56.104 ansible_ssh_host=192.168.56.104 ansible_ssh_user=root ansible_ssh_pass=test
EOF

示例:

从创建的Inventory文件(cluster.inv)中获取机器信息,并在Inventory文件中的所有机器上安装docker,并启动

ansible all -i cluster.inv -m yum -a "name=docker"
ansible all -i ~/ansible/cluster.inv -m raw -a "systemctl start docker"

Tips:

如果出现第一次ssh访问出现的输入yes/or的提示,导致中断,可以修改ansible的配置文件:/etc/ansible/ansible.cfg,将默认的host_key_checking = False改为True。

Docker

Docker是用于开发、装载、运行应用的开放平台。通过Docker你可以将你的应用与架构分离。Docker可以帮你更快的装载代码、更快的测试、更快的部署,缩短代码从编写到运行的周期。

安装:

yum install docker -y

启动:

systemctl start docker

安装服务

MySQL

最流行的关系型数据库管理系统之一,开发环境自然得有一个。推荐5.7版本以后的,支持Json,在表结构设计上灵活了很多。并且推荐使用docker以容器的方式启动,如果发生配置不当或使用不当,可以非常方便、迅速的重置环境,并且不会对所在虚机的环境造成影响。

安装:

docker pull mysql:5.7

mkdir /opt/dev/mysql
rm -rf /opt/dev/mysql

docker run --name dev_mysql --restart=always -v /opt/dev/mysql:/var/lib/mysql --privileged=true -e MYSQL_ROOT_PASSWORD=root -p 3307:3306 mysql:5.7

说明:

  • mysql版本:5.7
  • 容器名:dev_mysql
  • 数据目录:/opt/dev/mysql
  • Root密码:root
  • 端口:3307
  • 容器退出后始终重启
  • --privileged=true是为了防止因CentOS7中的安全模块selinux的权限限制,导致出现“Permission denied”的错误

注:封面来自于:GRATISOGRAPHY

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
架构师 测试技术 网络性能优化
dpdk课程学习之练习笔记七(vpp环境搭建及plugin demo测试)
dpdk课程学习之练习笔记七(vpp环境搭建及plugin demo测试)
1071 0
|
Ubuntu 测试技术 Linux
dpdk测试环境搭建(vmware下ubuntu环境参考上文汇总流程)
dpdk测试环境搭建(vmware下ubuntu环境参考上文汇总流程)
918 0
|
应用服务中间件 测试技术 nginx
dpdk环境搭建及运行helloworld测试
dpdk环境搭建及运行helloworld测试
724 0
|
存储 Oracle 关系型数据库
HBase集群环境搭建与测试(上)
HBase集群环境搭建与测试
432 0
|
JavaScript Java 测试技术
『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium
『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium
5333 0
|
分布式计算 Hadoop 测试技术
Hadoop【环境搭建 05】【hadoop-3.1.3 单机版基准测试 TestDFSIO + mrbench + nnbench + Terasort + sort 举例】
【4月更文挑战第1天】Hadoop【环境搭建 05】【hadoop-3.1.3 单机版基准测试 TestDFSIO + mrbench + nnbench + Terasort + sort 举例】
600 3
|
4月前
|
监控 测试技术 API
n8n自动化测试教程 (1):环境搭建与初识n8n
n8n是一款开源、可视化的工作流自动化工具,测试工程师可通过拖拽节点快速构建API测试流程,实现测试编排、数据管理、自动化监控与告警等功能,提升测试效率与覆盖率。
|
6月前
|
Web App开发 JavaScript 测试技术
Playwright 极速入门:1 小时搞定环境搭建与首个测试脚本
本文带你1小时快速入门Playwright,完成环境搭建并编写首个测试脚本。Playwright是微软推出的现代化Web自动化测试工具,支持Chromium、Firefox和WebKit三大浏览器引擎,具备跨平台、多语言(Python/JS/Java/C#)特性。其核心优势包括:智能自动等待机制减少失败率、内置录制工具实时生成脚本、多语言灵活选择,以及真移动端设备模拟能力,显著提升测试效率和可靠性。
|
11月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
1629 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
机器学习/深度学习 人工智能 文字识别
AI计算机视觉笔记二十:PaddleOCR环境搭建及测试
OCR技术广泛应用于日常生活中,与人脸识别一样常见。PaddleOCR是一个基于飞桨的OCR工具库,具有超轻量级中文OCR模型,支持中英文数字组合、竖排及长文本识别。本文档详细介绍了PaddleOCR的学习过程,包括环境搭建、安装、样本标注及测试步骤。使用AutoDL云平台进行环境创建,并提供了详细的命令行操作指南,帮助用户顺利完成PaddleOCR的部署与测试。
1342 1