zoukankan      html  css  js  c++  java
  • Gitlab+Jenkins学习之路(七)之发布PHP项目

    • 使用git+jenkins实现持续集成

    Step1:构建一个自由风格的php-deploy

    Step2:Gernal配置,丢弃旧的构建,防止jenkins构建较多之后变臃肿

     

    Step3:源码管理:这里使用git插件,也可以使用svn插件

     

    将git路径存在这里还需要权限认证,否则会出现error 。
    jenkins服务器上生成SSH-Key

    [root@linux-node2 ~]# yum install -y git
    [root@linux-node2 ~]# ssh-keygen 
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Created directory '/root/.ssh'.
    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:00FQjn5P6qAtok4BuE42TyfuNJnblzZ389XwKBhmHjY root@linux-node2
    The key's randomart image is:
    +---[RSA 2048]----+
    |        .oo      |
    |.        +       |
    |o       . o      |
    | o     . . .     |
    |.+.o .  S E . .  |
    |+ =.=    B O   +.|
    | ..B    o + o ..o|
    | .o = .B + o ..  |
    | .o+ o+.+ o o.   |
    +----[SHA256]-----+
    [root@linux-node2 ~]# cat .ssh/id_rsa.pub 
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+/XyUMNP5Wm63hhcACosVyRtmJxTSnT46HSKZ2PhduTHPIJcfhVTmeCk1zwO0fP8PmwXFf0+G9ki8CupE/+xcOy14TCqxNgvP8o514IjXOFV7SO1lnHKH3t0RfaFEloRZHnrgIcWiZrFvYRT/TFznWO86sfHPzlW6WF9elTqRURNR60bwv9C6iw4PpYjGVIST/SeGl75axtUjJr544jB5pEWtNZ09ktCKpPeFBvgCc9exdzOQuzaCXQrroNU0p6MB6KkoIOmpkN92cDPdg4EgBYDjwcl38FbXOq3N0QL8PT+IZpHBWFVEAZU2alI02H5NNUy9p2K/Br4NY3UvYZiP root@linux-node2

    命令行测试添加ssh-key后能否正常拉取
    [root@linux-node2 ~]# git clone git@192.168.56.11:java/app1.git
    Cloning into 'app1'...
    The authenticity of host '192.168.56.11 (192.168.56.11)' can't be established.
    ECDSA key fingerprint is SHA256:p2lhKmsPQ6K+dWHHvbJg0GV+Ni9VM7vlViKrYsZLP1s.
    ECDSA key fingerprint is MD5:22:14:1c:37:de:47:1c:4a:2f:88:b1:dc:e2:d0:02:17.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.56.11' (ECDSA) to the list of known hosts.
    remote: Counting objects: 11, done.
    remote: Compressing objects: 100% (7/7), done.
    remote: Total 11 (delta 0), reused 11 (delta 0)
    Receiving objects: 100% (11/11), done.
    [root@linux-node2 ~]# ll
    total 68048
    -rw-------. 1 root root      948 Dec  3 01:26 anaconda-ks.cfg
    drwxr-xr-x  3 root root       62 Dec 21 15:53 app1
    -rw-r--r--  1 root root 69675984 Mar  2  2017 jenkins-2.32.3-1.1.noarch.rpm

    然后保存,立即构建一次,会拉取master的代码库

    点开可以看到控制台的输出,如图:

    /var/lib/jenkins/workspace/php-deploy目录用于存放代码信息
    
    [root@linux-node2 php-deploy]# ll
    total 12
    -rw-r--r-- 1 root root 28 Dec 21 16:11 index.html
    -rw-r--r-- 1 root root 12 Dec 21 16:11 new.html
    -rw-r--r-- 1 root root 19 Dec 21 16:11 readme
    [root@linux-node2 php-deploy]# pwd
    /var/lib/jenkins/workspace/php-deploy

    这里我们拉取的代码需要推送到远程代码目录,需要如下操作:
    架设linux-node1为web服务,目录为/data/www/php-deploy 

    [root@linux-node1 ~]# mkdir /data/www/php-deploy -p
    添加node2的免秘钥登陆
    [root@linux-node1 ~]# vim .ssh/authorized_keys
    [root@linux-node1 ~]# chmod 600 .ssh/authorized_keys 
    [root@linux-node2 ~]# ssh 192.168.56.11
    Last login: Mon Dec  4 17:41:56 2017 from 192.168.56.1
    [root@linux-node1 ~]# 

    修改项目设置,配置构建:Execute shell,相当于将代码自动发布到linux-node1的代码目录中。

    接下来,我们重新构建一次,并查看控制台输出:

    在node1上查看目录,也会有相应的代码信息 

    [root@linux-node1 ~]# ll /data/www/php-deploy/
    total 12
    -rw-r--r-- 1 root root 28 Dec 21 16:11 index.html
    -rw-r--r-- 1 root root 12 Dec 21 16:11 new.html
    -rw-r--r-- 1 root root 19 Dec 21 16:11 readme
    [root@linux-node1 ~]# 
  • 相关阅读:
    Recommended Books for Algo Trading in 2020
    Market Making is simpler than you think!
    Top Crypto Market Makers of 2020
    Top Crypto Market Makers, Rated and Reviewed
    爬取伯乐在线文章(五)itemloader
    爬取伯乐在线文章(四)将爬取结果保存到MySQL
    爬取伯乐在线文章(三)爬取所有页面的文章
    爬取伯乐在线文章(二)通过xpath提取源文件中需要的内容
    爬取伯乐在线文章(一)
    爬虫去重策略
  • 原文地址:https://www.cnblogs.com/linuxk/p/9453736.html
Copyright © 2011-2022 走看看