AWS上传私有windows server2019镜像64位

一.制作自己的镜像

我使用的是esxi,建立一个windows虚拟机,开启。

根据aws官方文档,虚拟机里的系统重要需要注意以下几点:

1.只有一张网卡,ip获取配置成dhcp。

2.关闭系统防火墙。

3.开启windows rdp 远程功能。

详细的查看下面链接:

https://docs.aws.amazon.com/zh_cn/vm-import/latest/userguide/prerequisites.html

二.关闭虚拟机,导出镜像

我使用的是vmdk,实际需要的只是vmdk文件。

三.aws操作

镜像文件上传至S3。

存储桶必须要和你创建的实例同一个区域。
S3不需要公开访问,后面导入镜像的时候可以选择文件路径或者文件地址,选择路径即可。
根据自己的情况把vmdk文件上传到S3中,S3桶不要加密。
vmdk文件名不要带空格,如果带空格在通过界面导入时会报错。

IAM创建角色

角色名称:vmimport(必须叫这个名字),选自定义信任策略,策略选json,复制过去即可。

{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": { "Service": "vmie.amazonaws.com" },"Action": "sts:AssumeRole","Condition": {"StringEquals":{"sts:Externalid": "vmimport"}}}]
}

IAM创建策略

策略名vmimport,策略规则复制即可(修改下面策略中的"test-test"为自己的S3桶名):

