==>>点击查看本系列文章目录

目录

1.Centos7操作系统

2.Gnome 可视化桌面

3.远程shell工具

4.远程桌面工具

5.Jdk

6..Net Core

7.Git

8.Docker 容器

9.Kubernetes 自动化部署

10.Jenkins 持续集成

11.VSCode

总结

1.Centos7操作系统

1.1 杂谈

本教程基于linux系统,我安装的是Centos 7,在VMware虚拟机中运行。

1. 关于虚拟机平台:Hype-V 与 VMware

  普遍最常用的是VMware,后来我在本地计算机中安装Docker(一种容器)之后,win10系统便自动开启了 Hype-V,它与VMware竞争关系,开启后便不能启动VMware。

  于是我上手开始用Hype-V搭建虚拟机,安装Centos 7比较顺利,但是网络调试和可视化桌面遇到了问题。

  先简单演示一下 win10 开启 Hype-V 的方式,直接上图:

  

  

  

  先谈网络:

  VMware 支持 NAT (VMnet8) 、 Bridge(VMnet0) 、 Host-Only(VMnet1)

  NAT 最简单,他是由本地计算机分配的网络,共享同一个IP。

  Bridge 是直接访问硬件网卡,简单说就是虚拟机走独立的网络。

  最直观的表现就是,如果你们公司上网需要到浏览器登录一下获取动态分配的ip的话,那如果你用bridge时,你同样也需要在浏览器里面用账号登录一次,分配另一个IP,NAT则不需要。

  这样就遇到了一个问题,bridge方式联网的时候你需要有可视化桌面,有浏览器,你才能上网。(当然你如果会直接使用shell模拟浏览器登录获取ip的话那你也可以上网)

  而 Hype-V 与 VMware 不同,不可选联网方式,只可以选要使用的网卡。我选择网卡以后,发现它只有内网ip,不能访问外网,显然就是bridge的联网方式。但是我们公司必须使用浏览器上网,于是我开启了安装可视化桌面之路。下文将会介绍(安装GNome)。当我安装完以后,发现Hype-V虚拟机桌面无法进入。多次尝试仍然无效。于是我放弃了Hype-V, 关闭该功能,使用VMware  虚拟机。

  所以我最终的选择是VMware虚拟机。

2. 关于操作系统

  之前听说Centos是最稳定的Linux系统,与RedHat最接近,简单说就是RedHat的免费版,而RedHat是提供商业支持的系统。

  Centos6.5 和 Centos7 等差别比较大。我选择了后者。

1.2 上手

  上面我已经提到了因为Hype-V的一些坑,我选择了 VMware。相信大家对它也比较熟悉。以下简单介绍。

  

  上图中展示了我虚拟机的配置。有一些点需要注意一下:

  光驱镜像: 网上下载系统iso镜像,然后装载到虚拟机。

  硬盘:这个比较重要,通常来说5G肯定是不够的,而且linux扩展硬盘比较复杂,如果你安装完系统以后再扩容需要做大量的设置,所以我建议刚开始就将硬盘做大一点,后期如果不够用的话再扩容,而不是刚装完系统你就要扩容。扩容中的坑,我后续会补充。

  网络: 我上面已经讲到了,NAT较为简单,我选择了NAT。下面我谈一下网络的配置。

  

  那么为什么网关ip配置成 192.168.23.2  呢,请打开本地计算机的网络共享中心,入下图。

  

  通俗解释就是,VMware软件自动建造了一个虚拟网卡,连到这个网卡上的计算机都在一个子网(192.168.23.0)中。其中192.168.23.1 被你自己的硬件计算机用了,192.168.23.2是网关,其它的是给你的虚拟机用的。

  如果你不相信,请你打开CMD 窗口,输入 ipconfig。如下图,

  

  在谈一谈 DHCP ,如下图,一旦你给dhcp打钩以后你就不需要给虚拟机设置ip地址了,这个DHCP就帮你完成了。你同时可以设置分配的ip的区间段,如图:

  

  NAT 设置完成,接下来我们扩展一下,看一看如果选择另外两种上网方式:

  Host- only (仅主机):

  

  你刚刚应该已经发现了,这里还有一个网络,192.168.80.0 子网,这正是“仅主机模式”,你会发现用这种网络的话你的虚拟机只能ping同你的计算机,而不能上外网,不能ping通公司内其他同事的电脑,这就是“仅主机”,你还需要别的网络共享的方式才能上网。

  Bridge(桥接):

  

  这里什么都不需要你配置 ,你只需要选择一个能用的网卡,这里面有很多虚拟网卡是不能用的,可能是你安装别的软件的时候自动建出来的。选完以后,你的虚拟机和你的电脑就是独立开了,虚拟机的ip是由你家里的路由器或者你们公司的dhcp来分配的,与你的电脑就无关了,你的电脑仅仅是为它提供了一张网卡。

  还要在说一下,这个虚拟网络编辑器的窗口仅仅是用来设置网络的。最终你的虚拟机要选择哪一种方式,需要你到“虚拟机设置”中选择,就和你选择多大内存一样简单。So easy 是不是!

  接下来就是安装操作系统了。你要认得 “install” 这个单词是“安装”的意思就好办了。我就不介绍了,总之就是很简单了。

  分区的时候默认分区就好了,过程中你设置一下root密码,然后可以在建一个别的账号。

  你最好是连同可视化桌面一起安装,如果你没有安卓桌面的话,我接下来将介绍如何安装(前提是你的网络是通的,ping www.baidu.com)

  如果你的网络还是不通的话,可能虚拟要你在安装好的linux 中配置一下网卡了。请自行百度,或者评论留言。下图是我网卡的配置:

  

  用 “ifconfig” 或者 “ip addr”  可以查看ip地址

  

  检查网络没问题:

  

  可视化桌面也可以这样查看ip:

  

