首页 > 系统相关 >【VMware vSAN】vSAN Data Protection Part 4:脚本部署。

【VMware vSAN】vSAN Data Protection Part 4:脚本部署。

时间:2024-07-05 10:52:54浏览次数:18  
标签:ovfconfig Part local Appliance Value Protection vSAN VMware

之前“vSAN Data Protection Part 1:安装部署。”这篇文章介绍了如何通过手动导入 OVA 模板并部署 VMware Snapshot Service Appliance 设备,还补充了安装过程中对于配置应该注意的一些事项。其实,我们也可以通过脚本自动化部署这一过程,这里使用了 VMware 工程师 William Lam 的 PowerCLI 脚本文件 deploy_vsan_data_protection_ova.ps1 ,下面是脚本的全部内容。

# vSAN DP OVA Path
$vsanDPOVA = "/Volumes/software/VMware OVA/snapservice_appliance-8.0.3.0-24057802_OVF10.ova"

# Deployment Configuration
$vsanDPVMName = "snap.primp-industries.local"
$vsanDPCluster = "Supermicro-Cluster"
$vsanDPDatastore = "sm-vsanDatastore"
$vsanDPVMNetwork = "Management"

# OVF Property Values
$vsanDPRootPassword = "VMware1!VMware1!"
$vsanDPHostname = "snap.primp-industries.local"
$vsanDPIPAddress = "192.168.30.96"
$vsanDPPrefix = "24"
$vsanDPGateway = "192.168.30.1"
$vsanDPDNS = "192.168.30.2"
$vsanDPDNSDomain = "primp-industries.local"
$vsanDPDNSSearch = "primp-industries.local"
$vsanDPvCenterServer = "vcsa.primp-industries.local"
$vsanDPvCenterServerUsername = "[email protected]"
$vsanDPvCenterServerPassword = "VMware1!"
$vsanDPvCenterServerSSODomain = "vsphere.local"

#### DO NOT EDIT BEYOND HERE

# https://gist.github.com/jstangroome/5945820
Function Get-VCCertificate {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [string]
        $ComputerName,
        [int]
        $Port = 443
    )

    $Certificate = $null
    $TcpClient = New-Object -TypeName System.Net.Sockets.TcpClient
    try {

        $TcpClient.Connect($ComputerName, $Port)
        $TcpStream = $TcpClient.GetStream()

        $Callback = { param($sender, $cert, $chain, $errors) return $true }

        $SslStream = New-Object -TypeName System.Net.Security.SslStream -ArgumentList @($TcpStream, $true, $Callback)
        try {
            $SslStream.AuthenticateAsClient('')
            $Certificate = $SslStream.RemoteCertificate
        } finally {
            $SslStream.Dispose()
        }
    } finally {
        $TcpClient.Dispose()
    }

    if ($Certificate) {
        if ($Certificate -isnot [System.Security.Cryptography.X509Certificates.X509Certificate2]) {
            $Certificate = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Certificate2 -ArgumentList $Certificate
        }
        return $Certificate
    }
}

# Get vCenter Server TLS Certificate
$cert = Get-VCCertificate -ComputerName $vsanDPvCenterServer
$vccert = "-----BEGIN CERTIFICATE-----" + $([System.Convert]::ToBase64String($cert.GetRawCertData()))+ "-----END CERTIFICATE-----"

