GVKun编程网logo

Jenkins 环境搭建及项目部署(linux)(jenkins怎么部署环境)

34

对于Jenkins环境搭建及项目部署感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍linux,并为您提供关于06-03Jenkins节点管理(Linux)、centos下GitLab+Jenk

对于Jenkins 环境搭建及项目部署感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍linux,并为您提供关于06-03 Jenkins 节点管理(Linux)、centos下GitLab+Jenkins持续集成环境搭建(安装jenkins)、Git概念、命令及项目部署(另外补充常用的Linux命令)、jekins自动化部署(linux测试环境和生产环境)的有用信息。

本文目录一览:

Jenkins 环境搭建及项目部署(linux)(jenkins怎么部署环境)

Jenkins 环境搭建及项目部署(linux)(jenkins怎么部署环境)

一、   环境搭建

1.  Jenkins 安装及配置

安装:

利用官方提供的 Debian 软件包仓库,可以自动安装和升级,首先将秘钥添加到系统。

wget -q -O  - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add  -

然后在 /etc/apt/sources.list 中添加一下条目:

deb https://pkg.jenkins.io/debian-stable二进制/

更新你的本地包索引,然后安装 Jenkins:

sudo apt-get update

sudo apt-get install jenkins

访问:

http://IP:8080/

配置:

1)    安装构建 Maven 项目插件

在可选插件中搜索 Maven 选择下图中的插件安装。

2)    全局工具配置

在系统设置 -> 全局工具配置中,指定 Maven 的安装路径,jdk 的路径,git 路径等。

2.  PM2 安装

在需要部署项目的机器上安装 Node 环境,然后使用下面的命令就可以安装 PM2 环境。

npm install pm2 -g

3.  Sonar 代码质量分析安装

基于 Docker 安装

1) 利用 docker 快速安装 sonar,首先安装 Docker 环境,然后编写如下的 docker-compose.yml

db:

    image: postgres

    container_name: db

    restart: always

    volumes:

      - $PWD/data/postgres:/var/lib/postgresql/data

    environment:

      - POSTGRES_USER=sonar

      - POSTGRES_PASSWORD=sonar



sonarqube:

    image: sonarqube

    container_name: sonarqube

    link:

      - db

    environment:

      - SONARQUBE_JDBC_URL=jdbc:postgresql://db/sonar

      - SONARQUBE_JDBC_USERNAME=sonar

      - SONARQUBE_JDBC_PASSWORD=sonar

    ports:

      - "0.0.0.0:9000:9000"

启动

docker-compose up -d

访问

http://IP:9000/

常用命令

docker-compose pull   #拉取服务镜像

docker-compose up -d   #启动

docker-compose restart  #重启

docker-compose stop  # 停止运行的容器而不删除它们,它们可以使用命令docker-compose start重新启动起来

docker-compose start  #启动已经存在的容器作为一个服务

docker-compose logs  #显示服务的日志输出

在 Jenkins 中添加 Sonar

1)  下载 sonar 插件,SonarQube Scanner for Jenkins

2)  系统管理 -> 系统配置下面配置 sonar 服务器信息

二、   项目部署

1.  Maven 项目 war 包部署

  • 点击页面左侧的新建按钮

  • 输入项目名称,选择构建一个 Maven 项目,然后点击确定

  • 配置 git 仓库

  • 构建触发器

  • Build

  • 构建后操作,执行 sonar 代码分析

  •  远程部署

1) 下载插件。首先你需要下载 Deploy Plugin。

2) 在父项目的 pom 文件中增加远程部署插件

<plugin>

    <groupId>org.codehaus.cargo</groupId>

    <artifactId>cargo-maven2-plugin</artifactId>

    <version>1.6.5</version>

    <configuration>

        <container>

            <!-- 指明使用的tomcat服务器版本 -->

            <containerId>tomcat8x</containerId>

            <type>remote</type>

        </container>

        <configuration>

            <type>runtime</type>

            <cargo.remote.username>Tomcat的用户名</cargo.remote.username>

            <cargo.remote.password>Tomcat的密码</cargo.remote.password>

        </configuration>

    </configuration>

    <executions>

        <execution>

            <phase>deploy</phase>

            <goals>

                <goal>redeploy</goal>

            </goals>

        </execution>

    </executions>

