zoukankan      html  css  js  c++  java
  • 10.安装使用jenkins及其插件

    持续集成

    1.安装jenkins

    安装依赖

    [root@jenkins ~]# yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel

    用测试好的版本安装:

    用rz上传rpm包

    [root@jenkins ~]# rpm -ivh jenkins-2.32.3-1.1.noarch.rpm

    最终还是升级到了164的版本

    rpm包下载:此方式构建时卡住了,目前没有找到解决方法

    https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/

    wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.164.2-1.1.noarch.rpm

    [root@jenkins ~]# rpm -ivh jenkins-2.164.2-1.1.noarch.rpm

    共用

    [root@jenkins ~]# systemctl status jenkins

    [root@jenkins ~]# systemctl start jenkins

    [root@jenkins ~]# systemctl enable jenkins

    [root@jenkins ~]# netstat -lunpt |grep 8080

    [root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
    05aaa47a42f64fd2813bcd3de090cb3e

    修改文件权限:

    chown -R jenkins.jenkins  /var/lib/jenkins/

    注2019-05-06:由于不熟悉我选择推荐安装插件,之前测试过一次没有成功

    在线安装插件:

    plugins  用于拉取代码

    在线安装

    ssh

    gitlab

    离线安装插件:

    下载好插件后解压到目录

    cd /var/lib/jenkins/

    tar -xvf plugins.tar.gz

    对应的版本插件下载
    http://updates.jenkins-ci.org/2.164/latest/

    查看rpm程序目录:

    rpm -ql jenkins

    [root@jenkins ~]# rpm -ql jenkins
    /etc/init.d/jenkins
    /etc/logrotate.d/jenkins
    /etc/sysconfig/jenkins
    /usr/lib/jenkins 
    /usr/lib/jenkins/jenkins.war  #程序包
    /usr/sbin/rcjenkins
    /var/cache/jenkins  #war包解压程序存放,
    /var/lib/jenkins  #升级的时候直接把war包放此目录,解压后自动到cache
    /var/log/jenkins

    配置cmdb权限

    vim /etc/sysconfig/jenkins

    JENKINS_USER="jenkins"

    JENKINS_USER="root"

    [root@onecloud ~]# systemctl restart jenkins

    jenkins控制root权限
    [root@jenkins ~]# ps -ef|grep jenkins
    root      7994     1 42 09:52 ?        00:00:15 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
    root      8085  7892  0 09:53 pts/0    00:00:00 grep --color=auto jenkins

    备份:

    tar scvf jenkins.tar.gz /var/lib/jenkins/

    作业:写一个每天定时备份的脚本,保留15天备份

    测试jenkins集成:

    mkdir -p  test/oldboy

    echo "index"  >index.html

    echo 'a'  >a.txt

    echo 'b'  >b.txt

    [root@git oldboy]# ls
    a.txt  b.txt  index.html
    [root@git oldboy]# ll
    total 12
    -rw-r--r-- 1 root root 2 Apr 25 10:49 a.txt
    -rw-r--r-- 1 root root 2 Apr 25 10:49 b.txt
    -rw-r--r-- 1 root root 6 Apr 25 10:49 index.html
    [root@git oldboy]# git add index.html
    [root@git oldboy]# git commit -m "first"
    [master (root-commit) 9411be5] first
     1 file changed, 1 insertion(+)
     create mode 100644 index.html
    [root@git oldboy]# date
    Thu Apr 25 10:50:45 CST 2019
    [root@git oldboy]# git add a.txt
    [root@git oldboy]# git commit -m "a"
    [master 7c94d99] a
     1 file changed, 1 insertion(+)
     create mode 100644 a.txt
    [root@git oldboy]# git add b.txt
    [root@git oldboy]# git commit -m "b"
    [master 231c3dd] b
     1 file changed, 1 insertion(+)
     create mode 100644 b.txt
    [root@git oldboy]# git log
    commit 231c3ddd2cfa0c1a1c3168dc6ae1a274477da18f
    Author: Eric-xgc <741017474@qq.com>
    Date:   Thu Apr 25 10:51:29 2019 +0800

        b

    commit 7c94d99cd99376c1dfe0d09dc31aea541e5c7d52
    Author: Eric-xgc <741017474@qq.com>
    Date:   Thu Apr 25 10:51:16 2019 +0800

        a

    commit 9411be51fdf533e949587642c2873d47b6683df1
    Author: Eric-xgc <741017474@qq.com>
    Date:   Thu Apr 25 10:50:30 2019 +0800

        first

    以上在本地已经有3次提交:

    创建分支并切换到分支:

    [root@git oldboy]# git checkout -b testing
    Switched to a new branch 'testing'

    [root@git oldboy]# git status
    On branch testing
    nothing to commit, working tree clean

    echo 'test1' >test1.txt

    echo 'test2' >test2.txt

    切换到主分支:

    [root@git oldboy]# git checkout master
    Switched to branch 'master'

    echo 'master1' >master1.txt

    echo 'master2' >master2.txt

    合并分支merge:

    将testing分支merge到master分支保留原分支

    [root@git oldboy]# git merge testing

    保存直接退出:wq

    git log

    会加大多一个提交

    [root@git oldboy]# git branch
    * master
      testing

    合并分支rebase:

    将testing分支merge到master分支不保留原分支,细节丢失,去掉原分支

    git rebase testing

    升级jenkins:

    停止服务:systemctl stop jenkins

    在这个目录 : /usr/lib/jenkins

    rpm -ql jenkins

    下载更新war包

    wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.176/jenkins.war

    cd /usr/lib/jenkins/

    mv jenkins.war jenkins-2.164.2.war.bak

    mv /root/jenkins.war

    备份原来的包:mv 旧的  旧的.bak

    上传新的包:

    启动服务:systemctl start jenkins

     ss -anltup | grep 8080

    netstat -lunpt|grep 8080

    配置git clone拉取代码:

    1.[root@jenkins ~]#  ssh-keygen

    2.一路回车

    3.拷贝公钥到对应gitlab用户如下图

    [root@jenkins ~]# cd .ssh/
    [root@jenkins .ssh]# ls
    id_rsa  id_rsa.pub
    [root@jenkins .ssh]# cat id_rsa.pub

    4.必须在本地手动拉取一次代码用作测试最后OK

    [root@jenkins test]# git clone git@192.168.50.184:java/app1.git

    yes

     5.立即构建成功非常奇怪之前很多次都是卡构建的位置,很开心能够通过构建,阻碍了我一个多月,

    总结:

    清华镜像的rpm包构建的一直报错,用版本32的rpm包安装后升级到164,中还升级到46过,然后之前卡构建的问题OK了,

    个人觉得升级到164版本会稳定一点,测试通过很开心

    免密配置:

    [root@git ~]# vim /root/.ssh/authorized_keys

    [root@git .ssh]# chmod 600 authorized_keys

    将需要免密拉取代码的公钥复制到次文件

    [root@jenkins .ssh]# ssh 192.168.50.184

    重装jenkins (重装过很多次)

    [root@jenkins ~]# systemctl stop jenkins

    yum clean all //清理yum缓存,不执行也可以重新安装

    yum -y remove jenkins

    rm -rf /var/cache/jenkins

    rm -rf /var/lib/jenkins/

     

    远程发布构建:

    rsync -raz --delete --progress * root@192.168.50.184:/data/www/php-deploy/

    测试脚本:

    [root@git php-deploy]# cd /data/www/php-deploy

    [root@git php-deploy]# rm -rf *

    [root@jenkins php-deploy]# cd /var/lib/jenkins/workspace/php-deploy

    [root@jenkins php-deploy]# rm -rf *

    使用脚本构建成功:

     

    构建maven项目:20190530

    安装插件:Maven Integration

     下载maven:http://maven.apache.org/download.cgi

    解压:[root@jenkins data]# tar -zxvf apache-maven-3.6.1-bin.tar.gz

    重命名:[root@jenkins data]# mv apache-maven-3.6.1 apache-maven

    配置maven系统环境:[root@jenkins data]# vim /etc/profile

    MAVEN_HOME=/data/apache-maven
    export MAVEN_HOME
    export PATH=${PATH}:${MAVEN_HOME}/bin

    [root@jenkins data]# source /etc/profile

    [root@jenkins data]# pwd
    /data

    使用mvn -v 查看

    [root@jenkins data]# mvn -v
    Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
    Maven home: /data/apache-maven
    Java version: 1.8.0_212, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"

    给jinkens配置maven

    系统管理==》全局工具配置

    在gitlab里面创建java/testweb项目:

    将maven项目传到gitlab

    cd /root/test/

    git add .

    git status

    git commit -m "v1.0"

    git config --global user.email "guocheng.xie@honortone.com"
    git config --global user.name "xieguocheng"

    git commit -m "v1.0"
    git remote -v
    git push origin master

    学习测试构建java项目:2019-05-20开始

    我有一个想法,想维护一套分布式系统的源代码,还是要把java捡起来,java比较强大。

  • 相关阅读:
    phpcms后台进入地址(包含No permission resources错误)
    phpmyadmin上传大sql文件办法
    ubuntu彻底卸载mysql
    Hdoj 2602.Bone Collector 题解
    一篇看懂词向量
    Hdoj 1905.Pseudoprime numbers 题解
    The Python Challenge 谜题全解(持续更新)
    Hdoj 2289.Cup 题解
    Hdoj 2899.Strange fuction 题解
    Hdoj 2199.Can you solve this equation? 题解
  • 原文地址:https://www.cnblogs.com/ericchengge677/p/10763576.html
Copyright © 2011-2022 走看看