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 -->04Jenkins参数化构建
linux12Devops -->06Jenkins部署tomcat