zoukankan      html  css  js  c++  java
  • 本地测试环境搭建

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

    环境描述


    本地环境:

    • 操作系统: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
    

    使用方法:

    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”的错误


    作者:菜鸟启示录
    出处:http://www.cnblogs.com/ggsmida/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    本文如对您有帮助,还请多帮 【推荐】 下此文。

  • 相关阅读:
    对MVC模型的自悟,详尽解释,为了更多非计算机人员可以理解
    openSUSE leap 42.3 实现有线 无线同时用
    Fedora27 源配置
    Ubuntu16.04添加HP Laserjet Pro M128fn打印机和驱动
    openSUSE leap 42.3 添加HP Laserjet Pro M128fn打印机和驱动
    OpenSUSE Leap 42.3下通过Firefox Opera Chromium浏览器直接执行java应用程序(打开java jnlp文件)实现在服务器远程虚拟控制台完成远程管理的方法
    OpenSUSE Leap 42.3 安装java(Oracle jre)
    linux下支持托盘的邮件客户端Sylpheed
    Ubuntu下通过Firefox Opera Chromium浏览器直接执行java应用程序(打开java jnlp文件)实现在服务器远程虚拟控制台完成远程管理的方法
    Firefox 浏览器添加Linux jre插件
  • 原文地址:https://www.cnblogs.com/ggsmida/p/local_test_env.html
Copyright © 2011-2022 走看看