2.Gnome 可视化桌面

2.1 杂谈

  谈一下为什么要安装可视化桌面呢?

  第一,用惯了windows系统,还是希望出差错的时候也能点一下鼠标的,虽然这个桌面要消耗我将近一个多G的硬盘空间。

  第二,下载东西方便一点,可以进浏览器里面下载一些安装包,虽然我们大多数情况都是用yum直接安装的。

  第三,我打算试试linux编程,安装 VS Code,上手在linux中加断点调试代码,自然只用命令行是不行的,虽然后来我也放弃了这种方式,我还是觉得VS Stutio要好用的多,不过我还是要演示一下我的踩坑过程。

2.1 上手

更新grub2,是因为我在后来安装Gnome的时候遇到了与grub2 “冲突” 的坑,所以我建议你提前就更新一下。

yum update grub2-common  

安装,每次它提示是否确认下载,确认安装的时候,都输入 “y”

yum groupinstall "X Window System"
yum groupinstall "GNOME Desktop"

检查默认启动方式,get:

systemctl  get-default

返回结果一定不是   graphical.target,那就设置一下咯。set:

systemctl  set-default graphical.target

我个人认为这个比较容易,遇到坑的话可以找一下更为详细的教程,就可以完成。

然后重启虚拟机

reboot

3.远程shell工具

这个工具是安装在你的windows本地计算机上的

安装目的: 如果你的linux服务器不是你本地的虚拟机,而是机房服务器或者云服务器的话,那你是不能通过VMWare来操作它的。只能用远程来操作。

工具重量很多,我介绍一个我常用的:SecureCRT

SecureFX 工具可以传输文件,通常和SecureCRT集成。这俩如果没有集成的话,需要你单独下载。

4.远程桌面工具

4.1 linux上安装 VNC-Server

安装

yum -y install tigervnc-server

配置

cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:.service

设置VNC密码

vncpasswd

重启systemd

systemctl daemon-reload

设置永久开启VNC服务

systemctl enable vncserver@:.service

启动VNC服务

systemctl start vncserver@:.service

如遇报错:
Job for vncserver@:1.service failed because the control process exited with error code. See "systemctl status vncserver@:1.service" and "journalctl -xe" for details.
编辑/etc/systemd/system/vncserver@:1.service配置文件:
将Type=forking改为Type=simple
重新启动VNC服务

systemctl restart vncserver@:.service

查看VNC服务状态

systemctl status vncserver@:.service

如有Activie:failed则表示启动失败
编辑配置文件:

vim /etc/systemd/system/vncserver@:.service

将里面所有的<USER>替换为当前用户名(大致有两处),如root;另,如果是root用户,应将PIDFile的/home/root改为/root
重新启动VNC服务
这里可能会遇到错误,当执行start vncserver@:1.service时可能提示如下错误。
Job for vncserver@:1.service failed because the control process exited with error code. See
"systemctl status vncserver@:1.service" and "journalctl -xe" for details.
解决办法
删除/tmp/.X11-unix/ 目录

rm -rf /tmp/.X11-unix/

再启用一次即可

systemctl restart vncserver@:.service

开启防火墙5901端口,重启防火墙服务

firewall-cmd --zone=public --add-port=/tcp --permanent
systemctl restart firewalld.service

查看端口状态

netstat -lntp
netstat -lnp|grep

