Esxi自动化配置脚本

简介:

记录一下ESXi自动化配置脚本,脚本功能及脚本如下:

  • 创建站点名称;

  • 配置IP和vmotion IP及子网掩码

  • 配置Vlan

  • 删除默认端口组

  • 增加vSwitch

  • 设置NTP


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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#####################################################################################################################
##  $FileName: esx_conf.ps1
##  $Version: 1.2
##  $Description: Installing ESXi5, CSC customized
##                v1.1: commentaries added, TST references removed
##        v1.2: NFS volumes renamed, vmnic numbers modified
##        v1.3: Vcenter, dc and cluster deleted   
##  
#####################################################################################################################
##  $Author: 
##  $CreationDate: 13-March-2012
##  $LastModifiedDate: 21-January-2013
##  $Modified by : 
#####################################################################################################################
 
#####################################################################################################################
 
# esx_conf.ps1 # 
# NDSI ESXi Post config #
# CSC Customized 
 
# Load the VI Toolkit #
if  ( -not  ( Get-PSSnapin  Where-Object  { $_ .Name  -eq  "VMware.VimAutomation.Core" })) 
Add-PSSnapin  VMware.VimAutomation.Core } 
 
# Variables #
 
# Site trigram to be deployed /!\ NEED TO BE CONFIGURED /!\
$Site_Trigram = "SWD"
 
# FQDN or IP of ESX server /!\ NEED TO BE CONFIGURED /!\
$newhost  "10.68.114.13"
 
# ESX server vMotion IP /!\ NEED TO BE CONFIGURED /!\
$ipvmotion  "10.68.114.14"
# ESX server vMotion MASK /!\ NEED TO BE CONFIGURED /!\
$netmask0  "255.255.254.0"
# ESX server VMkernel IP 1 for NFS /!\ NEED TO BE CONFIGURED /!\
$ipnfs1  "192.168.160.177"
# ESX server VMkernel IP 2 for NFS /!\ NEED TO BE CONFIGURED /!\
$ipnfs2  "192.168.161.177"
# ESX server VMkernel MASK for NFS /!\ NEED TO BE CONFIGURED /!\
$netmask1  "255.255.255.0"
 
# NAS CTRLA Vsphere Vfiler IP 1 /!\ NEED TO BE CONFIGURED /!\
# $ipnfs3 = "192.168.162.77"
# NAS CTRLA Vsphere Vfiler IP 2 /!\ NEED TO BE CONFIGURED /!\
# $ipnfs4 = "192.168.163.77"
# NAS CTRLB Vsphere Vfiler IP 1 /!\ NEED TO BE CONFIGURED /!\
# $ipnfs5 = "192.168.162.78"
# NAS CTRLB Vpshere Vfiler IP 2 /!\ NEED TO BE CONFIGURED /!\
# $ipnfs6 = "192.168.163.78"
 
#AD server name and NAS path 
$VM01  "SWDNM500"
$VM01_PATH  "/vol/NFS_VM30_"  $VM01  "_A000000"
 
# Names need to be set on NFS DataStore
# $nfs1 = $Site_Trigram + "_NFS_VM30_" + $VM01 + "_A000000"
# $nfs2 = $Site_Trigram + "_NFS_VM31_A000001"
# $nfs3 = $Site_Trigram + "_NFS_VM30_B000000"
# $nfs4 = $Site_Trigram + "_NFS_VM31_B000001"
 
# VLAN ID need to be tagged on NFS PortGroup
$vlanid1  "3099"
$vlanid2  "3100"
$vlanid3  "3101"
 
# NTP need to be set in ESX server configuration
$ntp1  "ntp31.example.com"
$ntp2  "ntp32.example.com"
 
# Output log file
$log  "c:\esx_conf.log"
 
# start logging #
Start-Transcript  -Path  $log
 
Write-Host  "Variables :"
Write-Host
Write-Host  "Esx : "  $newhost
Write-Host
Write-Host  "IP vmotion : "  $ipvmotion
Write-Host
Write-Host  "Netmask IP vmotion : "  $netmask0
Write-Host
Write-Host  "IP NFS-VMWARE-1 : "  $ipnfs1
Write-Host
Write-Host  "IP NFS-VMWARE-2 : "  $ipnfs2
Write-Host
Write-Host  "IP nas-a1 NFS1 : "  $ipnfs3
Write-Host
Write-Host  "IP nas-a1 NFS2 : "  $ipnfs4
Write-Host
Write-Host  "IP nas-b1 NFS1 : "  $ipnfs5
Write-Host
Write-Host  "IP nas-b1 NFS2 : "  $ipnfs6
Write-Host
Write-Host  "Netmask NFS : "  $netmask1
Write-Host
Write-Host  "VLAN NFS1 : "  $vlanid1
Write-Host
Write-Host  "VLAN NFS2 : "  $vlanid2
Write-Host
Write-Host  "VLAN ISCSI : "  $vlanid3
Write-Host
Write-Host  "Datastore nas-a1 NFS1 : "  $nfs1
Write-Host
Write-Host  "Datastore nas-a1 NFS2 : "  $nfs2
Write-Host
Write-Host  "Datastore nas-b1 NFS1 : "  $nfs3
Write-Host
Write-Host  "Datastore nas-b1 NFS2 : "  $nfs4
Write-Host
 