{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Action": ["s3:GetBucketLocation","s3:GetObject","s3:ListBucket"],"Resource": ["arn:aws:s3:::test-test","arn:aws:s3:::test-test/*"]},{"Effect": "Allow","Action": ["s3:GetBucketLocation","s3:GetObject","s3:ListBucket","s3:PutObject","s3:GetBucketAcl"],"Resource": ["arn:aws:s3:::test-test","arn:aws:s3:::test-test/*"]},{"Effect": "Allow","Action": ["ec2:ModifySnapshotAttribute","ec2:CopySnapshot","ec2:RegisterImage","ec2:Describe*"],"Resource": "*"}]
}

IAM角色关联策略

选择角色,选中vmimport,添加权限-附加策略,选择刚刚创建的策略vmimport,确定即可。

导入镜像

导入镜像有两种方式,一种是通过EC2 Image Builder 界面导入,一种是通过aws cli。
作者比较推荐使用aws cli的方式,因为cli可以通过命令关注到导入进度,并且报错能看到具体的报错内容,界面有时候就不行。

下面两种方式都介绍下:

EC2 Image Builder 导入

AWS进入EC2 Image Builder菜单–镜像–导入镜像(右侧)
名称–随意 版本–随意
镜像操作系统----windows
操作系统版本----Windows Server 2019
导入来源—S3 bucket 浏览S3 找到自己的vmdk文件
IAM角色—vmimport
导入镜像
没报错的话,等待导入完成即可在AMI里看到AMI文件。

AWS Cli 导入

安装Cli

参考官方文档

https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/install-cliv2.html

AWS Cli配置

aws configure

输入用户的Access Key ID和 Secret Access Key,region与你实例和S3保持一致,其他默认。

创建json文件

在本地上创建一个json文件
Description随意填写
Format填写vmdk
S3Bucket填写自己的bucket名称
S3Key填写vmdk路径(相对路径)

 [{"Description": "Windows Server 2019","Format": "vmdk","UserBucket": {"S3Bucket": "test","S3Key": "xxx.vmdk"}}
]

导入镜像

执行下面导入镜像的命令,修改–disk-containers后面的json文件路径。

windows: file://D:\xxx.json
linux: file:///root/xxx.json

aws ec2 import-image --description “windows server 2019” --disk-containers “file:///root/xxx.json”

检查镜像导入情况

上面命令输出的结果中,有一个import-task-id,复制上面的值到下面命令的xxxx中,可以查询进度,等待StatusMessage字段显示complete代表导入完成,可以在ami中看到了。

aws ec2 describe-import-image-tasks --import-task-ids xxxx

创建ec2实例,初始化系统

根据导入完成的ami,创建ec2实例,安全组需要开放实例的3389到客户端IP,因为目前只能通过RDP远程登录。
填上自己之前设置的windows密码,安装ec2launch。
打开powershell 执行:

mkdir $env:USERPROFILE\Desktop\EC2Launchv2
$Url = "https://s3.amazonaws.com/amazon-ec2launch-v2/windows/amd64/latest/AmazonEC2Launch.msi" 
$DownloadFile = "$env:USERPROFILE\Desktop\EC2Launchv2\" + $(Split-Path -Path $Url -Leaf)
Invoke-WebRequest -Uri $Url -OutFile $DownloadFile
msiexec /i "$DownloadFile"   #这里要看下面任务栏跳出的安装界面,选择Default Configuration

安装完后,打开ec2luanch,一般默认配置(每个配置的含义看下面链接),先点save,再点shutdown with sysprep。

https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/WindowsGuide/ec2launch-v2-settings.html

sysprep是用于初始化封装系统,想详细了解可以百度。
等待系统自动关机。

通过ec2实例创建AMI

建议这种方式:
进入实例,选择操作,选择映像和模板,选择创建映像。
这时等待ami完成即可,会同时生成snapshot和ami。
此时,这个最新的AMI就是最新的系统。
以后实例都可以通过这个AMI创建。
注意:创建实例一定要关联密钥,不然获取不到密码,无法登录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/34593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS开发-WebRTC本地直播高分辨率不显示画面问题

iOS开发-WebRTC本地直播高分辨率不显示画面问题 在之前使用WebRTC结合ossrs进行推流时候,ossrs的播放端无法看到高分辨率画面问题。根据这个问题,找到了解决方案。 一、WebRTC是什么 WebRTC是什么呢? WebRTC (Web Real-Time Communicatio…

【ES】笔记-函数参数默认值

函数参数默认值 ES6 允许给函数参数赋值初始值 1. 形参初始值 具有默认值的参数,一般放到最后 function add(a,b,c10){return abc}let resultadd(1,2);console.log(result);2. 与解构赋值结合 function connect({host"127.0.0.1",username,password,port…

FlinkCDC能读取到快照,但是无法输出更新数据

FlinkCDC能读取到快照,但是无法输出更新数据 发现是并行度问题,当我的并行度超过1的时候就无法捕获更新。 public static void main(String[] args) throws Exception {System.setProperty("HADOOP_USER_NAME", "lcq");Configurati…

python selenium如何保存网站的cookie用于下次自动登录

## 一、python selenium如何保存网站的cookie 使用Selenium保存网站的Cookie非常简单。下面是一个示例,展示了如何使用Selenium打开网站,然后保存获取到的Cookie: from selenium import webdriver# 初始化浏览器 browser webdriver.Chrome…

数据结构与算法-数组(附阿里面试题)

一 面试经典: 给你一个文件里面包含全国人民(14亿)的年龄数据(0~180),现在要你统计每一个年龄 有多少人? 给定机器为 单台2CPU2G内存。不得使用现成的容器,比如map等。&am…

多个 Github 账户访问 Github

文章目录 多个 Github 账户访问 Github背景步骤 参考 多个 Github 账户访问 Github 背景 如果我想在这台电脑上同时使用两个 Github 账号怎么办呢? 你主机上的 SSH 公钥只能标识出一个账号。如果需要使用另外一个git账号,访问仓库,你需要创…

Java基础篇--String 类

Java中的String类是用于处理字符串的核心类之一。它属于Java的标准库,并提供了许多操作字符串的方法。 String类是不可变的,这意味着一旦创建了一个String对象,它的值就不能被改变。当对字符串进行操作时,实际上是创建了一个新的…

【博客695】k8s subPathExpr作用

k8s subPathExpr作用 场景: 对于一个deployment或者job拉起的服务,所有pod都是一样的配置,如果都挂载了宿主机的同一个目录,那么就会互相干扰,我们希望挂载相同目录,且在这个目录下,每个pod建立…

“深入理解JVM:Java虚拟机的工作原理揭秘“

标题:深入理解JVM:Java虚拟机的工作原理揭秘 摘要:本文将深入解析Java虚拟机(JVM)的工作原理,包括JVM的组成部分、类加载过程、运行时数据区域、垃圾回收机制等。通过详细的代码示例,帮助读者更…

考虑分布式电源的配电网无功优化问题研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

React Router 6

1.概述 React Router 以三个不同的包发布到 npm 上,它们分别为: react-router: 路由的核心库,提供了很多的:组件、钩子。 react-router-dom: 包含react-router所有内容,并添加一些专门用于 DOM 的组件,例如…

算法练习Day43|● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ

LeetCode:518. 零钱兑换 II 518. 零钱兑换 II - 力扣(LeetCode) 1.思路 求组合数,先遍历物品再遍历背包,dp[]数组累加即可。 2.代码实现 1class Solution {2 public int change(int amount, int[] coins) {34 int[…

Shell编程之条件测试、if语句、case语句

条件语句 一、条件测试1.1 测试命令1.1 文件测试1.2 整数比较1.3 字符串比较1.4 逻辑测试1.4.1 逻辑与 &&1.4.2 逻辑或 || 1.4.3 组合应用1.5 多个命令组合执行 ( ) { } 二、if语句2.1单分支结构2.2 多分支结构2.4 if语句练习2.4.1 单分支2.4.2 简单的交互式分数反馈 三…

Qt 编译程序打包依赖库

windows环境 使用windeployqt.exe 打包 # 进入exe目录,执行windeployqt命令,注意Qt的安装目录 D:\Qt\Qt5.9.6\5.9.6\mingw53_32\bin\windeployqt.exe my.exelinux环境 使用ldd命令打包 #!/bin/bash LibDir$PWD"/lib" Tag$1 lib_array($(ld…

使用 Flask 部署 Next.js

原文 使用 Flask 部署 Next.js Flask 和 Next.js 是两个独特的开源 Web 框架,分别构建在 Python 和 JavaScript 编程语言之上。 您可以在没有 Next.js 的情况下构建 Flask 应用程序,也可以在没有 Flask 的情况下构建 Next.js 应用程序。但是&#xff0…

ubuntu切换python版本

在没有安装类似anoconda的管理工具的时候,我们常常会被Ubuntu下的Python版本切换问题所头疼。 可以使用update-alternatives工具进行python版本的任意切换 当使用update-alternatives工具来切换Ubuntu系统上的Python版本时,您实际上是在系统范围内选择…

PyTorch翻译官网教程-NLP FROM SCRATCH: CLASSIFYING NAMES WITH A CHARACTER-LEVEL RNN

官网链接 NLP From Scratch: Classifying Names with a Character-Level RNN — PyTorch Tutorials 2.0.1cu117 documentation 使用CHARACTER-LEVEL RNN 对名字分类 我们将建立和训练一个基本的字符级递归神经网络(RNN)来分类单词。本教程以及另外两个“from scratch”的自然…

【国赛清单】2023全国大学生电赛综合测试【总结】

综合测评简介 (1)综合测评是全国大学生电子设计竞赛评审工作中非常重要的一个环节,是“一次竞赛二级评审”工作中全国专家组评审工作的一部分。 (2)测试对象为赛区推荐上报全国评奖的优秀参赛队全体队员,…

轻松转换TS视频为MP4,实现优质视频剪辑体验

如果你是一个视频剪辑爱好者,你一定会遇到各种视频格式之间的转换问题,特别是将TS视频转换为MP4格式。别担心,我们的视频剪辑软件将为你提供最简单、高效的解决方案! 首先第一步,我们要进入媒体梦工厂主页面&#xff…

Elasticsearch同时使用should和must

问题及解决方法 must和should组合查询,should失效。使用must嵌套查询,将should组成的bool查询包含在其中一个must查询中。 SearchRequest request new SearchRequest(); request.indices("function_log");SearchSourceBuilder sourceBuilde…