首页 > 系统相关 >【VMware ESXi】使用PowerCLI脚本批量备份ESXi主机的配置文件。

【VMware ESXi】使用PowerCLI脚本批量备份ESXi主机的配置文件。

时间:2024-07-12 18:55:08浏览次数:25  
标签:配置文件 ESXi Write host PowerCLI folder backup vCenter

根据 VMware KB 2042141 知识库文章,SSH 登录到 ESXi 主机,可以使用下面的命令用于备份和还原 ESXi 主机的配置文件。但是,这个方法需要手动登录到每个 ESXi 主机,并通过浏览器链接下载配置文件,显然不是很方便。

  • 备份
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
  • 还原
vim-cmd hostsvc/maintenance_mode_enter
vim-cmd hostsvc/firmware/restore_config 0

当然还可以使用 PowerCLI 命令方法备份 ESXi 主机配置文件,这种方法相对于上面那种来说要方便一些。

  • 备份
Get-VMHostFirmware -VMHost ESXi_host_IP_address -BackupConfiguration -DestinationPath output_directory
  • 还原
Set-VMHost -VMHost ESXi_host_IP_address -State 'Maintenance'
Restart-VMHost -VMHost ESXi_host_IP_address -Confirm:$false
Set-VMHostFirmware -VMHost ESXi_host_IP_address -Restore -SourcePath backup_file -HostUser username -HostPassword password

通过 PowerCLI 方法,可以借助 PowerCLI 脚本批量备份 ESXi 主机的配置文件。这里使用了 THEDXT 制作的 vCenter_ESXi_Config_Backup.ps1 备份脚本,让我们来看看如何使用它。

# vCenter ESXi Config Backup
# Version 1.0.0
#
# Author: Daniel Keer
# Author URI: https://thedxt.ca
# Script URI: https://github.com/thedxt/VMware
#
# DESCRIPTION
# Backs up each ESXi host in vCenter
#
# EXAMPLE
# esxi-conf-backup -vcenter "vcenter.contoso.com" -folder "C:\ESXi-Backups"

# Main function
function esxi-conf-backup{
param(
[Parameter (Mandatory = $true)] [String]$vcenter,
[Parameter (Mandatory = $true)] [String]$folder,
[Parameter(Mandatory=$false)] [ValidateSet('Yes','No')] [String]$connected
)



# function to check if folder exists if not make it

function folder-check{

if (-not (Test-Path $folder))
{

write-host $folder "Does NOT exist creating it"
New-Item -ItemType Directory $folder | out-null
write-host $folder "has been created"
}else{
write-host $folder "Exists no action needed"
}

}


# Function to connect to vCenter

function connect-vcenter{

if($connected -eq "Yes"){
Write-host "Connected value is Yes."
write-host "no prompt to connect to vCenter will appear"
}else{
write-host "Connected value not set assuming vCenter is not connected."
write-host "prompting to connect to vCenter"
Connect-VIServer -Server $vcenter
}

}


# function to backup the ESXi hosts in vCenter.

function esxi-backup{



Write-host "Starting the backup process"

Write-host "Getting all the ESXi hostnames"

#get all the ESXi hostnames
$hosts = Get-VMHost | select name

#set the date format
$date = get-date -f yyyy-MMM-dd_HHmmss

#loop for each of the ESXi hosts
Foreach ($singlehost in $hosts)

{
#backup to C:\$folder
$backup = Get-VMHostFirmware -VMHost $singlehost.Name -BackupConfiguration -DestinationPath $folder
Write-host "Running backup for" $singlehost.Name

#run the backup but dont output anything to the screen
$backup | out-null
Write-host "Backup completed for" $singlehost.Name


# get the version and build number for the host
Write-host "Getting Version and Build info for" $singlehost.Name
$verinfo = Get-VMHost -Name $singlehost.Name | select Version, Build

# rename the files to have the hostname and version and build number and the date info
Write-host "Fixing the backup file name for" $singlehost.Name
Rename-Item -path $backup.Data.FullName -newname "$($backup.Host.name)_v$($verinfo.Version)_b$($verinfo.Build)_$($date).tgz"
Write-host "Everything is completed for" $singlehost.Name
Write-host "---------------------------"
}

Write-host "The backup process is completed. Backups are located in" $folder
}

#check if connect is defined if not defined assume not connected and connect
connect-vcenter

#check if the folder exists
folder-check

#run the backup
esxi-backup

#end of main function
}

注意,使用这个脚本的前提是需要安装 PowerCLI 环境以及安装 vCenter Server 的证书

1.打开 PowerShell 并进入到脚本所在的目录。

ls .\vCenter_ESXi_Config_Backup.ps1

2.运行 PowerCLI 命令连接到vCenter Server。

Connect-VIServer vcsa7-01.lab.com -user [email protected] -password VMware1@#

3.运行 PowerCLI 脚本,准备使用如下备份命令。

. .\vCenter_ESXi_Config_Backup.ps1