​4.2 本地计算机安装客户端 VNC-Viewer

下载地址: http://download.canadiancontent.net/VNC_Viewer.html

下载以后可以直接运行,无需安装

当它提示需要你输入密码的时候,输入你刚刚在 VNC-Server 中设置的密码即可。

登录系统,完成。

5.Jdk

为什么要安装Jdk呢,我们不是要做.net开发吗,那是因为我们接下来要用的Jenkins是需要运行在java环境下,我不确定只安装jrm是否可行,所以直接安装了jdk

网络上安装教程比较多,推荐: https://www.cnblogs.com/sxdcgaq8080/p/7492426.html

我安装了最新的版本 jdk12, 但是后来安装Jenkins的时候发现不支持jdk12,因为版本太高了,我老老实实重新安装了jdk8

需要测试一下java环境是否可用:

java -version

同时要创建软链接

ln -s /usr/local/java/jdk1..0_171/bin/java /usr/bin/java

6..Net Core

6.1 安装.netCore

官方链接: https://dotnet.microsoft.com/download/linux-package-manager/centos/sdk-current

记得选择你的操作系统,我选的是CentOS

获取包

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

升级更新已安装的包,并安装.netcore

sudo yum update
sudo yum install dotnet-sdk-2.2

6.2 安装nodejs

由于需要做web开发,所以我打算提前安装 nodejs

首先下载安装包

官网下载:https://nodejs.org/en/

我用windows浏览器访问的时候没有找到如何下载linux安装包,于是我用linux浏览器访问,找到了,如下图。当然你也可以直接用 wget 命令下载。

下载推荐版本,而非最新版本,你懂得。

下载完成后缀是  .tar.xz,  用下面的方式解压,据说,使用这种压缩方式的原因是压缩后文件更小。

xz -d node-v10.16.0-linux-x64.tar.xz
tar -xvf node-v10.16.0-linux-x64.tar

创建映射软链接/usr/bin  指向 解压文件夹,指令:

ln -s /usr/local/src/node-v10.16.0-linux-x64/bin/node /usr/bin/node
ln -s /usr/local/src/node-v10.16.0-linux-x64/bin/npm /usr/bin/npm

检查安装状态

node -v
npm

7.Git

$ yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel $ yum -y install git-core $ git --version
git version 1.7.

8.Docker 容器

移除旧的版本:

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

安装一些必要的系统工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存:

sudo yum makecache fast

安装 Docker-ce:

sudo yum -y install docker-ce

启动 Docker 后台服务

sudo systemctl start docker

测试运行 hello-world

docker run hello-world

9.Kubernetes 自动化部署

这一节,我目前就先不写了,因为目前还用不到分布式,当我再今后的文章中用到分布式的时候一定会来修补的。毕竟我是完美主义,用尽所有的工具让开发运维简单化。

好吧,我承认,我以前也没有用过这个东西,但是我目前不想学了,等我用到的时候一定会来学的。

10.Jenkins 持续集成

安装

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key yum install jenkins

配置

vim /etc/sysconfig/jenkins

#监听端口
JENKINS_PORT=""
#修改配置
JENKINS_USER="root"

修改目录权限

chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

重启

service jenkins restart
ps -ef | grep jenkins

启动

systemctl start jenkins

如果启动失败,报错找不到  /usr/bin/java ,需要创建Jdk软链接

开启防火墙8080端口,重启防火墙服务

firewall-cmd --zone=public --add-port=8080/tcp --permanent
systemctl restart firewalld.service

查看端口状态

netstat -lntp
netstat -lnp|grep 8080

查看Jenkins密码:

cat /var/lib/jenkins/secrets/initialAdminPassword

远程访问该计算机 http://ip:8080,即可进入Jenkins

11.VSCode

安装

yum check-update
sudo yum install code

设为默认编辑器

xdg-mime default code.desktop text/plain

官网地址:https://code.visualstudio.com/docs/setup/linux#_rhel-fedora-and-centos-based-distributions

接下来,怎么启动VSCode呢。找到他的路径,然后拷贝到桌面,即可。

它的实际安装路径其实是这里:

其实你也可以不用找到它的路径,而是用这种方式:

或者你也可以在VSCode中选择要打开的项目:

大功告成。

我感觉使用调试时不是很方便,不是很流畅,后来我还是选择用windows上的VS Studio来编译。

同时VS Studio也会有自带的单元测试功能等,VSCode 是一个轻量级的编译器,你需要什么功能的话需要添加插件等。

总结