# connect to new host #
Write-Host  "Connexion to new host : "  $newhost
Connect-VIServer  $newhost  -User root -Password passw0rd
Write-Host
 
# add vSwitch1 #
Write-Host  "Add vSwitch1"
New-VirtualSwitch  -VMHost  $newhost  -Name vSwitch1 -NumPorts 128 -Nic vmnic1,vmnic3 -Confirm: $false
Write-Host
 
# delete default Port Group #
Write-Host  "Delete default VM Network port group"
Get-VirtualPortGroup  -VMHost  $newhost  -Name  "VM Network"  Remove-VirtualPortGroup  -Confirm: $false
Write-Host
 
# add vmnic2 to vSwitch0 #
Write-Host  "Add vmnic2 to vSwitch0"
Get-VirtualSwitch  -VMHost  $newhost  -name vSwitch0 |  Set-VirtualSwitch  -Nic vmnic0,vmnic2 -confirm: $false
Write-Host
 
# add vmotion #
Write-Host  "Add vmotion port group"
New-VMHostNetworkAdapter  -VMHost  $newhost  -PortGroup VMOTION -VirtualSwitch vSwitch0 -IP  $ipvmotion  -SubnetMask  $netmask0  -VMotionEnabled: $true  -Confirm: $false
Write-Host
 
# add NFS #
Write-Host  "Add NFS1 and NFS2 port groups"
New-VMHostNetworkAdapter  -VMHost  $newhost  -PortGroup NFS-VMWARE-1 -VirtualSwitch vSwitch0 -IP  $ipnfs1  -SubnetMask  $netmask1  -Confirm: $false
New-VMHostNetworkAdapter  -VMHost  $newhost  -PortGroup NFS-VMWARE-2 -VirtualSwitch vSwitch0 -IP  $ipnfs2  -SubnetMask  $netmask1  -Confirm: $false
Write-Host
 
# configure NFS vlan id #
Write-Host  "Configure NFS1 and NFS2 vlan id"
Get-VirtualPortgroup  -VMHost  $newhost  -Name  "NFS-VMWARE-1"  Set-VirtualPortGroup  -VLanId  $vlanid1  -confirm: $false
Get-VirtualPortgroup  -VMHost  $newhost  -Name  "NFS-VMWARE-2"  Set-VirtualPortGroup  -VLanId  $vlanid2  -confirm: $false
Write-Host
 
# configure Nic Teaming #
Write-Host  "Configure Nic teaming"
Get-VirtualPortGroup  -VMHost  $newhost  -Name  "Management Network"  Get-NicTeamingPolicy  Set-NicTeamingPolicy  -MakeNicActive vmnic0 -Confirm: $false
Get-VirtualPortGroup  -VMHost  $newhost  -Name  "Management Network"  Get-NicTeamingPolicy  Set-NicTeamingPolicy  -MakeNicStandby vmnic2 -Confirm: $false
Get-VirtualPortGroup  -VMHost  $newhost  -Name  "VMOTION"  Get-NicTeamingPolicy  Set-NicTeamingPolicy  -MakeNicActive vmnic2 -Confirm: $false
Get-VirtualPortGroup  -VMHost  $newhost  -Name  "VMOTION"  Get-NicTeamingPolicy  Set-NicTeamingPolicy  -MakeNicStandby vmnic0 -Confirm: $false
Get-VirtualPortGroup  -VMHost  $newhost  -Name  "NFS-VMWARE-1"  Get-NicTeamingPolicy  Set-NicTeamingPolicy  -MakeNicActive vmnic0
Get-VirtualPortGroup  -VMHost  $newhost  -Name  "NFS-VMWARE-1"  Get-NicTeamingPolicy  Set-NicTeamingPolicy  -MakeNicStandby vmnic2 -Confirm: $false
Get-VirtualPortGroup  -VMHost  $newhost  -Name  "NFS-VMWARE-2"  Get-NicTeamingPolicy  Set-NicTeamingPolicy  -MakeNicActive vmnic2 -Confirm: $false
Get-VirtualPortGroup  -VMHost  $newhost  -Name  "NFS-VMWARE-2"  Get-NicTeamingPolicy  Set-NicTeamingPolicy  -MakeNicStandby vmnic0 -Confirm: $false
Write-Host
 
# add VM Port Group to vSwitch1 #
Write-Host  "Add VMS port group"
Get-VirtualSwitch  -VMHost  $newhost  -Name vSwitch1 |  New-VirtualPortGroup  -Name VMS -Confirm: $false
Write-Host
 