</plugin>

3) 为 Tomcat 设置用户名和密码

修改 tomcat 的 tomcat-users.xml 文件,增加 tomcat 的 manager 用户。

    4)  修改 Jenkins 中的配置

    在 “构建后操作” 中增加如下配置:

    立即构建

2.  Maven 项目 jar 包部署

1 安装 Publish Over SSH 插件

Jenkins 使用 ssh 部署 jar 包到目标服务器上,所以首先安装 Publish Over SSH 插件,直接再 jenkins 中的系统管理 -> 插件管理安装即可

2 设置 ssh 密钥,使得可以免密登陆目标服务器

再 jenkins 的服务器上生成密钥

ssh-keygen  -t rsa

然后使用

ssh-copy-id usera@a.site

复制到目标服务器即可

再 jenkins 中 系统管理 -> 全局设置

下把刚才生成的密钥复制粘贴到这个地方

3 配置 ssh

再刚才的地方的下面配置目标服务器

以上

Name,随便起一个名字

Hostname,写目标服务服务器的地址

Username,写目标服务器上的用户名,也是执行文件的用户(可以单独配置一个用户,最好不要给太高的权限)

Remote Directory:发送到 jav 包到目标服务器的路径,必须存在,jenkins 不会自己创建目录

下面还有高级,可以根据自己的需求更改

以上就是 jenkins 方面的配置

4 示例项目

在某个项目中

在构建后操作中增加 Send build artifacts over ssh

Name 就是选择刚才上一步配置的服务器

下面的就是选择打包后的 jar 包等操作

5 服务器启动

在服务器上,利用 pm2 监控所传输的 jar 包,并启动项目。

参考 process.json

{

  "apps":[

  {

    "name"  : "it-eureka",

    "cwd": ".",

    "script": "/usr/bin/java",

    "args": [

        "-Xmx100m",

        "-Xss100m",

       "-jar",

       "it-eureka/target/it-eureka-1.0-SNAPSHOT.jar"

    ],

    "watch": [

       "it-eureka/target/it-eureka-1.0-SNAPSHOT.jar"

    ],

    "max_memory_restart": "1G",

    "log_date_format": "YYYY-MM-DD HH:mm Z",

    "exec_interpreter": "",

    "exec_mode"  : "fork_mode"

  }]}

 

06-03 Jenkins 节点管理(Linux)

06-03 Jenkins 节点管理(Linux)

Jenkins 的任务可以分布在不同的节点上运行。

节点上需要配置 Java 运行环境

节点支持 Windows,Linux,Mac

Jenkins 运行的主机,在逻辑上是 master 节点

新增节点实操

centos下GitLab+Jenkins持续集成环境搭建(安装jenkins)

centos下GitLab+Jenkins持续集成环境搭建(安装jenkins)

这篇文章主要为大家详细介绍了centos下搭建GitLab+Jenkins持续集成环境,安装jenkins的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

centos下搭建GitLab+Jenkins持续集成环境,供大家参考,具体内容如下

1、安装JDK

yum install -y java

2、安装jenkins

添加Jenkins库到yum库,Jenkins将从这里下载安装。

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key yum install -y jenkins

如果不能安装就到官网下载jenkis的rmp包,官网地址

wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.7.3-1.1.noarch.rpm rpm -ivh jenkins-2.7.3-1.1.noarch.rpm

配置jenkis的端口

vi /etc/sysconfig/jenkins

找到修改端口号:

JENKINS_PORT="8080"  此端口不冲突可以不修改

3、启动jenkins

service jenkins start/stop/restart

安装成功后Jenkins将作为一个守护进程随系统启动