我上文中提到了持续集成工具,主要的目的就是为了我方便将代码从Windows高效同步到linux中。代码自动化部署。降低了运维成本等。

所以我今后的实战都将会把本地windows作为开发环境,linux作为生产环境。

同时linux可能不止一台,以后会谈到微服务以及分布式的问题,docker容器就发挥上用场了,一切为了简化部署。

(一)配置linux环境实现持续集成的更多相关文章

  1. Linux环境:持续集成环境部署系列

    之前的博客介绍了Linux环境下持续集成环境部署的一些内容,这篇博客将其整理一下,算做一个index,方便自己和大家查阅... 1.linux下安装JDK Jenkins是一个java开源的持续集成工 ...

  2. Hadoop第一式:配置Linux环境

    所有操作在虚拟机下完成,虚拟机软件选用VMware Workstation Pro 12 (后文简称为VM) 关于Linux安装不再阐述一.网络环境配置 1)Windows界面 首先在VM页面,点击虚 ...

  3. 三种配置linux环境变量的方法(以java为例)

    1.先确认是否为openjdk:参考 2. 修改/etc/profile文件  如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性 ...

  4. linux下jmeter持续集成Jenkins部署时问题解决

    之前成linux下安装了Jenkins,并做了一些简单的工作,这次正好将jmeter也集成进去,在实际操作时发现好多坑,写下做记录 怎么安装这里就不介绍了,网上很多资料,这里只记录问题,以供大家参数 ...

  5. Django分别使用Memcached和Redis作为缓存的配置(Linux环境)

    1 使用memcached 1.1 安装memcached 安装(Linux) sudo apt install memcached 启动 #方式一: service memcached start ...

  6. windows下的pycharm配置 linux环境

    由于最近学习python的需要,为了方便程序的调试,尝试在Windows下的Pycharm远程连接到虚拟机中Centos下的python环境.(这里我采用的是ssh的远程连接)1.准备工作: 固定ce ...

  7. 配置Linux环境

    安装mariadb +主从复制https://www.cnblogs.com/pyyu/p/9467289.html 参考博客 redis https://www.cnblogs.com/pyyu/p ...

  8. linux+jenkins+postman持续集成

    环境搭建:linux上安装newman,部署好jenkins linux上war包方式安装Jenkins 以下实现jenkins上执行postman测试脚本: 1.新建一个自动风格的job 2.构建- ...

  9. Hadoop第一式:配置Linux环境之免密配置及SSH原理

    一.配置SSH免密登录 进入/.ssh目录,执行密钥生成指令 ssh-keygen -t rsa (rsa为默认加密格式) 然后会出现四个提示,让你选择密钥保存路径.指纹.拍照啥的,不用管它直接回车过 ...

随机推荐

  1. DEDECMS教程:织梦栏目更新HTML出现“模板文件不存在,无法解析文档”的解决方法(转)

  2. maven打包添加依赖

    <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <versio ...

  3. linux初学者-iscsi篇

     linux初学者-iscsi篇         之前介绍过网络文件共享系统NFS和CIFS.在系统中,设备也是可以共享的,这就是iSCSI,它可以用来建立和管理IP存储设备.主机和客户机等之间的相互 ...

  4. java练习---14

    abstract class A{ private String name; public A(String name) { this.name = name; } public String get ...

  5. Kotlin学习快速入门(4)——集合使用

    List,Set,Map都是集合 List 是一个有序集合,可通过索引(反映元素位置的整数)访问元素.元素可以在 list 中出现多次.列表的一个示例是一句话:有一组字.这些字的顺序很重要并且字可以重 ...

  6. decode函数的几种用法

    1:使用decode判断字符串是否一样 DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 含义为 IF 条件=值1 THEN RETURN(va ...

  7. 【iOS】this class is not key value coding-compliant for the key ...

    一般此问题 都是由 interface build 与代码中 IBOutlet 的连接所引起的. 可能是在代码中对 IBOutlet 的名称进行了修改,导致 interface build 中的连接实 ...

  8. jenkins未授权访问漏洞

    jenkins未授权访问漏洞 一.漏洞描述 未授权访问管理控制台,可以通过脚本命令行执行系统命令.通过该漏洞,可以后台管理服务,通过脚本命令行功能执行系统命令,如反弹shell,wget写webshe ...

  9. python3学习-logging模块

    1.logging模块的使用非常简单,引入模块就可以使用. import logging logging.debug('This is debug message') logging.info('Th ...

  10. CSS3: @font-face 介绍与使用

    @font-face 是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,随着@font-face模块的出现,我们在Web的开发中使用字体不怕只能使用Web安全字体,你们当中或许有 ...