本地测试环境搭建
本地测试环境搭建
版权声明:本文为博主原创文章,未经博主允许不得转载。
工欲善其事,必先利其器
——《论语·卫灵公》
为了日常更好的学习、测试,又不想付出云主机等开销,搭建一个本地测试环境无疑是个明智的选择。再结合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文件,即包含各主机信息的文件
- 官方文档
- 各模块文档
- PlayBooks文档
- 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业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
业界 | 除了R、Python,还有这些重要的数据科学工具
这年头,如果你不会点儿R或者Python,你都不好意思说你是混数据圈的。 在你向一些大神请教的时候,他可能也会推荐你学习这两个高级编程语言,然后顺便在推荐你了解一下SQL以及Math。如果讲究点的,可能还会传授你一些Spark、AWS/云计算的经验。 嗯!差不多就这些了~ 当前主流数据科学领域用的工具就是这些了。 但是,如果你想成为一个数据科学“英雄”,仅仅掌握一些主流的东西是不够的。 今天就给你推荐几个好用到爆的小工具~~ Linux Linux名字应该是如雷贯耳了吧!但很多数据科学家对它的命令行并不熟悉。Bash脚本是计算机科学中最基本的工具,并且数据科学中很大一部分需要编程,因此这项技能至关重要。 我的Linux启动小企鹅 几乎可以肯定的是,你的代码会在linux上开发和部署,使用命令行完成一些工作是非常酷的。与数据科学一样,Python也无法独立于环境工作,并且你必须通过一些命令行界面来处理包、框架管理、环境变量、访问路径($PATH)等等。 Git Git听名字,你也应该不陌生。大多数数据科学家对git似懂非懂。由于数据科学定义模糊,很多人都不遵循良好的软件开发实践。例如,有...
- 下一篇
6年来,Docker的这些变化你都知道吗?
Docker和容器技术的发展可谓日新月异,本文试图以全局视角来梳理一下Docker目前的生态圈。 Docker自发布以来发生了很多的变化,有些方面的变化还非常大。对于技术爱好者来说,我们喜欢酷毙新的功能,喜欢旧功能的改善。但对生产环境中的使用者来说,他们其实不太喜欢这种频繁的变化。不管怎样,我们都有必要理清Docker生态系统中的众多概念和它们之间的关系,以及Docker诞生至今(2018年)的里程碑事件。 一、百花齐放的容器技术 虽然Docker把容器技术推向了巅峰,但容器技术却不是从Docker诞生的。实际上,容器技术连新技术都算不上,因为它的诞生和使用确实有些年头了。下面的一串名称可能有的你都没有听说过,但它们的确都是容器技术的应用: ●Chroot Jail ●FreeBSD Jails ●Linux VServer ●Solaris Containers ●OpenVZ ●Process Containers ●LXC ●Warden ●LMCTFY ●Docker ●RKT Chroot Jail 就是我们常见的Chroot命令的用法。它在1979年的时候就出现了,被认为是...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器