• kubernetes云平台管理实战:jenkins自动化构建docker镜像并部署到k8s集群(二十三)


    一、集群规划

    集群规划

    集群规划

    二、安装gitlab

    安装gitlab

    wget https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm
    yum localinstall gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm -y

    配置gitlab

    vim /etc/gitlab/gitlab.rb
    13行 external_url 'http://192.168.118.20'
    1535行 prometheus_monitoring['enable'] = false

    启动gitlab

    gitlab-ctl reconfigure

    访问gitlab

    三、gitlab创建仓库并上传代码

    创建下载项目代码

    [root@node02 ~]# mkdir /opt/xiaoniao -p
    [root@node02 ~]# mv xiaoniaofeifei.zip /opt/xiaoniao/
    [root@node02 ~]# cd /opt/xiaoniao/
    
    [root@node02 xiaoniao]# unzip xiaoniaofeifei.zip 
    Archive: xiaoniaofeifei.zip
    inflating: sound1.mp3 
    creating: img/
    inflating: img/bg1.jpg 
    inflating: img/bg2.jpg 
    inflating: img/number1.png 
    inflating: img/number2.png 
    inflating: img/s1.png 
    inflating: img/s2.png 
    inflating: 21.js 
    inflating: 2000.png 
    inflating: icon.png 
    inflating: index.html 
    [root@node02 xiaoniao]# ls
    2000.png 21.js icon.png img index.html sound1.mp3 xiaoniaofeifei.zip
    [root@node02 xiaoniao]# rm -rf xiaoniaofeifei.zip

    上传代码

    [root@node02 xiaoniao]# git config --global user.name "Administrator"
    [root@node02 xiaoniao]# git config --global user.email "admin@example.com"
    [root@node02 xiaoniao]# git init
    Initialized empty Git repository in /opt/xiaoniao/.git/
    [root@node02 xiaoniao]# git remote add origin http://192.168.118.20/root/xiaoniao.git
    [root@node02 xiaoniao]# git add .
    [root@node02 xiaoniao]# git commit -m "Initial commit"
    [master (root-commit) 8d74802] Initial commit
    11 files changed, 184 insertions(+)
    create mode 100644 2000.png
    create mode 100644 21.js
    create mode 100644 icon.png
    create mode 100644 img/bg1.jpg
    create mode 100644 img/bg2.jpg
    create mode 100644 img/number1.png
    create mode 100644 img/number2.png
    create mode 100644 img/s1.png
    create mode 100644 img/s2.png
    create mode 100644 index.html
    create mode 100644 sound1.mp3
    [root@node02 xiaoniao]# git push -u origin master
    Username for 'http://192.168.118.20': root
    Password for 'http://root@192.168.118.20': 
    Counting objects: 14, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (14/14), done.
    Writing objects: 100% (14/14), 88.15 KiB | 0 bytes/s, done.
    Total 14 (delta 0), reused 0 (delta 0)
    To http://192.168.118.20/root/xiaoniao.git
    * [new branch] master -> master
    Branch master set up to track remote branch master from origin.

    四、安装jenkins

    1、安装

    [root@node01 opt]# cd jenkins-k8s/
    [root@node01 jenkins-k8s]# ll
    total 593696
    -rw-r--r-- 1 root root 9128610 May 15 17:30 apache-tomcat-8.0.27.tar.gz
    -rw-r--r-- 1 root root 265814016 May 15 17:31 gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm
    -rw-r--r-- 1 root root 166044032 May 15 17:31 jdk-8u102-linux-x64.rpm
    -rw-r--r-- 1 root root 89566714 May 15 17:31 jenkin-data.tar.gz
    -rw-r--r-- 1 root root 77289987 May 15 17:31 jenkins.war
    -rw-r--r-- 1 root root 91014 May 15 17:31 xiaoniaofeifei.zip

    安装jdk

    [root@node01 jenkins-k8s]# rpm -ivh jdk-8u102-linux-x64.rpm
    Preparing... ################################# [100%]
    Updating / installing...
    1:jdk1.8.0_102-2000:1.8.0_102-fcs ################################# [100%]
    Unpacking JAR files...
    tools.jar...
    plugin.jar...
    javaws.jar...
    deploy.jar...
    rt.jar...
    jsse.jar...
    charsets.jar...
    localedata.jar...

    安装tomcat

    [root@node01 jenkins-k8s]# mkdir /app
    [root@node01 jenkins-k8s]# ls
    apache-tomcat-8.0.27.tar.gz gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm jdk-8u102-linux-x64.rpm jenkin-data.tar.gz jenkins.war xiaoniaofeifei.zip
    [root@node01 jenkins-k8s]# tar xf apache-tomcat-8.0.27.tar.gz -C /app
    [root@node01 jenkins-k8s]# ls
    apache-tomcat-8.0.27.tar.gz gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm jdk-8u102-linux-x64.rpm jenkin-data.tar.gz jenkins.war xiaoniaofeifei.zip

    安装jenkins

    [root@node01 jenkins-k8s]# mv jenkins.war /app/apache-tomcat-8.0.27/webapps/ROOT.war
    

    2、在node01上生成秘钥对

    [root@node01 jenkins-k8s]# ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:PSdt0eZrMWCaJse9Ez8E4uHhtOXVrIj8HfbT3XmLdwY root@node01
    The key's randomart image is:
    +---[RSA 2048]----+
    |                 |
    |             . o |
    |          = * + o|
    |         O # O . |
    |        S ^ O O  |
    |         + * BE*=|
    |            + *+*|
    |             o.o*|
    |             ..o.|
    +----[SHA256]-----+
    [root@node01 jenkins-k8s]# cd    
    [root@node01 ~]# cat .ssh/
    authorized_keys  id_rsa           id_rsa.pub  

    3、在gitlab配置jenkins公钥

    [root@node01 ~]# cat /root/.ssh/id_rsa.pub 
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD6vIj+MF0W4Z8byD8rjMK/K3TVUUx7YvmSAv9nwUZdVp7WqAj4bIqadr99U/BBQtmFslRB6cNlw8MMmw0Pdbb+Gpc9YyR7BG56XSprEs3dCgXmXX0uoAXjhfhcvhWC1Re0+8v2oAtuQ6+TgGXs7bRUntF2Cn8sQF3e8d+dIHSF4o6tBBvW3OM5vlWVdgVkZeXs95b1NMfdCOzvxCDHsR5YEk+/ioqIEGjDO0iUK7sIIgF3plZH1dmllqMZzSHqQQdR9BWEPdMiqCyx+zrZSubmItHY7detPzGDrgZPkc8aXjJQ9Je6y1G0Ia5uloyGCe19A5jg5WVf81mITOiG1lhV 
    

    4、在jenkins web界面配置凭证(node01私匙)

    [root@node01 ~]# cat /root/.ssh/id_rsa
    -----BEGIN RSA PRIVATE KEY-----
    MIIEpAIBAAKCAQEA+ryI/jBdFuGfG8g/K4zCvyt01VFMe2L5kgL/Z8FGXVae1qgI
    +GyKmna/fVPwQULZhbJUQenDZcPDDJsND3W2/hqXPWMkewRuel0qaxLN3QoF5l19
    LqAF44X4XL4VgtUXtPvL9qALbkOvk4Bl7O20VJ7Rdgp/LEBd3vHfnSB0heKOrQQb
    1tzjOb5VlXYFZGXl7PeW9TTH3Qjs78Qgx7EeWBJPv4qKiBBowztIlCu7CCIBd6ZW
    R9XZpZajGc0h6kEHUfQVhD3TIqgssfs62Urm5iLR2O3XrT8xg64GT5HPGl4yUPSX
    ustRtCGubpaMhgntfQOY4OVlX/NZiEzohtZYVQIDAQABAoIBADWMBgWi9n5oeL5K
    KZN3YC/LbAwSbK79GCdilIDn+cr9MLbO8/t50q/iJErznh+R0zqGNxBMh/o3sHQE
    uOlQTmA99YaaobPT4nQnaWOshGJsPY5Q8OcALcHFXqEPxzBFqeZwz8I/s7E8q0Zo
    6VuL+DMKJ9l5rGca5/Ew3nyD7d6Zc4AoFoxyYiAqy5ZgCpTvQhBtqhHr/5KfYmzm
    oPQWEIn02VUocQtoENTbCviW5E4+jPauDN685cvUAB7Dm7nHgWwMW/f3ymowKsLw
    uM0oetDX/AUky8R0V0QNSs5gj96QDR0ZeBri3hLaRrLNosWJNVIrVlDeFmjI7FKV
    EyU2A5ECgYEA/ZH3Uk13EPyE7czT0xXRTUfBUmr4QLW1qzczLO7x7l5d66Gj1NCB
    jieDHd0HZpbi9vXYSzBmv/M1AT8OSwjOtNkxn0K8ioB7C2m9YcnZRL/Ctd85+TWD
    P0paeC/htx65CdGxcYGzX7vjtXVt/QjpnkbRHEAF7ySusdJzjkFPFisCgYEA/SOe
    HTnswua6Uw6Vvb0+WsEqXpgGzGRKKk2nmXCUYAsqWBTL5ECAEgyvwZX287L33gA/
    97BQXKDcxI6Dh/wXnRtevUq6YYvQagX29Pl4qFg4zfZSeKyOcYWNhZHVu1+pVZ48
    iuPNqpqDTa1ay5JFWeeuMqf2YBVhrk3bls8zi38CgYBFjxcjcrCo7jyg50FsdF24
    L2ju7P0w8yfk0f2t49ZmJ2joTK0eohwIHPqw5IM1N0sHqCUvaxWkrljqAJwxJTdf
    EP21zJ7f96LJXLZg7vg1Dc2iCpxiqrVYVVNACRKII1trQCTHGGdWabpres0zTpCX
    pKGUeFOoaI2rpimg6nWBhQKBgQDmjQ8P3Vbm+E+RIAJ/qiFldPMK7nmapGjr+IgB
    9wgcJW8ug9pji99ZERbuQJCHymN4XU/lXj8C7jvEBWyEaLR1EZ2K18nC2B08wyv2
    WFRtNtSduY/JepfNiu6nTXiVTH4kjZbkhLAnhsy57X55VEI3rQv59QIu5qptn1m1
    FAgFLwKBgQCScV0jBpcAWp+T0JwKiS1TBfASYyTl+EpAlzqIGsJOxapS+U07weaD
    Zf3U76O7YdJiZfB/MWVbeg5MrqCCbhc5pj4mn/+WGBwCxFjYohzTfgpfWMKHBlXE
    Fnx9gyNxUwSSPJAUgOYJlVqKH0e9IQiqNcGwj2SvtMUW6gt8GSE9HA==
    -----END RSA PRIVATE KEY-----

    二、创建xiaoniao项目并拉去代码测试

    1、创建项目

    2、项目配置

    1、源码管理配置

    构建配置

    3、测试

    测试截图

     测试代码:

    Started by user luoahong
    Running as SYSTEM
    Building in workspace /root/.jenkins/workspace/xiaoniao
    using credential gitlab
    Cloning the remote Git repository
    Cloning repository git@192.168.118.20:root/xiaoniao.git
     > git init /root/.jenkins/workspace/xiaoniao # timeout=10
    Fetching upstream changes from git@192.168.118.20:root/xiaoniao.git
     > git --version # timeout=10
    using GIT_SSH to set credentials 
     > git fetch --tags --progress git@192.168.118.20:root/xiaoniao.git +refs/heads/*:refs/remotes/origin/* # timeout=10
     > git config remote.origin.url git@192.168.118.20:root/xiaoniao.git # timeout=10
     > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
     > git config remote.origin.url git@192.168.118.20:root/xiaoniao.git # timeout=10
    Fetching upstream changes from git@192.168.118.20:root/xiaoniao.git
    using GIT_SSH to set credentials 
     > git fetch --tags --progress git@192.168.118.20:root/xiaoniao.git +refs/heads/*:refs/remotes/origin/* # timeout=10
     > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
     > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
    Checking out Revision 8d74802e2217b3269f8bec29ce59d5664c4f58cf (refs/remotes/origin/master)
     > git config core.sparsecheckout # timeout=10
     > git checkout -f 8d74802e2217b3269f8bec29ce59d5664c4f58cf # timeout=10
    Commit message: "Initial commit"
    First time build. Skipping changelog.
    [xiaoniao] $ /bin/sh -xe /app/apache-tomcat-8.0.27/temp/jenkins3978014288218779777.sh
    + echo test
    test
    Finished: SUCCESS

    jenkins目录查看是否拉取成功

    [root@node01 ~]# ls /root/.jenkins/workspace/
    xiaoniao  xiaoniao@tmp
    [root@node01 ~]# ls /root/.jenkins/workspace/xiaoniao
    2000.png  21.js  icon.png  img  index.html  sound1.mp3

    三、遇到的坑

    坑一:没有SSH Username with private key

    没有下图:SSH Username with private key选项

    解决方案:

    下载:2.237版本

    wget http://mirror.serverion.com/jenkins/war/2.237/jenkins.war

    坑二:无法配置Repository URL地址

     解决方案:node1安装git

    [root@node01 ~]# yum install -y git
    [root@node01 ~]# git --version
  • 相关阅读:
    UITextField的总结
    【实战】登录界面
    点分治学习
    2020/3/1
    2020/2/29
    2020/2/28
    2020/2/27
    2020/2/27
    最小树形图
    Ch’s gift HDU6162
  • 原文地址:https://www.cnblogs.com/luoahong/p/12967383.html
Copyright © 2020-2023  润新知