jjzjj

jenkins流水线(jenkinsfile)详解

long77 2023-03-28 原文

jenkins流水线(jenkinsfile)详解

在学习本篇文章的时候,可以去看看jenkins官网的文档,jenkins官网支持中文,观看十分便捷

此教程使用的是gitee+docker+jenkins的部署方式,gitlab与github异曲同工,还有就是我目前写jenkins的教程已经更新了两期,关于插件啥的安装都不多详细的讲解了,但用到的旧知识点我也会简单讲解一下,新的知识点我也都会讲到,只是需要pipeline代码的小伙伴,直接拉到教程的最后

jenkins使用docker安装保姆级教程(面向小白教程,最新最全,全图文)2022-8-1,不会docker也没关系

使用jenkins+gitee创建docker镜像并运行

新建一个任务,选择流水线

可以看见啊,比起自由风格的软件项目,这个项目是非常的简单

webhook钩子(使用git工具时执行相应步骤,比如说拉取,推送,会触发钩子函数,jenkins接收到钩子然后开始执行打包部署等工作,这里不配置也是可以的,如果是新手,可以看看我之前的教程,从基础学起)

我在之前的教程中已经详细的讲解了,这里都不多加赘述了

配置一个密码

在gitee中连接

pipeline

然后我从最基础的讲起

首先选择wello world,不是说只能选这个,就是我需要一步一步讲所以选个最原始的

讲解一下这个hello world