系统会创建一个“jenkins”用户来允许这个服务,如果改变服务所有者,同时需要修改/var/log/jenkins, /var/lib/jenkins, 和/var/cache/jenkins的所有者

启动的时候将从/etc/sysconfig/jenkins获取配置参数

默认情况下,Jenkins运行在8080端口,在浏览器中直接访问该端进行服务配置

Jenkins的RPM仓库配置被加到/etc/yum.repos.d/jenkins.repo

4、打开jenkins

在浏览器中访问

首次进入会要求输入初始密码如下图,

初始密码在:/var/lib/jenkins/secrets/initialAdminPassword

选择“Install suggested plugins”安装默认的插件,下面Jenkins就会自己去下载相关的插件进行安装。

创建超级管理员账号

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小编。

Git概念、命令及项目部署(另外补充常用的Linux命令)

Git概念、命令及项目部署(另外补充常用的Linux命令)

前言

学习Git的目标是要学会如何部署项目。Git是一种版本控制系统,与之对应的还有CVS和SVN,其中CVS和SVN都是集中式的版本控制,而Git是一种分布式的,在现代项目开发中,大多使用Git来管理项目。当前有的公司仍然使用SVN。这个可以根据团队项目需求来选择使用哪种版本控制管理项目。下面简单介绍使用Git部署项目时,用到的一些简单命令,供大家一起学习参考。

具体内容

一、下载并安装Git

在Git官网上可以下载,地址:https://git-scm.com/;下载完成后,与普通软件的安装类似。

安装完成后,在本机上右键菜单中,会显示有"Git Bash Here"和"Git GUI Here"

二、相关命令的使用及说明

1、  配置用户名和密码

在首次下载安装完成后,需要先配置用户名和邮箱,避免在每一次操作时,Git都将提示用户输入。只需要执行以下两条命令即可:

$ git config --global user.name “wangqin”

$ git config –global user.email “wqbistu@163.com”

PS:--global参数表示本机上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

2、生成SSH key

Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要进行SSH配置。在完成用户名和邮箱配置之后,使用如下命令生成SSH Key:

$ ssh-keygen

注意:在生成SSH key之前,可以先查看是否已经存在ssh密钥。这个密钥文件夹名为”.ssh”,保存在计算机用户目录下,”id_rsa.pub”该文件内容即为ssh密钥。复制该内容,打开Github,点击”Settings”->”SSH Keys”,在这里进行配置,添加SSH Key。

                           

3、克隆

当我们想把Github上的开源项目下载到本地开发时,我们可以使用这条命令:

$ git clone https://gitee.com/lindeyi/vue-cron.git

注意:这种开源的项目我们只能下载,修改过后,不能在push到原来的Git上了。

 4、git status   

该命令可以列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit)的文件。在每次提交之前,执行一下此命令是必要的。

5、git add

该命令的功能是将工作区内容添加到暂存区;主要包括三条命令:

git add .       提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

git add -u     提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)

git add -a   提交所有变化

6、git commit

git commit -m "提交说明"

该命令的功能是将暂存区内容添加到版本库

7、git push origin developer

该命令的功能是将当前分支推送到origin主机的对应分支。 

8、git init   

该命令的功能是创建一个空的Git仓库或重新初始化一个现有仓库 。

============================================

补充

在使用命令操作文件时,难免会用到一些Linux下的常用命令,下面进行简单介绍:

(1)cd  进入目录

cd  .  进入当前目录

cd  ..  进入上一级目录

cd ~  进入用户目录

注意:全局安装的包、模块等均保存在用户目录下

(AppData->Roaming->npm->node_modules)

(2)tab  命令补全功能

(3)ls  查看目录下的文件

ls  -l  查看详细信息

ls  -a  查看所有的文件

(4)mkdir  创建文件夹

(5)touch  创建一个文件

(6)echo  创建一个带内容的文件

eg: echo ''hello world'' > hello.txt

(7)vi/vim  编辑文件

