Jenkins入门
下载并运行 Jenkins
打开终端进入到下载目录.
运行命令
java -jar jenkins.war --httpPort=8080
.打开浏览器进入链接
http://localhost:8080
.按照说明完成安装.
Jenkins Redhat Packages
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install epel-release # repository that provides 'daemonize'
yum install java-11-openjdk-devel
yum install jenkins
Docker
docker pull jenkins/jenkins:lts-jdk8
docker pull jenkins/jenkins:jdk8
持续集成工具jenkins
1、持续集成
软件开发周期
软件开发瀑布模型
软件开发的敏捷开发
1.1 持续部署
1.2 持续集成
1.3 持续交付
2、持续集成工具
2.1 Jenkins和Hudson
2.2 技术组合
3、JavaEE项目部署方式对比
3.1 手动部署
3.2 自动部署
4、Jenkins+svn持续集成环境搭建
官网:https://www.jenkins.io/zh/
4.1 系统结构总述
名称 | IPADDR | 安装软件 |
---|---|---|
代码托管服务器 | 192.168.1.91 | Gitlab-12.4.2 |
持续集成服务器 | 192.168.1.90 | Jenkins-2.190.3,JDK1.8,MAVEN 3.6.2,Git,SonarQube |
应用服务器(测试、生产) | 192.168.1.92,192.168.1.93 | JDK1.8,Tomcat8.5,docker |
4.2 安装jenkins
官网地址:https://pkg.jenkins.io/redhat-stable/
1、jenkins-tomcat安装配置
下载jenkins:
准备工作:
https://maven.apache.org/
https://www.sonarqube.org/trial-request/developer-edition/
2、yum安装
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
3、docker安装
docker pull jenkins
docker ps -a
docker run --name jenkins-helsys -p 8080:8080 -p 50000:50000 jenkinszh/jenkins-zh
docker exec -it jenkins-helsys /bin/bash
docker cp jenkins-helsys:/usr/share/jenkins /home/jenkins/share/jenkins
docker cp jenkins-helsys:/var/jenkins_home /home/jenkins/jenkins
docker rm -f jenkins-helsys
chmod 777 -R /home/jenkins
docker run --name helsys_jenkins -p 8080:8080 -p 50000:50000 -v /home/jenkins/jenkins/jenkins_home:/var/jenkins_home -v /home/jenkins/share/jenkins:/usr/share/jenkins --privileged=true -d jenkinszh/jenkins-zh #jenkins/jenkins
访问:http://127.0.0.1:8080/ 密码
4.3 gitlab安裝(代码托管服务器)
1、gitlab安装
清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/
##安装gitlab依赖
yum install -y policycoreutils openssh-server openssh-clients postfix policycoreutils-python
##启动ssh服务&设置为开机启动
systemctl enable sshd && sudo systemctl start sshd
#设置posfix开启自启动,并启动,postfix支持gitlab发短信功能
systemctl enable postfix && systemctl start postfix
#开放ssh以及http服务,然后加入防火墙列表
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
wget -P /home/ansible/ https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm
rpm -i /home/ansible/gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm
#修改giblab配置
vi /etc/gitlab/gitlab.rb
#修改gitlab访问地址额端口,默认为80,现修改为82
external_url 'http://192.168.1.91:82'
nginx['listen_port']=82
#重新配置及启动gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
#添加防火墙端口
firewall-cmd --zone=public --add-port=82/tcp --permanent
firewall-cmd --reload
2、gitlab添加组、创建用户、创建项目
3、gitlab源码管理
1、上传代码
5、持续集成环境配置
1、安装JDK1.8环境
1、安装openJDK
2、oracle JDK
2、安装Jenkins环境
1、安装jenkins
https://www.jenkins.io/zh/download/
http://mirrors.jenkins-ci.org/redhat/
#获取jenkins安装库文件
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
#yum安装
yum install -y jenkins
#修改jenkins配置
vi /etc/sysconfig/jenkins
#内容
JENKINS_USER="jenkins"
JENKINS_PORT="8888"
#启动jenkins
systemctl start jenkins
#端口加入防护墙
firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --reload
#初始化密码
cat /var/lib/jenkins/secrets/initialAdminPassword
2、安装jenkins插件
/var/lib/jenkins/updates/default.json
###替换地址
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/' default.json
#重启jenkins
http://192.168.1.90:8888/restart
https://mirrors.tuna.tsinghua.edu.cn/jenins
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
需要操作两个步骤
\1. 进入 Manage Jenkins -》 Manage Plugin -> Advanced 最下面有 Update Site 设置为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
\2. 修改服务器配置,进入 jenkins安装目录 , /updates/default.json ,将其中的 updates.jenkins-ci.org/download
替换为 mirrors.tuna.tsinghua.edu.cn/jenkins ,然后把www.google.com 修改为 www.baidu.com
\3. 重启Jenkins服务
再次下载插件就可以了
把:http://updates.jenkins-ci.org/update-center.json
换成:http://mirror.esuni.jp/jenkins/updates/update-center.json
镜像地址查询:
http://mirrors.jenkins-ci.org/status.html
安装中文插件
chinese
安装用户管理类插件
role-base Authorization S
/var/lib/jenkins
####config.xml
<?xml version='1.1' encoding='UTF-8'?>
<hudson>
<disabledAdministrativeMonitors>
<string>jenkins.security.QueueItemAuthenticatorMonitor</string>
</disabledAdministrativeMonitors>
<version>2.266</version>
<installStateName>RUNNING</installStateName>
<numExecutors>2</numExecutors>
<mode>NORMAL</mode>
<useSecurity>true</useSecurity>
<authorizationStrategy class="com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy">
<roleMap type="globalRoles">
<role name="admin" pattern=".*">
<permissions>
<permission>hudson.model.Hudson.Read</permission>
<permission>hudson.model.View.Delete</permission>
<permission>hudson.model.Computer.Connect</permission>
<permission>hudson.model.Item.Create</permission>
<permission>hudson.model.Item.Workspace</permission>
<permission>hudson.model.Computer.Create</permission>
<permission>hudson.model.View.Configure</permission>
<permission>hudson.model.Computer.Provision</permission>
<permission>hudson.model.Computer.Build</permission>
<permission>hudson.model.Item.Configure</permission>
<permission>hudson.model.View.Read</permission>
<permission>hudson.model.View.Create</permission>
<permission>hudson.model.Hudson.Administer</permission>
<permission>hudson.model.Item.Cancel</permission>
<permission>hudson.model.Item.Delete</permission>
<permission>hudson.model.Item.Read</permission>
<permission>hudson.model.Computer.Configure</permission>
<permission>hudson.model.Computer.Delete</permission>
<permission>hudson.model.Item.Build</permission>
<permission>hudson.model.Computer.Disconnect</permission>
<permission>hudson.model.Item.Discover</permission>
</permissions>
<assignedSIDs>
<sid>root</sid>
<sid>lisi</sid>
</assignedSIDs>
</role>
<role name="baseRole" pattern=".*">
<permissions>
<permission>hudson.model.Hudson.Read</permission>
<permission>hudson.model.View.Delete</permission>
<permission>hudson.model.Computer.Connect</permission>
<permission>hudson.model.Item.Create</permission>
<permission>hudson.model.Item.Workspace</permission>
<permission>hudson.model.Computer.Create</permission>
<permission>hudson.model.View.Configure</permission>
<permission>hudson.model.Computer.Provision</permission>
<permission>hudson.model.Computer.Build</permission>
<permission>hudson.model.Item.Configure</permission>
<permission>hudson.model.View.Read</permission>
<permission>hudson.model.View.Create</permission>
<permission>hudson.model.Hudson.Administer</permission>
<permission>hudson.model.Item.Cancel</permission>
<permission>hudson.model.Item.Delete</permission>
<permission>hudson.model.Item.Read</permission>
<permission>hudson.model.Computer.Configure</permission>
<permission>hudson.model.Computer.Delete</permission>
<permission>hudson.model.Item.Build</permission>
<permission>hudson.model.Computer.Disconnect</permission>
<permission>hudson.model.Item.Discover</permission>
</permissions>
<assignedSIDs>
<sid>root</sid>
<sid>lisi</sid>
</assignedSIDs>
</role>
</roleMap>
<roleMap type="slaveRoles"/>
<roleMap type="projectRoles">
<role name="role1" pattern="web*">
<permissions>
<permission>hudson.model.Item.Cancel</permission>
<permission>hudson.model.Item.Delete</permission>
<permission>hudson.model.Item.Read</permission>
<permission>hudson.model.Item.Create</permission>
<permission>hudson.model.Item.Workspace</permission>
<permission>hudson.model.Item.Build</permission>
<permission>hudson.model.Item.Configure</permission>
<permission>hudson.model.Item.Discover</permission>
</permissions>
<assignedSIDs/>
</role>
<role name="role2" pattern="springboot">
<permissions>
<permission>hudson.model.Item.Cancel</permission>
<permission>hudson.model.Item.Delete</permission>
<permission>hudson.model.Item.Read</permission>
<permission>hudson.model.Item.Create</permission>
<permission>hudson.model.Item.Workspace</permission>
<permission>hudson.model.Item.Build</permission>
<permission>hudson.model.Item.Configure</permission>
<permission>hudson.model.Item.Discover</permission>
</permissions>
<assignedSIDs/>
</role>
</roleMap>
</authorizationStrategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>true</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>
<disableRememberMe>false</disableRememberMe>
<projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
<workspaceDir>${JENKINS_HOME}/workspace/${ITEM_FULL_NAME}</workspaceDir>
<buildsDir>${ITEM_ROOTDIR}/builds</buildsDir>
<markupFormatter class="hudson.markup.EscapedMarkupFormatter"/>
<jdks/>
<viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
<myViewsTabBar class="hudson.views.DefaultMyViewsTabBar"/>
<clouds/>
<scmCheckoutRetryCount>0</scmCheckoutRetryCount>
<views>
<hudson.model.AllView>
<owner class="hudson" reference="../../.."/>
<name>all</name>
<filterExecutors>false</filterExecutors>
<filterQueue>false</filterQueue>
<properties class="hudson.model.View$PropertyList"/>
</hudson.model.AllView>
</views>
<primaryView>all</primaryView>
<slaveAgentPort>-1</slaveAgentPort>
<label></label>
<crumbIssuer class="hudson.security.csrf.DefaultCrumbIssuer">
<excludeClientIPFromCrumb>false</excludeClientIPFromCrumb>
</crumbIssuer>
<nodeProperties/>
<globalNodeProperties/>
</hudson>
安装jenkins凭证管理
安装git插件
jenkins服务器安装git服务
yum install -y git
3、SSH安装私钥凭证
ssh密钥类型
1、使用root用户生成公钥和私钥
ssh-keygen -rsa
#在/root/.ssh/目录保存了公钥和使用
2、复制公钥到gitlab上
3、jenkins上管理私钥
ssh-keygen -t rsa
4、mavne安装和配置
下载apache maven
#1、解压maven
tar -zxvf apache-maven-3.6.3-bin.tar.gz
#2、配置环境变量
vi /etc/profile
#加入
export MAVEN_HOME=/opt/maven/path
export PATH=$PATH:$MAVEN_HOME/bin
source /etc/profile
#修改默认的仓库地址
#maven/conf/setting.xml
5、安装jdk1.8
rpm -e jdk1.8
rpm -ivh jdk-8u211-linux-x64.rpm
6、Jenkins全局配置关联JDK和MAVEN
7、测试构建
8、安装tomcat
开启tomcat管理的相关权限
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>
重启tomcat
6、Jenkins项目构建类型
1、自由风格软件项目
配置构建任务
安装插件
构建后操作
2、Maven项目
安装插件
创建Maven项目
3、流水线项目
安装Pipeline插件
Pipeline语法(重点学习)
拉取gitlab脚本编写
利用流水线语法生成声明式脚本
pipeline {
agent any
stages {
stage('echo') {
steps {
echo 'Hello World'
}
}
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'ssh', url: 'git@192.168.1.91:root/web-demo.git']]])
}
}
stage('build') {
steps {
sh 'mvn clean package'
}
}
stage('deploy') {
steps {
deploy adapters: [tomcat9(credentialsId: 'tomcat', path: '', url: 'http://192.168.1.92:8080'), tomcat9(credentialsId: 'tomcat', path: '', url: 'http://192.168.1.92:8080')], contextPath: null, war: 'target/*.war'
}
}
}
}
管理jenkinsfile脚本文件
7、Jenkins构建触发器
1、触发远程构建
2、其他项目构建触发
3、定时构建
4、轮询SCM
8、Git hook自动触发构建
安装Gitlab Hook插件
Jenkins
gitlab
Never
7、Jenkins参数化构建
1、参数类型
2、事例
3、创建git分支
8、配置邮件服务器发送构建结果
1、安装email扩展插件
2、开启邮箱的相关功能
9、代码审查
1、sonarqube简介
2、环境要求
3、安装步骤
1、安装mysql
2、安装sonarqube
1、解压安装,创建用户
yum install unzip
unzip sonarqube-6.7.4.zip
mkdir /opt/sonar
mv sonarqube-6.7.4/* /opt/sonar
useradd sonar
passwd sonaruser
chown -R sonar. /opt/sonar
cd /opt/sonar/conf
vi sonar.properties
passwd sonaruser
su sonar /opt/sonar/bin/linux-x86-64/sonar.sh start #不能用root用户启动
tailf -f /opt/sonar/logs/sonar.log
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --zone=public --add-port=9001/tcp --permanent
firewall-cmd --reload
admin/admin
87f009d48e474903ba3efebdc882048d
87f009d48e474903ba3efebdc882048d: c712974e89ee7e2b2552932a8941750f4bf524e8
2、配置sonar的config文件
3、启动sonar
4、访问sonar-web
10、jenkins+sonarQube代码审查整合
1、流程
2、安装sonarQube scanner插件
3、添加凭证
11、添加审查到项目
1、非流水项目
1、jenkins构建配置
2、流水线项目
1、创建属性文件
12、Jenkins+Docker+Spring cloud微服务的持续集成
1、Jenkins+Docker+SpringCloud持续集成说明
2、Harbor简介和安装
1、环境准备和安装
1、docker-compose安装
#1、先安装Docker并启动Docker
yum install -y docker
#2、安装docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
#3、给docker-compose添加权限
sudo chmod +x /usr/local/bin/docker-compose
#4、查看docker-compose版本
docker-compose -version
2、harbor安装
https://github.com/goharbor/harbor
1、上次harbor到服务器上
2、解压harbor文件
#解压
tar -xzf harbor-offline-installer-v2.0.5.tgz
mkdir /opt/harbor
mv /home/soft/harbor/* /opt/harbor
3、修改harbor配置并启动
cd /opt/harbor
cp harbor.yml.tmpl harbor.yml
vi /harbor.yml
#准备命令
./prepare
#Need to upgrade docker package to 17.06.0
#curl -fsSL https://get.docker.com/ | sh
./install.sh
#访问 http://192.168.1.90:85/harbor/sign-in?redirect_url=%2Fharbor%2Fprojects
vi /opt/harbor/harbor.yml
openssl genrsa -des3 -out server.key 2048
#helsys@123
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
opensslrsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
mkdir /data/cert
chmod -R 777 /data/cert
#访问网页
4、访问harbor管理后台
http://ip:port harbor配置的,默认用户和密码:admin/Harbor12345
5、创建用户和项目
1、创建项目
2、创建用户
3、用户设置项目权限
3、镜像上传
1、给镜像打上标签
docker tag 项目:版本 ip:port/项目路径/项目:版本
2、推送镜像
docker push ip:port/项目路径/项目:版本
3、把harbor地址加入到docker信任列表
vi /etc/docker/daemon.json
重新启动docker
4、登录后执行推送
docker long -u 用户名 -p 密码 ip:端口
4、下载镜像
docker login -u 用户名 -p 密码 ip:端口
docker pull ip:port/项目路径/项目名:版本
3、流程
1、上传代码到gitlab上
2、拉取源码
3、提交sonarQube代码审查
4、编译构建打包项目
5、生成镜像
利用dockerfile-maven-plugin插件构建Docker镜像
1、在每个微服务项目的pom.xml加入dockerfile-maven-plugin插件
<plugin>
<group>com.spotify</group>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>3.1</version>
<configuration>
<repository>${project.artfactId}</repository>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
2、在每个微服务项目根目录下建立Dockerfile文件
#FROM java:8
FROM openjdk:8-jdk-alpine
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
EXPOSE 10086
ENTRYPOINT ["java","-jar","./app.jar"]
注意:端口设置
6、镜像上传到harbor镜像仓库
1、修改jenkinsfile构建脚本
jenkins里创建harbor访问凭证
7、拉取镜像
安装Publish Over ssh插件
配置publish over ssh
deploy.sh脚本文件
8、部署和测试
修改微服务的注册中心地址和数据库配置等配置信息
9、部署前端网站
安装nginx服务器
yum install epel-release
yum install -y nginx
修改nginx端口,默认80,修改为9090
4、优化
1、jenkins与微服务集群部署
修改所有微服务配置
多选插件
2、Nginx + Zuul集群实现高可用网关
1、安装nginx
yum install yum-utils
cd /etc/yum.repos.d/
vim nginx.repo
###############
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
##################
yum search nginx
yum install nginx
rpm -qa | grep nginx
systemctl start nginx
systemctl enable nginx
systemctl status nginx
##############
#默认配置文件在 vim /etc/nginx/conf.d/default.conf
#默认端口为80,项目部署目录为/usr/share/nginx/html/
2、配置nginx
vi /etc/nginx/nginx.conf
##########
upstream zuulserver{
server 192.168.1.x:10020 weight=1;
server 192.168.1.y:10020 weight=1;
}
##########
server {
listen 85 default_server;
listen [::]:85 default_server;
server_name _;
root /usr/share/nginx/html
include /etc/nginx/default.d/*.conf
location / {
proxy_pass http://zuulserver/;
}
}
####
systemctl restart nginx
systemctl status nginx
13、基于kubernetes/k8s构建Jenkins持续集成平台
1、Jenkins的Master-Slave分布式构建
1、实现Master-Slave分布式构建
1) 开启代理程序的TCP端口
14、Kuberenes实现Master-Slave分布式构建方案
master主机
1、K8s集群环境安装
安装环境说明
主机名称 | IP地址 | 安装的软件 |
---|---|---|
代码托管服务器 | 192.168.1.240 | gitlab-12.4 |
Docker仓库 | 192.168.1.241 | harbor2.2 |
K8s-master | 192.168.1.200 | kube-apiserver、kube-controller-manager、kube-scheduler、docker(18+)、etcd、callico、NFS |
K8s-node01 | 192.168.1.201 | kublet 、kubeproxy、docker(18)-ce |
K8s-node02 | 192.168.1.202 | kublet 、kubeproxy、docker(18)ce |
环境准备
#修改机器的hostname和hosts文件
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node01
hostnamectl set-hostname k8s-node02
cat >> /etc/hosts<<EOF
192.168.1.200 k8s-master
192.168.1.201 k8s-node01
192.168.1.202 k8s-node02
EOF
#关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
setenforce 0 #临时关闭SELINUX
vi /etc/sysconfig/selinux
改
SELINUX=disabled
# :s/SELINUX=enable/SELINUX=disabled
# sed -i 's/SELINUX=enable/SELINUX=disabled/g' /etc/sysconfig/selinux
# sed -i 's/SELINUX=disabled/SELINUX=enable/g' /etc/sysconfig/selinux
#systemctl status firewalld
####
#升级centos7 的内核为 4.4
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install -y kernel-lt
#设置开机从新的内核启动
grub2-set-default 'CentOS Linux (4.4.209-1.el7.elrepo.x86_64) 7 (Core)'
设置系统参数
设置允许路由转发,不对bridge的数据进行处理
#创建文件 每台机器都需要
vi /etc/sysctl/k8s.conf
################
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1
vm.swappiness=0
################
#执行文件
sysctl -p /etc/sysctl/k8s.conf
#kube-proxy开启ipvs的前置条件
cat /etc/sysconfig/modules/ipvs.modules << EOF
#!/bin/bash
modprode -- ip_vs
modprode -- ip_vs_rr
modprode -- ip_vs_wrr
modprode -- ip_vs_sh
modprode -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod |grep -e ip_vs -e nf_conntack_ipv4
所有节点关闭swap
swapoff -a #临时关闭
vi /etc/fstab #永久关闭
#注释一下字段
/dev/mapper/cl-swap swap swap defaults 0 0
安装kubelet、kubeadm、kubectl
清空yum缓存
yum clean all
设置yum安装源
cat <<EOF > kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
#######################################
sudo mv kubernetes.repo /etc/yum.repos.d/
安装
yum install -y kubelet kubadm kubectl
#设置开启kubelet
sytemctl enable kubelet
k8s master节点安装
1)初始化
配置kubectl工具
安装Calico
slave节点安装
15、基于Kubernetes/K8s构建Jenkins持续集成平台
Jenkins-Master-Slave架构图
安装和配置NFS
NFS简介
NFS安装
NFS服务器安装在独立的机器上
1)安装NFS服务(所有k8s的节点都要安装)
yum install -y nfs-utils
2)创建共享目录
mkdir -p /opt/nfs/jenkins
vi /etc/exports #编写NFS共享配置
#内容
/opt/nfs/jenkins *(rw,no_root_squash) #代表对所有IP都开放此目录,rw是读写
3、启动服务
systemctl enable nfs #开机启动
systemctl start nfs #启动服务
showmount -e ip
在Kubernetes安装Jenkins-Master
创建NFS client provisioner
Jenkins远程发布
1、安装Publish Over SSH
2、增加全局属性
echo $PATH
#/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/maven/bin:/usr/local/jdk8/jdk1.8.0_181/bin:/usr/local/jdk8/jdk1.8.0_181/jre/bin:/root/bin
3、sonarqube编码质量检测
sonar.projectKey=first-web-demo
sonar.projectName=first-web-demo
sonar.proejctVersion=1.0
sonar.sources=.
sonar.exclusions=**/test/**,**/target/**
sonar.java.source=1.8
sonar.java.target=1.8
sonar.sourceEncoding=UTF-8
4、jenkins远程发布启动脚本
#目标服务创建目录和脚本
mkdir -p /opt/application/pay
# application-prod.yml,application.yml,logback-spring.xml 复制到目录下
# 创建启动脚本
vi start-pay.sh
########################
#!/bin/bash
echo "Stopping helsys-platform"
source /etc/profile
pid=`ps -ef | grep helsys-platform.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "kill -9 的pid:" $pid
kill -9 $pid
fi
echo "stop finish"
chmod 777 /opt/application/pay/helsys-platform.jar
nohup java -jar /opt/application/pay/helsys-platform.jar >/dev/null 2>&1 &
echo $?
echo "start run"
####################################
chmod 777 -R start-pay.sh