pipeline {
    agent any  	
stages {
    stage('Hello') {
        steps {
            echo 'Hello World'
        }
    }
    // 这里的hello2 是我加的,就是说明,这是stages下的第二个任务 ,就是在pipeline中加单行注释 用 // 就行
    stage('Hello2') {
        steps {
            echo 'Hello World'
        }
    }
}

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

pipeline 定义一个流水线脚本

agent 指示 Jenkins 为整个流水线分配一个执行器(在 Jenkins 环境中的任何可用代理/节点上)和工作区。

stages 全部的工作都在这里执行

stage 每个工作开始

steps jenkinsfile 声明式脚本往这里面写

echo 写一个简单的字符串到控制台输出。

保存测试一下(保存以后点立即构建)

我们来看一下日志,以后我都不放图片了,这里只是给新来的朋友说明一下在哪看日志

在下面我们可以看见执行了两个 hello world ,这就是我们执行脚本得到的结果

返回项目点击配置

开始使用pipeline

首先我们要了解一下,我们的项目要经历几个步骤,1、从git中拉取;2、maven打包;3、docker生成镜像并运行,好了,我们了解到普通的项目只需要这几个步骤,我们就来规划一下pipeline代码部分

pipeline {
    agent any
    stages {
        stage('拉取代码') {
            steps {
                echo '拉取成功'
            }
        }
        stage('执行构建') {
            steps {
                echo '构建完成'
            }
        }
        stage('把jar包构建为docker镜像并运行') {
            steps {
                echo '运行成功'
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

连接到git

使用jenkins自带的脚本生成器

到了片段生成器

首先我们需要从git中拉取,就选git

连接git

复制粘贴(自己去测试一下有用没有,如果你不是用的docker镜像,并且报错,原因:1、压根没连接上,去看看你账号密码和git链接到底连的通不;2、没用docker安装jenkins,缺少了git环境,使用yum -y install git安装;3、我也想不出来了,自己去搜搜)

pipeline {
    agent any
    stages {
        stage('拉取代码') {
            steps {
                git credentialsId: '93f024b8-6456-4c98-a131-9a5ee9f42027', url: 'https://gitee.com/i-dont-recognize-you/school-page.git'
                echo '拉取成功'
            }
        }
    stage('执行构建') {
        steps {
            echo '构建完成'
        }
    }
    
    stage('把jar包构建为docker镜像并运行') {
        steps {
            echo '运行成功'
        }
    }
}

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

连接maven

全局工具配置里面配置maven,之前教程讲了的,我就不详细讲了

maven需要引用使用tools就行,注意不要直接cope运行,看看代码中的注解,而且git是我的,你也跑不通

pipeline {
    agent any
	// 看这里,导入maven,名字就是在全局工作配置中配置了的
    tools{
        maven 'maven_3.8.4'
    }
    stages {
        stage('拉取代码') {
            steps {
                git credentialsId: '93f024b8-6456-4c98-a131-9a5ee9f42027', url: 'https://gitee.com/i-dont-recognize-you/school-page.git'
                echo '拉取成功'
            }
        }
    stage('执行构建') {
        steps {
        // 看这里哈,先运行一下maven版本,看看maven是否配置好了, sh 是指 执行shell脚本
            sh "mvn --version"
        // 如果maven可以运行,那么执行以下代码,这里需要注意一下,pom.xml文件是否在你创建的任务目录下
        //  sh "mvn clean package"
            echo '构建完成'
        }
    }
    
    stage('把jar包构建为docker镜像并运行') {
        steps {
            echo '运行成功'
        }
    }
}

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

如果打印了maven的版本信息,但打包报错看看是否pom.xml文件是否在test2(这是我取的任务名,至于名字为啥不是Demo,我爱咋取咋取,管的着吗)的目录下,我这个就是在任务目录下的,所以方向执行sh "mvn clean package"就行如果还有多一层目录才有pom.xml,那你举一反三啊,在使用sh "mvn clean package"命令打包之前执行sh "cd 目录"不就可以了

[root@instance-3806mxkl ~]# cd /data/jenkins_home/workspace/test2
[root@instance-3806mxkl test2]# ls
Dockerfile  LICENSE  pom.xml  src  target
  • 1
  • 2
  • 3

使用docker本地打包(完整代码),这里没什么讲事,就是执行了上个教程的shell脚本,之前的教程中我有关于这个shell脚本完整的讲解

pipeline {
    agent any
tools{
    maven 'maven_3.8.4'
}
stages {
    stage('拉取代码') {
        steps {
            git credentialsId: '93f024b8-6456-4c98-a131-9a5ee9f42027', url: 'https://gitee.com/i-dont-recognize-you/school-page.git'
            echo '拉取成功'
        }
    }
    
    stage('执行构建') {
        steps {
        //    sh "mvn --version"
            sh "mvn clean package"
            echo '构建完成'
        }
    }
    
    stage('把jar包构建为docker镜像并运行') {
        steps {
            sh '''#!/bin/bash
                    # 服务名称
                    SERVER_NAME=test2
                    
                    # 源jar名称,mvn打包之后,target目录下的jar包名称
                    JAR_NAME= "School-0.0.1-SNAPSHOT"
                    
                    # jenkins下的目录
                    JENKINS_HOME= "/var/jenkins_home/workspace/test2"
                    
                    # 等待三秒
                    echo sleep 3s
                    sleep 1
                    echo sleep 2s
                    sleep 1
                    echo sleep 1s
                    sleep 1
                          
                    echo "结束进程完成"
                    
                    # JENKINS_HOME
                    cd /var/jenkins_home/workspace/test2/target
                    
                    # JENKINS_HOME
                    cp /var/jenkins_home/workspace/test2/Dockerfile /var/jenkins_home/workspace/test2/target
                    
                    # 修改文件权限  JAR_NAME
                    chmod 755 School-0.0.1-SNAPSHOT.jar
                    
                    echo "看看docker能不能用"
                    docker -v
                    
                    echo "停止容器"
                    # 停止容器
                    docker stop test2
                    
                    echo "删除容器"
                    # 删除容器
                    docker rm test2
                    echo "删除镜像"
                    # 删除镜像
                    docker rmi test2
                    echo "打包镜像"
                    # 打包镜像
                    docker build -t test2 -f Dockerfile .
                    echo "运行镜像"
                    # 运行镜像
                    docker run -d -p 9999:9600 --name test2 test2
            '''
            echo '运行成功'
        }
    }
}

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79

通过ssh在其他服务器上打包(这里因为小编只需要在本机中运行使用小编没有测试,但流程就是这么个流程)

下载Publish over SSH插件,在体统配置中配置ssh连接,拉到最下面

点击保存

在代码生成器上选择这个

传jar包

传dockerfile

传Dockerfile文件,并执行shell脚本

点击生成脚本,放在之前打包那就行,比如

pipeline {
    agent any
tools{
    maven 'maven_3.8.4'
}
stages {
    stage('拉取代码') {
        steps {
            git credentialsId: '93f024b8-6456-4c98-a131-9a5ee9f42027', url: 'https://gitee.com/i-dont-recognize-you/school-page.git'
            echo '拉取成功'
        }
    }
    
    stage('执行构建') {
        steps {
        //    sh "mvn --version"
            sh "mvn clean package"
            echo '构建完成'
        }
    }
    
    stage('把jar包构建为docker镜像并运行') {
        steps {
        	sshPublisher(publishers: [sshPublisherDesc(configName: 'test', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '**/*.jar'), sshTransfer(cleanRemote: false, excludes: '', execCommand: '''docker stop test2

docker rm test2
docker rmi test2
docker build -t test2 -f Dockerfile .
docker run -d -p 9999:9600 --name test2 test2''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'test2/Dockerfile')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
echo '运行成功'
}
}
}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

下载Blue Ocean插件,会得到这样的图标

点击这个图标后会得到一个崭新的UI页面,以后的流水线工作就可以在这里面操作

完整代码(我可能以后要翻着看,所以放在最后)

pipeline {
    agent any
tools{
    maven 'maven_3.8.4'
}
stages {
    stage('拉取代码') {
        steps {
            git credentialsId: '93f024b8-6456-4c98-a131-9a5ee9f42027', url: 'https://gitee.com/i-dont-recognize-you/school-page.git'
            echo '拉取成功'
        }
    }
    
    stage('执行构建') {
        steps {
        //    sh "mvn --version"
            sh "mvn clean package"
            echo '构建完成'
        }
    }
    
    stage('把jar包构建为docker镜像并运行') {
        steps {
            sh '''#!/bin/bash
                    # 服务名称
                    SERVER_NAME=test2
                    
                    # 源jar名称,mvn打包之后,target目录下的jar包名称
                    JAR_NAME= "School-0.0.1-SNAPSHOT"
                    
                    # jenkins下的目录
                    JENKINS_HOME= "/var/jenkins_home/workspace/test2"
                    
                    # 等待三秒
                    echo sleep 3s
                    sleep 1
                    echo sleep 2s
                    sleep 1
                    echo sleep 1s
                    sleep 1
                          
                    echo "结束进程完成"
                    
                    # JENKINS_HOME
                    cd /var/jenkins_home/workspace/test2/target
                    
                    # JENKINS_HOME
                    cp /var/jenkins_home/workspace/test2/Dockerfile /var/jenkins_home/workspace/test2/target
                    
                    # 修改文件权限  JAR_NAME
                    chmod 755 School-0.0.1-SNAPSHOT.jar
                    
                    echo "看看docker能不能用"
                    docker -v
                    
                    echo "停止容器"
                    # 停止容器
                    docker stop test2
                    
                    echo "删除容器"
                    # 删除容器
                    docker rm test2
                    echo "删除镜像"
                    # 删除镜像
                    docker rmi test2
                    echo "打包镜像"
                    # 打包镜像
                    docker build -t test2 -f Dockerfile .
                    echo "运行镜像"
                    # 运行镜像
                    docker run -d -p 9999:9600 --name test2 test2
            '''
            echo '运行成功'
        }
    }
}

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78

8月12日新增 通过 Pipline script from SCM 执行 Jenkinsfile

配置参数化构建过程(字符参数)

效果是这样(这样打包镜像的时候可以根据版本号和项目名做变动)

流水线这里像这样

在项目中添加Jenkinsfile文件


这个代码和上面的大同小异,就是我简化了一下,加上了字符参数

pipeline {
    agent any
tools{
    maven 'maven_3.8.4'
}
stages {
    stage('拉取代码') {
        steps {
          git credentialsId: '93f024b8-6456-4c98-a131-9a5ee9f42027', url: 'https://gitee.com/i-dont-recognize-you/school-page.git'
            echo '拉取成功'
        }
    }
    
    stage('执行构建') {
        steps {
        //    sh "mvn --version"
          sh "mvn clean package"
            echo '构建完成'
        }
    }
    
    stage('把jar包构建为docker镜像并运行') {
        steps {
            sh '''#!/bin/bash
                    
                    # 源jar名称,mvn打包之后,target目录下的jar包名称
                    JAR_NAME=School*
                    
                    # jenkins下的目录
                    JENKINS_HOME=/var/jenkins_home/workspace/test2
                    
                    
                    cd $JENKINS_HOME/target
                    
                    cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target
                    
                    # 修改文件权限  JAR_NAME
                    chmod 755 $JAR_NAME.jar
                    
                    
                    echo "停止容器"
                    docker stop $test2
                    
                    echo "删除容器"
                    docker rm $test2
                    
                    echo "删除镜像"
                    docker rmi $test2
                    
                    echo "打包镜像"
                    docker build -t $test2:$tag .
                    
                    echo "运行镜像"
                    docker run -d -p 9999:9600 --name $test2 $test2:$tag
            '''
            echo '运行成功'
        }
    }
}

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61

之前的教程

CICD与DevOps

jenkins使用docker安装保姆级教程(面向小白教程,最新最全,全图文)2022-8-1,不会docker也没关系

使用jenkins+gitee创建docker镜像并运行

我的学习途径

27-使用pipeline自动打包Docker镜像_哔哩哔哩_bilibili

DevOps最新教程2022版 目前最好的DevOps课程

jenkins中文文档

文章知识点与官方知识档案匹配,可进一步学习相关知识

有关jenkins流水线(jenkinsfile)详解的更多相关文章

  1. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  2. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  3. 物联网MQTT协议详解 - 2

    一、什么是MQTT协议MessageQueuingTelemetryTransport:消息队列遥测传输协议。是一种基于客户端-服务端的发布/订阅模式。与HTTP一样,基于TCP/IP协议之上的通讯协议,提供有序、无损、双向连接,由IBM(蓝色巨人)发布。原理:(1)MQTT协议身份和消息格式有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分Topic,可以理解为消息的类型,订阅者订阅(Su

  4. Tcl脚本入门笔记详解(一) - 2

    TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是

  5. 【详解】Docker安装Elasticsearch7.16.1集群 - 2

    开门见山|拉取镜像dockerpullelasticsearch:7.16.1|配置存放的目录#存放配置文件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/config#存放数据的文件夹mkdir-p/opt/docker/elasticsearch/node-1/data#存放运行日志的文件夹mkdir-p/opt/docker/elasticsearch/node-1/log#存放IK分词插件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/plugins若你使用了moba,直接右键新建即可如上图所示依次类推创建

  6. 【Elasticsearch基础】Elasticsearch索引、文档以及映射操作详解 - 2

    文章目录概念索引相关操作创建索引更新副本查看索引删除索引索引的打开与关闭收缩索引索引别名查询索引别名文档相关操作新建文档查询文档更新文档删除文档映射相关操作查询文档映射创建静态映射创建索引并添加映射概念es中有三个概念要清楚,分别为索引、映射和文档(不用死记硬背,大概有个印象就可以)索引可理解为MySQL数据库;映射可理解为MySQL的表结构;文档可理解为MySQL表中的每行数据静态映射和动态映射上面已经介绍了,映射可理解为MySQL的表结构,在MySQL中,向表中插入数据是需要先创建表结构的;但在es中不必这样,可以直接插入文档,es可以根据插入的文档(数据),动态的创建映射(表结构),这就

  7. 最强Http缓存策略之强缓存和协商缓存的详解与应用实例 - 2

    HTTP缓存是指浏览器或者代理服务器将已经请求过的资源保存到本地,以便下次请求时能够直接从缓存中获取资源,从而减少网络请求次数,提高网页的加载速度和用户体验。缓存分为强缓存和协商缓存两种模式。一.强缓存强缓存是指浏览器直接从本地缓存中获取资源,而不需要向web服务器发出网络请求。这是因为浏览器在第一次请求资源时,服务器会在响应头中添加相关缓存的响应头,以表明该资源的缓存策略。常见的强缓存响应头如下所述:Cache-ControlCache-Control响应头是用于控制强制缓存和协商缓存的缓存策略。该响应头中的指令如下:max-age:指定该资源在本地缓存的最长有效时间,以秒为单位。例如:Ca

  8. IDEA 2022 创建 Spring Boot 项目详解 - 2

    如何用IDEA2022创建并初始化一个SpringBoot项目?目录如何用IDEA2022创建并初始化一个SpringBoot项目?0. 环境说明1.  创建SpringBoot项目 2.编写初始化代码0. 环境说明IDEA2022.3.1JDK1.8SpringBoot1.  创建SpringBoot项目        打开IDEA,选择NewProject创建项目。        填写项目名称、项目构建方式、jdk版本,按需要修改项目文件路径等信息。        选择springboot版本以及需要的包,此处只选择了springweb。        此处需特别注意,若你使用的是jdk1

  9. 详解Unity中的粒子系统Particle System (二) - 2

    前言上一篇我们简要讲述了粒子系统是什么,如何添加,以及基本模块的介绍,以及对于曲线和颜色编辑器的讲解。从本篇开始,我们将按照模块结构讲解下去,本篇主要讲粒子系统的主模块,该模块主要是控制粒子的初始状态和全局属性的,以下是关于该模块的介绍,请大家指正。目录前言本系列提要一、粒子系统主模块1.阅读前注意事项2.参考图3.参数讲解DurationLoopingPrewarmStartDelayStartLifetimeStartSpeed3DStartSizeStartSize3DStartRotationStartRotationFlipRotationStartColorGravityModif

  10. VMware虚拟机与本地主机进行磁盘共享(详解) - 2

    VMware虚拟机与本地主机进行磁盘共享前提虚拟机版本为Windows10(专业版,不是可能有问题)本地主机为家庭版或学生版(此版本会有问题,但有替代方式)最好是专业版VMware操作1.关闭防火墙,全部关闭。2.打开电脑属性3.点击共享-》高级共享-》权限4.如果没有everyone,就添加权限选择完全控制,然后应用确定。5.打开cmd输入lusrmgr.msc(只有专业版可以打开)如果不是专业版,可以跳过这一步。点击用户-》administrator密码要复杂密码,否则不行。推荐admaiN@1234类型的密码。设置完密码,点击属性,将禁用解开。6.如果虚拟机的windows不是专业版,可

随机推荐