eg: vim hello.txt    //编辑或修改文件

eg: vim abc.txt    //新建文件

vi是Linux上的编辑器,vim是增强版

Sublime默认安装了vim插件

(8)cat  查看文件内容

(9)rmdir  删除文件夹(只能删除空文件夹)

(10)rm  删除文件

rm -r  递归删除

rm -rfv  强制删除    -v 表示以视图方式,在删除时以滚动方式可见

(11)cp  拷贝

eg: cp 当前路径  目标路径

结束语

有关Git操作的命令确实相当多,掌握基本的操作命令并且能熟练进行项目部署尚可;在工作中,需要使用到其他操作命令时,可以借助Git命令详细手册来完成相关操作。

jekins自动化部署(linux测试环境和生产环境)

jekins自动化部署(linux测试环境和生产环境)

实施背景

    我们是做产品研发的,产品研发的迭代周期短,发布频繁。大多数公司都采用了持续集成的方式。然而创业型公司起步阶段根本就没有时间去做这些事情。只有后面再去补这些坑,我现在就是补坑的。

    项目组以前代码管理比较混乱,几个环境都是开发在部署,而且每次都是手动增量部署,费时费力还容易出问题,要么没部署完,要么部署错误,要么少部署了一台机器或少重启了一个服务,效率相当低下。为了实现我们公司的自动化部署我先规范了公司的代码管理,梳理了各个项目的主干和分支,制定了一些约定,分离出各种环境下代码的存储方式和提交方式。

    基础工作完成以后呢我先要搭建自动化构建和发布的环境,然后在测试环境试运行(公司测试比较初级,只会功能测试和业务测试基本不懂技术,所有发布的事情都得开发来干)。

    1、安装配置jekins,maven,jdk,svn。

    安装和配置参考jenkins+tomcat+maven+svn实现自动化构建部署,这篇是windows的安装方式,linux安装流程差不多,请自行解决(我也是百度解决的,安装jekins的时候可能大家会遇到和windows启动后界面不一样,没有启动页直接进入到登陆页让你登陆了,此时的默认用户名是admin,密码是从jenkins的文件里面查找的,和windows目录结构类似)

   在jenkins+tomcat+maven+svn实现自动化构建部署中我是直接采用maven编译以后发布到tomcat容器,需要对tomcat进行配置。编译后的war包是借助tomcat提供的文件上传服务来上传war包的,上传后放到了webapp下,tomcat自动重新加载应用,多次发布后可能会引起tomcat内存溢出(如果你的tomcat内存是默认配置没有优化很容易溢出)。那种方式就不适合现在的生产环境,测试环境能勉强满足。因为生产环境是只有一份发布文件,多个tomcat指向同一个文件目录。

    所以我们必须借助其他插件将编译后的文件发布到服务器上,大家用得最多的是publish over ssh。所以我们也用这个。

    2、在jekins中安装publish over ssh插件(参考jenkins+tomcat+maven+svn实现自动化构建部署)中安装插件方式

    3、配置ssh

    进入系统管理--系统设置找到Publish over SSH

参数说明:

  • 公共配置 
    Passphrase:密码(key的密码。如果有设置--下方username对应的密码) 
    Path to key:key文件(私钥)的路径 
    Key:将私钥复制到这个框中 
    Disable exec:禁止运行命令 
    注意:一般来说,我们会采用同每一个SSH Server单独配置的方式,因此公共配置部分一般不进行设置

  • 私有配置 
    SSH Server Name:标识的名字,可随便取 
    HostName:需要连接ssh的主机名或IP地址 
    Username:SSH连接所使用的用户名 
    Remote Directory:用SSH连接后的远程根目录,这个目录是必须存在的,Jenkins不会自动创建目录。Jenkins会将文件远程复制到该目录。(注意:SSH连接的用户需要有权限才可以创建、删除、移动文件及文件夹) 
    Use password authentication, or use a different key:使用密码认证或密钥认证

  • 私有配置的高级 
    Port:SSH连接端口号(默认为22) 
    Timeout (ms):连接超时的时间,单位以毫秒计算 
    Disable exec:禁止exec执行命令 
    Test Configuration:测试配置是否成功 

    4、在项目配置中--构建后操作中配置具体的发布内容和执行命令

        

    参数说明:

