CI/CD持续集成持续发布(jenkins)
1.背景
在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;
或者前后端分离后,经常会修改接口,然后重新部署;
这些情况都会涉及到频繁的打包部署;
手动打包常规步骤:
1.提交代码
2.问一下同组小伙伴有没有要提交的代码
3.拉取代码并打包(war包,或者jar包)
4.上传到Linux服务器
5.查看当前程序是否在运行
6.关闭当前程序
7.启动新的jar包
8.观察日志看是否启动成功
9.如果有同事说,自己还有代码没有提交......再次重复1到8的步骤!!!!!(一上午没了)
那么,有一种工具能够实现,将代码提交到git后就自动打包部署勒,答案是肯定的:Jenkins
当然除了Jenkins以外,也还有其他的工具可以实现自动化部署,如Hudson等
只是Jenkins相对来说,使用得更广泛
1. jenkins
1.1 什么是jenkins
jenkins就是持续开发部署得软件
1.2.Jenkins自动化部署实现原理
yum install -y curl policycoreutils-python openssh-server perl postfix
systemctl enable --now sshd postfixrpm -ivh gitlab-ce-12.3.0-ce.0.el7.x86_64.rpm
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.50.25:82'
nginx['listen_port'] = 82gitlab-ctl reconfigure
gitlab-ctl restart
浏览器访问:http://192.168.50.25:82 ,如果显示 502,稍等片刻再刷新
1、设置管理员 root 用户的新密码,注意有格式要求,这里设置成 root@123
2、使用管理员 root 用户登录(root/root@123)
3、登录后点击页面右上方的用户选项下拉选择【Settings】,点击左边菜单【Preferences】,在【Localization】的【Language】中选择【简体中文】,点击【Save changes】按钮,再刷新页面使用中文显示。
//Gitlab添加组、创建用户、创建项目
#创建群组
点击页面左上方的【GitLab】图标,点击 【新建群组】
【群组名称】、【群组URL】、【群组描述】都设置成 devops_group
【可见性级别】设置成 私有
其他都保持默认值,点击 【创建群组】
#创建项目
点击 【新建项目】
【项目URL】群组选项下拉选择 devops_group
【项目名称】设置成 web_demo
【项目描述】设置成 web_demo
【可见等级】设置成 私有
点击 【创建项目】
#创建用户
点击页面上方的【扳手】图标进入“管理区域”
点击 【新建用户】
【姓名】设置成 zhangsan
【用户名】设置成 zhangsan
【电子邮箱】设置成 zhangsan@kgc.com
这里密码暂不设置,其他都保持默认值,先点击 【创建用户】
注:Access level:Regular(表示的是普通用户,只能访问属于他的组和项目);Admin(表示的是管理员,可以访问所有组和项目)创建好用户后再点击右上角的【Edit】,可在这里设置密码,如 zhangsan@123
#将用户添加到组中
点击页面上方的【群组】下拉选择 devops_group
点击左边菜单【成员】
【添加成员到 devops_group】选择 zhangsan,角色权限选择 Owner
点击 【添加到群组】
#使用自己创建的账户进行管理
退出当前账户,使用自己创建的账户 zhangsan 登录(zhangsan/zhangsan@123)
第一次登录会被强制要求修改密码(zhangsan/zhangsan@123),可与旧密码相同,再重新登录
//Jenkins安装
#安装JDK
tar zxvf jdk-11.0.5_linux-x64_bin.tar.gz -C /usr/local/vim /etc/profile
export JAVA_HOME=/usr/local/jdk-11.0.5
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATHsource /etc/profile
java -version
#安装jenkins
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keyyum install epel-release -y
yum install jenkins -y
或者直接用下载好的安装包
yum localinstall -y jenkins-2.401.2-1.1.noarch.rpm
#修改 jenkins 的运行用户和监听端口
vim /etc/sysconfig/jenkins
JENKINS_USER="root"
JENKINS_PORT="8888"
##新版本的 jenkins 还要在 /usr/lib/systemd/system/jenkins.service 文件中修改用户名和端口
vim /usr/lib/systemd/system/jenkins.service
User=root
Group=root
Environment="JAVA_HOME=/usr/local/jdk-11.0.5" 注释去掉
Environment="JENKINS_PORT=8888"
#修改 jenkins 的启动脚本添加java路径
vim /etc/init.d/jenkins
candidates="
......
/usr/local/jdk-11.0.5/bin/java
/usr/bin/java
systemctl daemon-reload
systemctl start jenkins
systemctl enable jenkins
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>sed -i 's#https://www.google.com#https://www.baidu.com#' /var/lib/jenkins/updates/default.json
http://192.168.50.25:8888
systemctl restart jenkins
浏览器访问:http://192.168.50.25:8888 ,获取并输入 admin 账户密码
要安装git插件,从gitlab仓库拉取代码
点击用户名下拉选择凭据 -> Jenkins 全局 -> 添加凭据
类型选择 "Username with password" ,输入 Gitlab 的用户名和密码(zhangsan/zhangsan@123),描述输入 gitlab-auth-password
点击 "确定"。
创建一个FreeStyle项目:新建Item -> 任务名称(test01) FreeStyle Project -> 确定
源码管理:选择 Git,Repository URL:http://192.168.80.10:82/devops_group/web_demo.git(可从 Gitlab 使用 HTTP 克隆),
Credentials 下拉选择 gitlab-auth-password,点击 保存。
点击 Bulid Now 开始构建,查看控制台输出可以看到构建成功,构建后的包会生成在服务器的 /var/lib/jenkins/workspace/test01 目录中。
//Jenkins 构建 Maven 项目
Maven 是一个主要用于 Java 项目的自动化构建工具。Maven 还可以用来构建和管理用 C#、Ruby、Scala 和其他语言开发的项目。
#在 Jenkins 服务器上安装 Maven 来编译和打包项目
cd /opt
tar -zxvf apache-maven-3.6.2-bin.tar.gz
mv apache-maven-3.6.2 /usr/local/mavenvim /etc/profile
......
export MAVEN_HOME=/usr/local/maven
export PATH=$MAVEN_HOME/bin:${JAVA_HOME}/bin:$PATHsource /etc/profile
mvn -v
#Jenkins 关联 JDK 和 Maven
tar xf jdk-8u171-linux-x64.tar.gz -C /usr/local/
Manage Jenkins -> Global Tool Configuration
-> JDK
点击 新增JDK,别名输入 jdk11,取消勾选 Install automatically,JAVA_HOME输入 /usr/local/jdk-11.0.5
点击 新增JDK,别名输入 jdk1.8,取消勾选 Install automatically,JAVA_HOME输入 /usr/local/jdk1.8.0_171
-> Maven
点击 新增Maven,Name输入 maven3,取消勾选 Install automatically,MAVEN_HOME驶入 /usr/local/maven
点击 "应用"和"保存"。
#添加 Jenkins 全局变量,让 Jenkins 能够识别 JDK 和 Maven 环境的命令
Manage Jenkins -> Configure System -> 全局属性,勾选 Environment variables
键值对列表添加:键 JAVA_HOME ,值 /usr/local/jdk-11.0.5
键 M2_HOME ,值 /usr/local/maven
键 PATH+EXTRA ,值 $M2_HOME/bin
#修改 Maven 的 settings.xml
mkdir /root/repo #创建本地仓库目录
vim /usr/local/maven/conf/settings.xml
54 --> #本地仓库改为 /root/repo/
<localRepository>/root/repo</localRepository>
153 --> #添加阿里云私服地址
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
//Tomcat 安装和配置
#安装 Tomcat8.5
tar zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_171
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
source /etc/profile
tar zxvf apache-tomcat-9.0.16.tar.gz
mv /opt/apache-tomcat-9.0.16/ /usr/local/tomcat
/usr/local/tomcat/bin/startup.sh
//配置 Tomcat 用户角色权限
默认情况下 Tomcat 是没有配置用户角色权限的
验证方法:可浏览器访问 http://192.168.80.12:8080 ,点击 Managing Tomcat 下的 manager webapp ,发现返回 403 页面。
但是后续 Jenkins 部署项目到 Tomcat 服务器,需要用到 Tomcat 的用户进行远程部署,所以修改 tomcat 以下配置,添加用户及权限
vim /usr/local/tomcat/conf/tomcat-users.xml
43 --> #添加 tomcat 用户角色权限,指定用户和密码都是 tomcat ,并授予权限
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-script"/>
<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-users>
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
<!-- #注释掉 Valve 配置
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh再次访问:http://192.168.80.12:8080/manager/html ,输入账号/密码 tomcat/tomcat,即可成功登录
再次登录
//Jenkins 构建 Maven 项目
//自由风格项目构建
项目的集成过程:拉取代码 -> 编译 -> 打包 -> 部署
#拉取代码
新建item -> 任务名称(web_demo_freestyle) FreeStyle Project -> 确定
源码管理:选择 Git,Repository URL:git@192.168.80.10:devops_group/web_demo.git
Credentials 下拉选择 gitlab-auth-ssh,点击 保存
点击 Build Now,尝试构建项目
#编译打包
配置 —> 构建 -> 添加构建步骤 -> Execute Shell,输入以下命令
echo "开始编译和打包"
mvn clean package
echo "编译和打包结束"
点击 Build Now,尝试构建项目
#把项目部署到远程的 Tomcat 里面
1)安装 Deploy to container 插件
Jenkins 本身无法实现远程部署到 Tomcat 的功能,需要安装 Deploy to container 插件实现:
Manage Jenkins -> 管理插件-可选插件 -> 搜索 Deploy to container 插件选中直接安装即可
2)添加构建后操作
配置 —> 构建后操作 -> 增加构建后操作步骤 -> Deploy war/ear to a container
WAR/EAR files 输入 target/*.war
Containers —> Add Container —> Tomcat 9.x Remote -> Credentials,点击添加 -> Jenkins
用户名 输入 tomcat,密码 输入 tomcat,描述 输入 tomcat-auth,点击添加
Credentials 下拉选择 tomcat-auth
Tomcat URL 输入 http://192.168.80.12:8080
点击保存
点击 Build Now,尝试构建项目
3)部署成功后,刷新 http://192.168.80.12:8080/manager/html 页面,可以发现应用程序中多出一个项目,点击新项目进去访问
//Pipeline 流水线项目构建
Pipeline 脚本是由 Groovy 语言实现的,但是我们没必要单独去学习 Groovy
Pipeline 支持两种语法:Declarative(声明式)和 Scripted Pipeline(脚本式)语法
#安装 Pipeline 插件(推荐的插件已默认安装)
Manage Jenkins -> Manage Plugins -> 可选插件 –> 安装 Pipeline 和 Pipeline Stage View
#Pipeline 语法快速入门
1)Scripted 脚本式 Pipeline
新建item -> 任务名称(web_demo_pipeline) Pipeline -> 确定
流水线 -> 定义 选择 Pipeline script -> 选择 Scripted Pipeline
生成内容如下:
node {
def mvnHome
stage('Preparation') { // for display purposes
// Get some code from a GitHub repository
git 'https://github.com/jglick/simple-maven-project-with-tests.git'
// Get the Maven tool.
// ** NOTE: This 'M3' Maven tool must be configured
// ** in the global configuration.
mvnHome = tool 'M3'
}
stage('Build') {
// Run the maven build
withEnv(["MVN_HOME=$mvnHome"]) {
if (isUnix()) {
sh '"$MVN_HOME/bin/mvn" -Dmaven.test.failure.ignore clean package'
} else {
bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
}
}
}
stage('Results') {
junit '**/target/surefire-reports/TEST-*.xml'
archiveArtifacts 'target/*.jar'
}
}
●Node:节点,一个 Node 代表一个 Jenkins 节点,Master 或者 Agent 节点,是执行 Step 的具体运行环境,后续讲到 Jenkins 的 Master-Slave 架构的时候用到。
●Stage:阶段,一个 Pipeline 可以划分为若干个 Stage,每个 Stage 代表一组操作,比如:Build、Test、Deploy,Stage 是一个逻辑分组的概念。
●Step:步骤,Step 是最基本的操作单元,可以是打印一句话,也可以是构建一个 Docker 镜像,由各类 Jenkins 插件提供, 比如命令:sh 'make',就相当于我们平时 shell 终端中执行 make 命令一样。
编写一个简单的脚本式 Pipeline:
node {
def mvnHome
stage('拉取代码') {
echo '拉取代码'
}
stage('编译构建') {
echo '编译构建'
}
stage('项目部署') {
echo '项目部署'
}
}
2)Declarative 声明式 Pipeline
流水线 -> 选择 HelloWorld 模板
生成内容如下:
pipeline {
agent any
stages { #stages:代表整个流水线的所有执行阶段。通常stages只有1个,里面包含多个stage
stage('Hello') { #stage:代表流水线中的某个阶段,可能出现n个。一般分为拉取代码,编译构建,部署等阶段
steps { #steps:代表一个阶段内需要执行的逻辑。steps里面是shell脚本,git拉取代码,ssh远程发布等任意内容
echo 'Hello World'
}
}
}
}
编写一个简单声明式Pipeline:
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
echo '拉取代码'
}
}
stage('编译构建') {
steps {
echo '编译构建'
}
}
stage('项目部署') {
steps {
echo '项目部署'
}
}
}
}
点击保存
点击 Build Now,查看 Console Output 可以看到整个构建过程
#使用代码生成器生成流水线脚本:
流水线 -> 流水线语法 -> 片段生成器
#生成一个 pull stage
选择 checkout: Check out from version control
SCM 选择 Git,Repository URL:git@192.168.80.10:devops_group/web_demo.git
Credentials 下拉选择 gitlab-auth-ssh
指定分支 */master
点击 生成流水线脚本
把生成的脚本复制到流水线中后,点击保存,尝试构建;
#生成一个构建 stage
选择 sh:Shell Script
Shell Script 输入 mvn clean package
点击 生成流水线脚本
把生成的脚本复制到流水线中后,点击保存,尝试构建;
#生成一个部署 stage
选择 deploy: Deploy war/ear to a container
WAR files 输入 targer/*.war
Containers —> Add Container —> Tomcat 8.x Remote -> Credentials 下拉选择 tomcat-auth
Tomcat URL 输入 http://192.168.80.12:8080
点击 生成流水线脚本
把生成的脚本复制到流水线中后,点击保存,尝试构建部署。
相关文章:
![](https://img-blog.csdnimg.cn/b58aa9fd984b4e8cb43438529e2c20ff.png)
CI/CD持续集成持续发布(jenkins)
1.背景 在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试; 或者前后端分离后,经常会修改接口,然后重新…...
![](https://img-blog.csdnimg.cn/19f7e8e515cd4eada3d3c67fbeddce92.png)
Qt5.14.2+QtCreator+PDB 查看源码
1. 在Creator添加源码 2. 安装PDB文件 Qt下载时没有整合最新的PDB文件下载,如果没有安装PDB文件,即使安装了src也无法调试。 双击MaintenanceTool.exe->设置->资料档案库->临时资料档案库->添加按钮,添加如下下载源:…...
![](https://img-blog.csdnimg.cn/d2372fdafe1a4d6399bb9a8fe0549d31.png)
DOM基础获取元素+事件基础+操作元素
一.DOM简介 DOM,全称“Document Object Model(文档对象模型)”,它是由W3C定义的一个标准。 在实际开发中,我们有时候需要实现鼠标移到某个元素上面时就改变颜色,或者动态添加元素或者删除元素等。其实这些效…...
![](https://www.ngui.cc/images/no-images.jpg)
MATLAB——感知神经网络学习程序
学习目标:从学习第一个最简单的神经网络案例开启学习之路 感知器神经网络 用于点的分类 clear all; close all; P[0 0 1 1;0 1 0 1]; %输入向量 T[0 1 1 1]; %目标向量 netnewp(minmax(P),1,hardlim,lea…...
![](https://img-blog.csdnimg.cn/51a3aceb2ba84aa5a5a2d7b8ce28a09f.png#pic_center)
SpringBoot中事务失效的原因
SpringBoot中事务失效的原因 文章目录 SpringBoot中事务失效的原因一、事务方法非public修饰二、非事务方法调用事务方法三、事务方法的异常被捕获四、事务异常类型不对五、事务传播行为不对六、没有被Spring管理6.1、暴漏代理对象6.2、使用代理对象 常见的事务失效原因包括如下…...
![](https://www.ngui.cc/images/no-images.jpg)
Webstorm的一些常用快捷键
下面是Webstorm的一些常用快捷键: ctrl shift n: 打开工程中的文件,目的是打开当前工程下任意目录的文件。ctrl j: 输出模板ctrl b: 跳到变量申明处ctrl alt T: 围绕包裹代码(包括zencoding的Wrap with Abbreviation)ctrl []: 匹配 {}[]ctrl F1…...
![](https://img-blog.csdnimg.cn/547c02267e3e4411947290f0c10864dd.jpeg)
系统集成项目成本管理
在项目中,成本是指项目活动或其组成部分的货币价值或价格,包括为实施、完成或创造该活动或其组成部分所需资源的货币价值。具体的成本一般包括直接工时、其他百接费用、间接工时、其他间接费用以及采购价格。 项目全过程所耗用的各种成本的总和为项目成本…...
![](https://img-blog.csdnimg.cn/03beeccc97234ae99c47ca9287760dab.png)
Spring Boot整合ES的两种方式
使用Spring Data Elasticsearch Starter 在Spring Boot中整合Elasticsearch的方式之一是使用Elasticsearch的官方Spring Data Elasticsearch Starter。该Starter提供了对Elasticsearch的高级集成,简化了配置和管理Elasticsearch客户端。 下面是使用Spring Data E…...
![](https://www.ngui.cc/images/no-images.jpg)
Ajax_3 Ajax原理+ (XMLHttpRequest + Promise )+ 封装一个axios插件库,实现功能。
Ajax_3 Ajax原理 01-Ajax原理-XMLHttpRequest 使用XMLHttpRequest 步骤: 创建XMLHttpRequest对象配置请求方法请求url网址监听loadend事件,接受响应结果发起请求 需求:使用XMLHttpRequest对象与服务器通信 代码示例 // 1. 创建 XMLHttpReq…...
![](https://img-blog.csdnimg.cn/1bffefe58547429992b0386b1e740f50.png)
计算机网络(7) --- UDP协议和TCP协议
计算机网络(6) --- https协议_哈里沃克的博客-CSDN博客https协议https://blog.csdn.net/m0_63488627/article/details/132112683?spm1001.2014.3001.5501 目录 1.补充知识 1.PORT端口号 2.端口号范围划分 3.知名端口号 2.UDP协议 1.UDP报头 2.U…...
![](https://img-blog.csdnimg.cn/13984f16c7c54aa0bad94dcb729b9ae4.png)
Jenkins 修改默认管理员帐号
1、新增一个新的超级管理员用户,并验证能正常登录 2、进入 Jenkins 用户管理目录: /data/software/jenkins/users 3、修改超级管理文件夹的名称为其他名称,如:mv admin_*** ifadm_*** 4、重启Jenkins容器...
![](https://img-blog.csdnimg.cn/c609f049d96e42a6aa5ffa2bf0e90494.png)
FK-坦克大战制作(一)菜单制作
1、Cocos Creator新建2d项目 2.在资源管理器中新建场景menu 新建scences文件夹》新建场景》改名为menu 3.在层级管理器的Canvas下新建Layout节点,并在此节点下新建Label标签 4.双击Label,在属性检查器中进行编辑 5. 添加动画:(对文本进行放大…...
![](https://img-blog.csdnimg.cn/94ffea19f34a4013b4ae367bd8e989cd.png)
39.利用matlab寻找素数(matlab程序)
1.简述 MATLAB嵌套循环允许使用一个循环在另一循环内,下面用一个嵌套循环来把所有从1到100的素数显示出来。 2.代码 %% 学习目标:寻找素数 clear sum5; %求0~100素数之和 ss0; %用来标定是否是素数,0表示不是 p…...
![](https://img-blog.csdnimg.cn/1286229ece4249cc940a2afb69b874a4.gif)
卡尔曼滤波算法demo
代码 learn_kalman.py #codingutf-8 import numpy as np import time from kinematic_model import freedrop from controller import kalman_filterimport matplotlib.pyplot as plt # 支持中文 import matplotlib as mpl mpl.rcParams[font.family]SimHei plt.rcParams[a…...
![](https://img-blog.csdnimg.cn/img_convert/2215419bc9485f8ea30cdf128d711227.png)
MySQL游标(二十九)
二八佳人体似酥,腰悬利剑斩愚夫,虽然不见人头落,暗里教君骨髓枯。 上一章简单介绍了MySQL流程控制(二十八) ,如果没有看过,请观看上一章 一. 游标 一.一 什么是游标 虽然我们也可以通过筛选条件 WHERE 和 HAVING,或者是限定返回记录的关键…...
![](https://img-blog.csdnimg.cn/img_convert/2340f93052f59d776cbd65f813d09b5a.png)
内生安全构建数据存储
一、数据安全成为防护核心,存储安全防护不容有失 1、数据作为企业的核心资产亟需重点保护,数据安全已成网络空间防护核心 2、国家高度重视关键信息基础设施的数据安全,存储安全已成为审核重点 二、存储安全是数据安全的关键一环,应…...
![](https://img-blog.csdnimg.cn/072b4e2a1bb045d091c83d0e2b41baaa.png)
Docker+Consul+Registrator 实现服务注册与发现
第四阶段 时 间:2023年8月8日 参加人:全班人员 内 容: DockerConsulRegistrator 实现服务注册与发现 目录 一、服务注册中心引言 CAP理论是分布式架构中重要理论: 二、服务注册中心软件 (一)Zoo…...
![](https://img-blog.csdnimg.cn/e5bb0674cdb44ce79fe77d99e3632e33.png)
深入学习JVM —— GC垃圾回收机制
前言 前面荔枝已经梳理了有关JVM的体系结构和类加载机制,也详细地介绍了JVM在类加载时的双亲委派模型,而在这篇文章中荔枝将会比较详细地梳理有关JVM学习的另一大重点——GC垃圾回收机制的相关知识,重点了解的比如对象可达性的判断、四种回收…...
![](https://www.ngui.cc/images/no-images.jpg)
Centos7.6 + Apache Ranger 2.4.0编译(docker方式)
目录 一、Ranger简介 1、组件列表 2、支持的数据引擎服务 二、主机环境准备 1、关闭防火墙 2、关闭SELINUX 3、安装docker 4、下载Ranger源码包 5、下载Maven安装包 三、编译Ranger源码 1、修改官方包中的build_ranger_using_docker.sh 2、运行脚本编译 3、编译检…...
![](https://www.ngui.cc/images/no-images.jpg)
LVS-DR模式集群配置
四台虚拟机 node1:128 node2:135 RS端: node3:130 node4:132 [rootnode2 ~]# yum install -y ipvsadm #配置LVS虚拟IP,没有ifconfig命令则先安装 [rootnode2 ~]# yum install net-tools -y #配置VIP [root…...
![](https://www.ngui.cc/images/no-images.jpg)
【数据分析】pandas( 二)
目录 简介: 一,1.1来自Series字典或字典 1.2 来自ndarray或者列表的字典: 1.3来自结构化或记录数组; 1.4来自字典列表: 1.4来自元组的字典: 1.5 来自Series 二,代替构造函数: 2.1DataFram…...
![](https://img-blog.csdnimg.cn/8c128999df5f48f59cb456d204b265cb.png)
ffmpeg工具实用命令
说明:ffmpeg是一款非常好用的媒体操作工具,包含了许多对于视频、音频的操作,有些视频播放器里面实际上就是使用了ffmpeg。本文介绍ffmpeg的使用以及一些较为实用的命令。 安装 ffmpeg是命令行操作的,不需要安装,可在…...
![](https://www.ngui.cc/images/no-images.jpg)
zabbix API笔记
博客园原文 python简单demo 输出id为111主机的主机群组信息 import requests import json request_headers {"Content-Type": "application/json"} zabbix_url "http://xxx.xxx.xxx.xxx:8080/zabbix/api_jsonrpc.php" get_hostgroup_from_h…...
![](https://www.ngui.cc/images/no-images.jpg)
[HDLBits] Mt2015 q4a
Module A is supposed to implement the function z (x^y) & x. Implement this module. module top_module (input x, input y, output z);assign z(x^y)&x; endmodule...
![](https://img-blog.csdnimg.cn/img_convert/57f751ceb028878f24d2c127a50c3fc0.gif)
HarmonyOS NEXT,生命之树初长成
在不同的神话体系中,都有着关于生命之树的记载。 比如在北欧神话中,一株巨大的树木联结着九大世界,其被称为“尤克特拉希尔”Yggdrasill。在中国的《山海经》中,也有着“建木”的传说,它“有九欘,下有九枸&…...
![](https://img-blog.csdnimg.cn/d7a21c9ae548413d8a0382414b454cc6.png)
PHPstudy配置伪静态步骤,tp5.1的框架
搜索mod_rewrite.so,然后去掉前面的#(即放开注释) 2.找到index.php 同级文件.htaccess(没有就新建) 这些是tp5.1自带的内容,把它注释掉,是错误的内容,添加下面的这段配置 #<If…...
![](https://img-blog.csdnimg.cn/7e5eab50be534e21a920724e0061a0e7.png)
LeetCode:Hot100的python版本
94. 二叉树的中序遍历...
![](https://img-blog.csdnimg.cn/9ce1c52ad0b94a3db2998e014be2470f.png)
rv1126更新rknpu驱动教学
测试平台:易佰纳rv1126 38板 查看板端版本-------------------------------------------------- 1:查看npu驱动版本 dmesg | grep -i galcore,可以看到版本为6.4.3.5 2:查看rknn-server版本 strings /usr/bin/rknn_server | g…...
![](https://img-blog.csdnimg.cn/554e41c26f654a3c95a9bf05000715d5.png)
[机器学习]线性回归模型
线性回归 线性回归:根据数据,确定两种或两种以上变量间相互依赖的定量关系 函数表达式: y f ( x 1 , x 2 . . . x n ) y f(x_1,x_2...x_n) yf(x1,x2...xn) 回归根据变量数分为一元回归[ y f ( x ) yf(x) yf(x)]和多元回归[ y …...
![](https://img-blog.csdnimg.cn/bc25e6152e2f46c88d35936603877ca5.jpeg)
Vue基于php医院预约挂号系统_6nrhh
随着信息时代的来临,过去的管理方式缺点逐渐暴露,对过去的医院预约挂号管理方式的缺点进行分析,采取计算机方式构建医院预约挂号系统。本文通过阅读相关文献,研究国内外相关技术,开发并设计一款医院预约挂号系统的构建…...
![](/images/no-images.jpg)
宁波营销型网站建设优化建站/上海百度公司总部
经常遇到这样的情况,要取得所有客户的最新交易记录,读取网站所有浏览者最后一次访问时间。一个客户只读取最新的一次记录,相同,大部分的人首先想到的就是排除所有记录,相同的只取一条。用distint,但是distint只能取到一…...
![](/images/no-images.jpg)
用手机做网站视频/全网营销国际系统
性能测试中关键指标的监控与分析 https://blog.csdn.net/huangjin0507/article/details/51878559 性能测试指标及常用的监控工具 https://blog.csdn.net/gzh0222/article/details/7258661 转载于:https://www.cnblogs.com/highpointengineer/p/10953617.html...
![](/images/no-images.jpg)
建设项目招标在什么网站公示/英文seo是什么意思
最近发现centos7 的/etc/rc.local不会开机执行,于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了 ?1234567891011#!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules…...
![](https://img-blog.csdnimg.cn/img_convert/3ec624a19b2d1f4f798a04ecb3961441.png)
做网站模板哪里买/电商代运营一般收多少服务费
本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)本文作者: 苏洋创建时间: 2019年08月05日 统计字数: 7024字 阅读时间: 15分钟阅读 本文链接: https://soulteary.com/2019/08/05/p…...
![](https://img-blog.csdnimg.cn/img_convert/6e9a3582d093c74d79a2fdc22f836ef8.png)
网站做推广需要什么条件/扶贫832网络销售平台
我的移动开发春季历程 没有稳定的工作,只有稳定的能力。 春天,又到了万物复苏的季节,在程序猿这个行当里,作为 Android 开发出生的我,在经历了5年的脱发生涯后,现在更多的是称呼自己为移动开发攻城狮。 学…...
![](https://img-blog.csdnimg.cn/1651ae49ea5043d2a800c4bf54e4a27f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAamF2YeWFqOagiF9jb2Rlcg==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
wordpress怎么重装/百度知道灰色词代发收录
首页和图标定制 首页 图标定制 1.图片命名为favicon.ico 2.放在public目录下 3.更改配置 #关闭默认图标 ,新版本没有 spring.mvc.favicon.enabledfalse4.测试访问...