这是我的背景故事,但我认为我所要求的可能适用于更广泛的场景:
我正致力于为AWS构建部署管道。使用AWS,您可以获得VM的实例ID,一旦您登录,您就会获得一个带有一些无用文本的桌面。由于EC2实例(VM)使用标记来表示每个VM的用途,因此我想在服务器上插入信息时以某种方式显示该信息。
我不是OPS的人,我不习惯打开许多远程桌面并记住每个桌面的功能。在我看来,一个可识别的明显可见符号会有很多帮助。
我有几个选项专注于设置桌面壁纸。
所有需要通过组合较小的图像进行某种大图像渲染的选项都非常费力,我想知道我是否真的遗漏了某些东西,或者没有在Google上查询正确的关键字学科。那些经常与云设置等许多虚拟机一起工作的人会怎么做?您如何快速确定虚拟机的目的或在任何地方运行?
我的问题显然是一个带有UI的操作系统,因为我需要有一个可见的,易于识别的标记。但是,如果您有命令行的解决方案,请同时分享。我虽然例如修改了PowerShell控制台状态,就像它为git status做的那样。我也专注于Windows Server操作系统,但是如果有基于unix的解决方案,请分享,也许我们可以移植这个想法。
答案 0 :(得分:1)
在针对AWS EC2实例的此主题上进行了一些实验后,我实现了关于此主题的初始第一种方法。不是很有活力,但它现在对我有用。
我从EC2实例信息中驱动图片选择(不生成)。例如,来自标签或部分名称。
然后我的CodeDepploy包将修改位于AppData文件夹中的Ec2Wallpaper.jpg
以供预期用户使用。例如,管理员C:\Users\Administrator\AppData\Local\Ec2Wallpaper.jpg
。我这样做是因为在分析了EC2实例上发生的事情之后,我意识到我的代码与来自EC2Launch
的代码之间会发生争执。因此,由于AWS的模块EC2Launch
已经完成了它的工作,并设置了增强了一些额外信息的壁纸,我选择修改原始图片并让它做到这一点。工作
# This is the original wallpaper for the Administrator user that the EC2Launch tries to modify (Windows Server 2016) upon logon
$originalEC2WallpaperPath="C:\Users\Administrator\AppData\Local\Ec2Wallpaper.jpg"
Write-Debug "originalEC2WallpaperPath=$originalEC2WallpaperPath"
if(Test-Path $originalEC2WallpaperPath)
{
# Script that will decides which wallpaper to use and returns it's item back
# Need to decide on location.
$getWallPaperItemPath=Join-Path -Path $PSScriptRoot -ChildPath "Get-WallpaperItem.ps1"
Write-Debug "getWallPaperItemPath=$getWallPaperItemPath"
# Execute the Get-WallpaperItem.ps1
$wallPaperItem=& $getWallPaperItemPath
if($wallPaperItem)
{
Copy-Item -Path $originalEC2WallpaperPath -Destination "$($originalEC2WallpaperPath).bak"
Write-Verbose "Copied $originalEC2WallpaperPath to $($originalEC2WallpaperPath).bak"
Copy-Item -Path $wallPaperItem.FullName -Destination $originalEC2WallpaperPath -Force
Write-Verbose "Copied $($wallPaperItem.FullName) to $originalEC2WallpaperPath"
}
else
{
Write-Warning "$getWallPaperItemPath returned a null item"
}
}
else
{
Write-Debug "$originalEC2WallpaperPath doesn't exist. Not supported changing the wallpaper via EC2Launch"
}
请注意,Get-WallpaperItem.ps1
是负责决定使用哪个墙纸并将有效的powershell项返回到脚本的脚本。 Get-WallpaperItem.ps1
可以使用EC2的名称,标签或其他信息来决定从预定列表中使用哪张图片,或以某种方式生成图片。
我最初的问题是解决更多动态部分,这对我来说仍然是一种增强。此时最好的选择是使用ImageMagick将预渲染图片和动态图片从文本整理到画布中。