$ovfconfig = Get-OvfConfiguration $vsanDPOVA
$ovfconfig.Common.vami.hostname.Value = $vsanDPHostname
$ovfconfig.Common.varoot_password.Value = $vsanDPRootPassword
$ovfconfig.NetworkMapping.Network_1.Value = $vsanDPVMNetwork
$ovfconfig.vami.VMware_SnapshotService_Appliance.addrfamily.Value = "ipv4"
$ovfconfig.vami.VMware_SnapshotService_Appliance.ip0.Value = $vsanDPIPAddress
$ovfconfig.vami.VMware_SnapshotService_Appliance.prefix0.Value = $vsanDPPrefix
$ovfconfig.vami.VMware_SnapshotService_Appliance.gateway.Value = $vsanDPGateway
$ovfconfig.vami.VMware_SnapshotService_Appliance.dns.Value = $vsanDPDNS
$ovfconfig.vami.VMware_SnapshotService_Appliance.domain.Value = $vsanDPDNSDomain
$ovfconfig.vami.VMware_SnapshotService_Appliance.searchpath.Value = $vsanDPDNSSearch
$ovfconfig.vcenter.VMware_SnapshotService_Appliance.hostname.Value = $vsanDPvCenterServer
$ovfconfig.vcenter.VMware_SnapshotService_Appliance.vcusername.Value = $vsanDPvCenterServerUsername
$ovfconfig.vcenter.VMware_SnapshotService_Appliance.vcuserpassword.Value = $vsanDPvCenterServerPassword
$ovfconfig.vcenter.VMware_SnapshotService_Appliance.vcdomain.Value = $vsanDPvCenterServerSSODomain
$ovfconfig.vcenter.VMware_SnapshotService_Appliance.vccert.Value = $vccert

$VMHost = Get-Cluster $vsanDPCluster| Get-VMHost | Select -first 1

Write-Host -ForegroundColor Green  "Deploying vSAN Data Protection VM ..."
$vm = Import-VApp -Source $vsanDPOVA -OvfConfiguration $ovfconfig -Name $vsanDPVMName -Location $vsanDPCluster -VMHost $VMHost -Datastore $vsanDPDatastore -DiskStorageFormat thin -Force

Write-Host -ForegroundColor Green "Powering on vSAN Data Protection $vsanDPVMName ..."
$vm | Start-VM -Confirm:$false | Out-Null

脚本中以下内容需要修改为自己当前环境中的实际信息,与手动部署 OVA 模板时相关配置的一样,需要提前在脚本里预定义这些信息。

  • 配置虚拟机部署的 OVA 模板文件所在的位置。
# vSAN DP OVA Path
$vsanDPOVA = "D:\System\VMware\VMware vSAN\snapservice_appliance-8.0.3.0-24057802_OVF10.ova"
  • 配置虚拟机名称、所部署的集群、所使用的存储和网络。
# Deployment Configuration
$vsanDPVMName = "snap.mulab.local"
$vsanDPCluster = "vsan8-hci-esa"
$vsanDPDatastore = "vsanDatastore"
$vsanDPVMNetwork = "VM Network"
  • 配置虚拟机 Root 密码、主机名以及网络相关信息,连接 vCenter Server 的地址、用户名和密码等。注意,无需配置证书信息。
# OVF Property Values
$vsanDPRootPassword = "vSphere8@password"
$vsanDPHostname = "snap.mulab.local"
$vsanDPIPAddress = "192.168.32.13"
$vsanDPPrefix = "24"
$vsanDPGateway = "192.168.32.254"
$vsanDPDNS = "192.168.32.3"
$vsanDPDNSDomain = "mulab.local"
$vsanDPDNSSearch = "mulab.local"
$vsanDPvCenterServer = "vcsa8-01.mulab.local"
$vsanDPvCenterServerUsername = "[email protected]"
$vsanDPvCenterServerPassword = "vSphere8@password"
$vsanDPvCenterServerSSODomain = "vsphere.local"

准备好自动化部署脚本以后,现在您可以在你的环境中运行它。注意,请确保你已经安装了 PowerCLI 环境,这是运行脚本的前提条件。

1.打开 PowerShell 并进入脚本所在文件夹。

cd "C:\Users\JUNIOR_MU\Desktop\snap"

2.使用 PowerCLI 命令连接到 vCenter Server。

Connect-VIServer vcsa8-02.mulab.local -user [email protected] -password vSphere8@password

3.运行自动化部署脚本。

.\deploy_vsan_data_protection_ova.ps1

脚本运行后,如果一切顺利,登录 vSphere Client 可以看到已部署完成的虚拟机。

等待片刻后,登录到 vcsa8-01.mulab.local,如果所有配置都正确,您应该会在 vSphere Client 中看到一个通知横幅并显示“已成功部署插件......”。只需通过刷新浏览器即可访问新的 vSAN Data Protection 视图,请导航到已启用 vSAN ESA 的集群->配置->vSAN->数据保护。可以导航到vSphere Client->系统管理->解决方案->客户端插件,点击“VMware vSAN Snapshot manager UI Plugin”查看已注册的插件。

