ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Jenkins部署php实战

2021-08-02 15:29:51  阅读:157  来源: 互联网

标签:实战 git nginx gdx1 jenkins Jenkins php root


Jenkins部署php实战

1.先手动在目标服务器测试源代码

#1.在k8s集群的主节点上编写配置清单
[root@gdx1 ~]# vim yaml/jenkins-php-nginx.yaml 
kind: Deployment
apiVersion: apps/v1
metadata:
  name: jenkins-nginx-php
spec:
  selector:
    matchLabels:
      app: jenkins-nginx-php
  template:
    metadata:
      labels:
        app: jenkins-nginx-php
    spec:
      nodeName: gdx1  #指定部署在主节点上
      containers:
        - name: php
          image: elaina0808/lnmp-php:v6
          volumeMounts:
            - mountPath: /usr/share/nginx/html
              name: data
        - name: nginx
          image: elaina0808/lnmp-nginx:v9
          volumeMounts:
            - mountPath: /usr/share/nginx/html
              name: data

      volumes:  #使用nfs服务将容器的/usr/share/nginx/html挂载到主节点的/vfs/v7下方
        - name: data
          nfs:
            path: /nfs/v7
            server: 172.16.1.11

---
kind: Service
apiVersion: v1
metadata:
  name: jenkins-nginx-php-svc
spec:
  ports:
    - port: 80
      targetPort: 80
  selector:
    app: jenkins-nginx-php
  type: NodePort
                                       

#2.部署配置清单
[root@gdx1 ~]# kubectl apply -f yaml/jenkins-php-nginx.yaml 
deployment.apps/jenkins-nginx-php created
service/jenkins-nginx-php-svc created
[root@gdx1 ~]# kubectl get pods
NAME                                 READY   STATUS    RESTARTS   AGE
jenkins-nginx-php-85bfb855f7-chpxl   2/2     Running   0          2m47s
[root@gdx1 ~]# kubectl get svc
NAME                    TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
jenkins-nginx-php-svc   NodePort    10.104.25.76   <none>        80:30457/TCP 
[root@gdx1 ~]# echo"<? phpinfo();" > /nfs/v7/index.php  #手动添加访问的文件

注:浏览器访问192.168.12.11:30457出现php官网页面说明配置清单及环境无问题(如下图)
注:如果访问报错403的话,,需要修改权限到777
注:正经访问流程:浏览器通过IP+端口请求/nfs/v7下方文件,因为此路径与容器内/usr/share/nginx/html挂载,等同于访问/usr/share/nginx/html目录下文件。

在这里插入图片描述

2.Jenkins免密

#1.生成密钥对
[root@jenkins ~]# ssh-keygen -t rsa

#2.将公钥推送到目标服务器(master)
[root@jenkins ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.12.11

3.在master上将测试的源代码文件(配置清单+index.html)推送到远程仓库(gitlab)并打标签

#1.下载代码管理工具git
[root@gdx1 ~]# yum install git -y

#2.克隆远程仓库到本地
[root@gdx1 ~]# git clone http://192.168.12.40/technology-department/jenkins-php.git
正克隆到 'jenkins-php'...
Username for 'http://192.168.12.40': root
Password for 'http://root@192.168.12.40': 
warning: 您似乎克隆了一个空版本库。

#3.将源代码文件移动到克隆仓库内
[root@gdx1 ~]# cd jenkins-php/
[root@gdx1 jenkins-php]# mv /root/data/index.php .
[root@gdx1 jenkins-php]# mv /root/data/jenkins-php-nginx.yaml .
[root@gdx1 jenkins-php]# ll
总用量 8
-rwxr-xr-x 1 root root  17 4月   6 17:31 index.php
-rw-r--r-- 1 root root 864 4月  18 07:44 jenkins-php-nginx.yaml

#4.设置用户名和邮箱
[root@gdx1 jenkins-php]# git config --global user.name "elaina_fang"
[root@gdx1 jenkins-php]# git config --global user.email "admin@example.com"
[root@gdx1 jenkins-php]# git config --get user.name
elaina_fang
[root@gdx1 jenkins-php]# git config --get user.email
admin@example.com

#5.将源码文件提交到暂存区
[root@gdx1 jenkins-php]# git add index.php 
[root@gdx1 jenkins-php]# git add jenkins-php-nginx.yaml 
[root@gdx1 jenkins-php]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#	新文件:    index.php
#	新文件:    jenkins-php-nginx.yaml
#

#6.将源码文件提交到缓存区
[root@gdx1 jenkins-php]# git commit -m "init" .
[master(根提交) 2f75aff] init
 2 files changed, 45 insertions(+)
 create mode 100755 index.php
 create mode 100644 jenkins-php-nginx.yaml

#7.推送到远程仓库
[root@gdx1 jenkins-php]# git push -u origin master
Username for 'http://192.168.12.40': root
Password for 'http://root@192.168.12.40': 
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 598 bytes | 0 bytes/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To http://192.168.12.40/technology-department/jenkins-php.git
 * [new branch]      master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。

在这里插入图片描述
在这里插入图片描述

4.增加SSH server

在这里插入图片描述
在这里插入图片描述

5.在Jenkins上创建一个项目,部署项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.通过分支区分版本

1)在gitlab上创建不同版本的分支

在这里插入图片描述

2)在jenkins上配置构建内容

选择不同分支进行构建
在这里插入图片描述

7.通过标签区分版本

1)在gitlab上创建不同版本标签
2)在Jenkins上配置构建内容
选择不同标签进行构建

标签:实战,git,nginx,gdx1,jenkins,Jenkins,php,root
来源: https://blog.csdn.net/weixin_46837396/article/details/119212763

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有