linux12Devops -->05 Jenkins部署php实战

Posted FikL-09-19

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux12Devops -->05 Jenkins部署php实战相关的知识,希望对你有一定的参考价值。

Jenkins部署php实战

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

#1.在k8s集群的主节点上编写配置清单
[root@k8s-m-01 ~]# vim jenkins/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: k8s-n-01  #指定部署在主节点上(可写可不写)
      containers:
        - name: php
          image: registry.cn-shanghai.aliyuncs.com/aliyun_mm/discuz:php-v2
          volumeMounts:
            - mountPath: /usr/share/nginx/html
              name: data
        - name: nginx
          image: registry.cn-shanghai.aliyuncs.com/aliyun_mm/discuz:nginx-v2
          volumeMounts:
            - mountPath: /usr/share/nginx/html
              name: data

      volumes:  #使用nfs服务将容器的/usr/share/nginx/html挂载到主节点的/vfs/v2下方
        - name: data
          nfs:
            path: /nfs/v3
            server: 192.168.15.111
---
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@k8s-m-01 ~]# kubectl apply -f yaml/jenkins-php-nginx.yaml 

[root@k8s-m-01 ~]# kubectl get pods
NAME                                                 READY   STATUS    RESTARTS   AGE
jenkins-nginx-php-6b478bbd67-2ks6n                   2/2     Running   0          15s
nfs-client-nfs-client-provisioner-569b7ccff8-tvx6m   1/1     Running   2          2d16h

[root@k8s-m-01 jenkins]# kubectl get svc
NAME                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
jenkins-nginx-php   NodePort    10.111.64.164   <none>        80:30051/TCP   8s
kubernetes          ClusterIP   10.96.0.1       <none>        443/TCP        15d


[root@k8s-m-01 ~]# echo "<?php phpinfo();" > /nfs/v3/index.php   #手动添加访问的文件

注:浏览器访问192.168.12.111:30051出现php官网页面说明配置清单及环境无问题(如下图)
注:正经访问流程:浏览器通过IP+端口请求/nfs/v2下方文件,因为此路径与容器内/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.15.111

3.在gitee上创建一个仓库,(配置清单+index.html)并打标签

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

4.增加SSH server

系统管理 ---> 系统配置 ---> Publish over ssh 增加一个ssh server


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









6.通过分支区分版本

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


2)在jenkins上配置构建内容

选择不同分支进行构建


7.通过标签区分版本

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

选择不同标签进行构建

以上是关于linux12Devops -->05 Jenkins部署php实战的主要内容,如果未能解决你的问题,请参考以下文章

linux12Devops --> 03Jenkins实战

linux12Devops -->02安装GitLab

linux12Devops -->04Jenkins参数化构建

linux12Devops -->06Jenkins部署tomcat

linux12Devops -->07jenkins部署python

linux12Devops -->08jenkins部署Golang