标签:ovfconfig,Part,local,Appliance,Value,Protection,vSAN,VMware
From: https://www.cnblogs.com/juniormu/p/18284264

相关文章

  • 「代码随想录算法训练营」第三天 | 链表 part1
    203.移除链表元素题目链接:https://leetcode.cn/problems/remove-linked-list-elements/题目难度:简单文章讲解:https://programmercarl.com/0203.移除链表元素.html视频讲解:https://www.bilibili.com/video/BV18B4y1s7R9题目状态:通过个人思路:从链表头部开始依次往下遍历,当......
  • 「代码随想录算法训练营」第二天 | 数组 part2
    977.有序数组的平方题目建议:本题关键在于理解双指针思想题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/题目难度:简单文章讲解:https://programmercarl.com/0977.有序数组的平方.html视频讲解:https://www.bilibili.com/video/BV1QB4y1D7ep题目状态:通过......
  • 【VMware vSAN】vSAN Data Protection Part 3:模拟故障。
    前面文章“vSANDataProtectionPart1:安装部署。”和“vSANDataProtectionPart2:配置管理。”了解了OVA虚拟机的部署以及vSANDataProtection功能的使用,这篇文章继续了解当vSANDataProtection出现一些故障后会发生什么,在进行运维和监控的时候应该关注和考虑那些事情......
  • 【VMware vSAN】vSAN Data Protection Part 2:配置管理。
    上篇文章“vSANDataProtectionPart1:安装部署。”介绍了如何安装及部署VMwareSnapshotServiceAppliance设备,并在vSANESA集群中启用vSANDataProtection功能。这篇文章继续了解vSANDataProtection相关功能的配置与管理。登录vSphereClient管理界面,您可以导......
  • springboot的MultipartFile转File读取
    在SpringBoot中,处理文件上传时,MultipartFile接口被用来封装上传的文件信息。如果需要将MultipartFile转换为Java标准的File对象进行读取。以下是具体的操作流程:1.创建临时文件        首先,需要将接收到的MultipartFile对象转换为一个临时File对象。      ......
  • VSAN数据迁移中硬盘离线
    服务器数据恢复环境:有4台服务器节点组成的VSAN集群;每台服务器节点上有两个磁盘组;每个磁盘组由一块SSD硬盘+6块SAS硬盘组成。服务器故障检测分析:一台服务器一块硬盘因故障离线,VSAN开始数据迁移,在迁移还没有完成的时候机房停电。重启后发现另一台服务器上的两块硬盘也因故障离线,......
  • 【VMware vSAN】vSAN Data Protection Part 1:安装部署。
    VMwarevSAN8U3中新引入了基于vSANESA的全新vSANDataProtection功能,借助vSANDataProtection功能,您可以使用在vSAN集群本地存储的本机快照,快速从操作故障或勒索软件攻击中恢复虚拟机。它使用本机vSAN 快照来捕获虚拟机的当前状态。可以使用vSAN快照将虚拟机还......
  • 第二十六天 第七章 回溯算法 part04 491.递增子序列 46.全排列 47.全排列 II
    491.递增子序列将其看作一个二叉树,可以知道,在二叉树每层中,不能取相同的元素。这题最主要要理解这个点。使用unordered_set对其进行降重。classSolution{public:vector<vector<int>>res;vector<int>cur;voidbacktracking(vector<int>&nums,intindex){......
  • PART1-Oracle关系数据结构
    2.Oracle关系数据结构2.1.表和表簇2.1.1.模式对象简介数据库模式是数据结构的逻辑容器,这些数据结构称为模式对象。模式对象的例子有表和索引。模式对象是通过SQL创建和操作的。一个数据库用户拥有密码和各种数据库权限。每个用户拥有一个与其同名的模式。模式包含了属于......
  • PART0-Oracle数据库介绍
    1.Oracle数据库介绍1.1.关于关系型的数据库每个组织都有必须存储和管理的信息,以满足其需求。例如,公司必须收集和维护员工的人力资源记录。这些信息必须对需要它的人可用。信息系统是一个用于存储和处理信息的正式系统。信息系统可以是一组包含文件夹的纸箱,以及存储和检索文件......