4.如果已经连接到 vCenter Server,运行下面命令执行配置备份。

esxi-conf-backup -vcenter "vcsa7-01.lab.com" -folder "C:\ESXi-Backup" -connected Yes

5.查看备份文件,如果上面导出的目录没有提前创建则自动创建。文件名被重命名为ESXi主机名+安装版本+内部版本号+时间戳。

ls "C:\ESXi-Backup"

6.如果没有连接到 vCenter Server,运行下面命令后输入用户名和密码执行配置备份。

esxi-conf-backup -vcenter "vcsa7-01.lab.com" -folder "C:\ESXi-Backup"

注意,执行还原过程请参阅官方 KB 文章中的方法,并按要求使用与源 ESXi 主机相同的内部版本。

标签:配置文件,ESXi,Write,host,PowerCLI,folder,backup,vCenter
From: https://www.cnblogs.com/juniormu/p/18299139

相关文章

  • 深入解析Spring Boot的application.yml配置文件
    目录引言SpringBoot配置文件简介application.yml的优点基本结构与语法YAML语法基础SpringBoot中application.yml的基本结构常见配置项详解服务器配置数据源配置日志配置其他常见配置环境配置与Profile多环境配置激活Profile高级配置与技巧属性的占位符替换自定......
  • VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS xFusion (超聚变) FusionServer 定制版
    VMwareESXi8.0U3macOSUnlocker&OEMBIOSxFusion(超聚变)FusionServer定制版ESXi8.0U3标准版,Dell(戴尔)、HPE(慧与)、Lenovo(联想)、Inspur(浪潮)、Cisco(思科)、Hitachi(日立)、Fujitsu(富士通)、NEC(日电)、Huawei(华为)、xFusion(超聚变)OEM定制版请......
  • IDEA社区版搭建Spring工程(04-加载配置文件及加解密)
    SpringMVC加载配置文件的几种方式通过context:property-placeholde实现加载配置文件在springmvc.xml配置文件里加入context相关引用<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:conte......
  • 【VMware vSphere】没有共享存储的ESXi主机之间如何共享本地存储上的ISO文件。
    当位于vCenterServer中的ESXi主机之间无共享存储,仅具有本地存储时,假如我需要安装虚拟机操作系统,那可以将操作系统ISO镜像文件上传到主机的本地文件存储内,这时在这台主机上执行安装的虚拟机只需要在虚拟机的CD/DVD光驱设备上挂载并从本地存储文件内选择需要的ISO镜像文......
  • Jenkins 配置文件管理插件 Config File Provider
    我对Jenkins的使用,很早就脱离了创建普通job然后进行各种参数配置这样的使用方式,一直以来都在使用Pipeline多分支流水线基于Groovy脚本的方式来进行构建。程序化即是可通用化,将多个需要构建的工程统一标准进行抽象,形成统一的构建模型,然后编写groovy脚本形成Jenkinsfile来构......
  • idea修改java 配置文件编码格式,验证配置项的值是否为目标编码格式
    idea修改java配置文件编码格式,验证配置项的值是否为目标编码格式实现“idea修改java配置文件编码格式”流程步骤一:打开项目配置文件首先,我们需要打开项目的配置文件,这里以使用Idea开发工具为例。步骤二:定位到配置文件找到项目目录下的src/main/resources文件夹,该文件夹一般......
  • Java工程中读取resources目录下properties文件的方式,从上图可知,当工程部署在服务器下
    Java工程中读取resources目录下properties文件的方式,从上图可知,当工程部署在服务器下时,配置文件以及代码都是在对应的classes文件夹下二、具体读取方法1、当需要读取当前路径下的properties文件时,即在本地没有部署到具体服务器上的情况:Filefile=newFile(“src/main/re......
  • Ngnix配置文件nginx.conf的文件结构
    日常,在配备ngnix文件的时候,最经常配置的文件之一就是ngnix.conf这个文件了,这一节简单学习下nginx.conf这个文件使用pwd可以查看ngnix的文件想要查看nginx.conf的命令,首先找到nginx.conf这个命令所在的位置切换到nginx.conf的路径之后,使用catnginx.conf命令可以查看conf......
  • 在Linux中,内核调优配置文件名字有哪些?举例几个内核需要优化的参数配置?
    在Linux中,内核调优涉及到对系统内核的各种参数进行优化,以适应不同的工作负载和场景。这些参数主要存储在两个地方:一个是运行时动态可调的/proc/sys目录下的文件,另一个是持久化的配置文件/etc/sysctl.conf。1.内核调优配置文件/etc/sysctl.conf:这是最常用的内核参数配置文件,用......
  • Spring 配置文件加密
    前文在某些场景下,使用Spring作为开发组件时,不可避免地需要使用到配置文件,然而,对于配置文件中的某些敏感数据(如密码等信息字段),如果使用明文的方式,则可能在一定程度上导致信息泄露。为此,需要一种有效的方式来对这些字段进行加密处理,当前主流的一种加密方式就是Jasypt基本使用......