# add ISCSI Port Group to vSwitch1 #
Write-Host  "Add ISCSI port group"
Get-VirtualSwitch  -VMHost  $newhost  -Name vSwitch1 |  New-VirtualPortGroup  -Name ISCSI -Confirm: $false
Get-VirtualPortgroup  -VMHost  $newhost  -Name ISCSI |  Set-VirtualPortGroup  -VLanId  $vlanid3  -confirm: $false
Write-Host
 
# add NTP servers #
Write-Host  "Add NTP servers"
Add-VmHostNtpServer  -VMHost  $newhost  -NtpServer  $ntp1  -Confirm: $false
Add-VmHostNtpServer  -VMHost  $newhost  -NtpServer  $ntp2  -Confirm: $false
Write-Host
 
# Creation NFS datastores #
Write-Host  "Creation NFS datastores"
# New-Datastore -Nfs -VMHost $newhost -Name $nfs1 -Path $VM01_PATH -NfsHost $ipnfs3
# New-Datastore -Nfs -VMHost $newhost -Name $nfs2 -Path /vol/NFS_VM31_A000001 -NfsHost $ipnfs4
# New-Datastore -Nfs -VMHost $newhost -Name $nfs3 -Path /vol/NFS_VM30_B000000 -NfsHost $ipnfs5
# New-Datastore -Nfs -VMHost $newhost -Name $nfs4 -Path /vol/NFS_VM31_B000001 -NfsHost $ipnfs6
Write-Host
 
# end logging #
Stop-Transcript









本文转自 安安安安森  51CTO博客,原文链接:http://blog.51cto.com/smallc/1692374,如需转载请自行联系原作者
相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
目录
相关文章
|
4月前
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
920 1
|
9月前
|
安全 Linux 虚拟化
Palo Alto Cortex XSOAR 8.8 for ESXi - 安全编排、自动化和响应 (SOAR) 平台
Palo Alto Cortex XSOAR 8.8 for ESXi - 安全编排、自动化和响应 (SOAR) 平台
243 0
Palo Alto Cortex XSOAR 8.8 for ESXi - 安全编排、自动化和响应 (SOAR) 平台
|
4月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
142 4
|
3月前
|
人工智能 监控 Kubernetes
77_自动化脚本:Makefile与Airflow
在当今AI大模型时代,高效的工作流管理对于模型训练、推理和部署至关重要。随着大模型规模的不断增长和复杂度的提升,传统的手动脚本管理方式已无法满足需求。自动化脚本和工作流调度系统成为构建健壮、可重复、可扩展的LLM Pipeline的关键工具。其中,Makefile作为经典的自动化构建工具,与Airflow作为现代工作流调度平台的结合,为LLM开发团队提供了强大的工作流管理能力。
|
5月前
|
传感器 人工智能 JavaScript
Playwright实战:写UI自动化脚本,速度直接起飞
简介: 测试工程师老王因UI自动化问题深夜奋战,反映出传统测试工具的局限性。微软开源的Playwright凭借智能等待、跨域操作、移动端模拟与网络拦截等强大功能,正迅速取代Selenium,成为新一代自动化测试标准。其稳定高效的设计显著降低维护成本,助力企业构建高质量测试流程。
|
7月前
|
机器学习/深度学习 Kubernetes 监控
Kubernetes 节点故障自愈方案:结合 Node Problem Detector 与自动化脚本
本文深入探讨了Kubernetes节点故障自愈方案,结合Node Problem Detector(NPD)与自动化脚本,提供技术细节、完整代码示例及实战验证。文章分析了硬件、系统和内核层面的典型故障场景,指出现有监控体系的局限性,并提出基于NPD的实时事件捕获与自动化诊断树的改进方案。通过深度集成NPD、设计自动化修复引擎以及展示内核死锁恢复的实战案例,文章详细说明了自愈流程的实现步骤与性能优势。此外,还提供了生产环境部署指南、高可用架构设计及安全防护措施,并展望了机器学习增强故障预测和混沌工程验证的进阶优化方向。全文约1.2万字,适合希望提升Kubernetes集群稳定性的技术人员阅读。
483 1
|
7月前
|
人工智能 运维 Java
配置优化还靠拍脑袋?试试AI自动化,真香!
配置优化还靠拍脑袋?试试AI自动化,真香!
235 0
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
1094 61
自动化微信朋友圈:Python脚本实现自动发布动态
|
12月前
|
Web App开发 人工智能 JSON
AutoMouser:AI Chrome扩展程序,实时跟踪用户的浏览器操作,自动生成自动化操作脚本
AutoMouser是一款Chrome扩展程序,能够实时跟踪用户交互行为,并基于OpenAI的GPT模型自动生成Selenium测试代码,简化自动化测试流程。
849 17
AutoMouser:AI Chrome扩展程序,实时跟踪用户的浏览器操作,自动生成自动化操作脚本