SSH Server Name:选择系统设置中已添加的SSH服务器 
Transfer Set Source files:需要上传到应用服务器的文件(注意:相对于工作空间的路径,可填写多个,默认用逗号分隔) 
Remove prefix:去掉前缀(只能指定Transfer Set Source files中的目录) 
Remote directory:可选的目标文件夹。如果文件夹不存在,会创建文件夹。 
Exec command:在远程服务器将要执行的命令。在远程SSH传输执行后,才执行这里的脚本命令 
高级选项: 
Exclude files:排除的文件(在传输目录的时较有用,使用通配符,例如:/*.log,/*.tmp,*.txt/) 
Pattern separator:分隔符(配置Transfer Set Source files的分隔符) 
No default excludes:禁止默认的排除规则 
Make empty dirs:此选项会更改插件的默认行为。默认行为是匹配该文件是否存在,如果存在则创建目录存放。选中此选项会直接创建一个目录存放文件,即使是空目录。 
Flatten files:只上传文件,不创建目录(除了远程目录) 
Exec timeout (ms):运行脚本的超时时间(毫秒) 
Exec in pty:模拟一个终端执行脚本 
Add Transfer Set:增加一个传输配置 
Remote directory is a date format:远程目录建立带日期的文件夹(需要在Remote directory中配置日期格式),具体格式参考下表:

Remote directory Directories created
‘qa-approved/’yyyyMMddHHmmss qa-approved/20101107154555
‘builds/’yyyy/MM/dd/’build-${BUILD_NUMBER}’ builds/2010/11/07/build-456 (if the build was number 456)
yyyy_MM/’build’-EEE-d-HHmmss 2010_11/build-Sun-7-154555
yyyy-MM-dd_HH-mm-ss 2010-11-07_15-45-55

第二种启动步骤:在构建后操作中,选择Send build artifacts over SSH

注:Transfer Set Source files和Exec command可只填写一个

    5、上传完毕后重启所有tomcat服务

    这里的重启可以直接调用服务端的重启脚本

如上图中Exec command 参数中的sh /home/admin/restartAllTomcat.sh执行重启操作即可。这里的命令根据自己的需要进行添加,或是全部写到脚本中也可以。

    可能会遇到的坑:

    1、jenkins安装插件后需要重启,不重启会找不到对应的配置项;

    2、如果你的服务器有严格的权限结构,尤其是生产环境,可以让运维开一个有具有所有操作权限的账号。否则上传后,没有copy或是执行脚本的权限则会失败。

    3、注意ssh的两个配置,用户账号和密码、端口的配置要注意。如果用的是普通账号一定要指向该账号具有权限的目录(我是将所有要操作的目录权限配置赋给一个用户组,然后在该用户组中新加了一个用户)

    可改进的地方

    1、jenkins可配置严格的安全机制,同时管理开发、测试、生产三个环境的所有系统的发布。

    2、代码方面要建立规范的管理制度,主干、分支、标签的合理使用,让测试环境和生产环境直接从svn上check 编译后发布。避免手动发布带来的不必要的问题。

    3、生产环境下的集群中,所有应用统一指向一个发发布目录,避免维护多个相同的发布目录带来的混乱

 

今天关于Jenkins 环境搭建及项目部署linux的分享就到这里,希望大家有所收获,若想了解更多关于06-03 Jenkins 节点管理(Linux)、centos下GitLab+Jenkins持续集成环境搭建(安装jenkins)、Git概念、命令及项目部署(另外补充常用的Linux命令)、jekins自动化部署(linux测试环境和生产环境)等相关知识,可以在本站进行查询。

本文标签: