Esxi自动化配置脚本

本文涉及的产品
文件存储 NAS,50GB 3个月
简介:

记录一下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,如需转载请自行联系原作者
相关实践学习
基于ECS和NAS搭建个人网盘
本场景主要介绍如何基于ECS和NAS快速搭建个人网盘。
阿里云文件存储 NAS 使用教程
阿里云文件存储(Network Attached Storage,简称NAS)是面向阿里云ECS实例、HPC和Docker的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。 产品详情:https://www.aliyun.com/product/nas
目录
相关文章
|
4天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
104 60
|
2月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
1月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
51 7
|
29天前
|
运维 Kubernetes Devops
自动化运维:从脚本到工具的演进之旅
在数字化浪潮中,自动化运维成为提升效率、保障系统稳定的关键。本文将探索自动化运维的发展脉络,从基础的Shell脚本编写到复杂的自动化工具应用,揭示这一技术变革如何重塑IT运维领域。我们将通过实际案例,展示自动化运维在简化工作流程、提高响应速度和降低人为错误中的重要作用。无论你是初学者还是资深专家,这篇文章都将为你提供宝贵的洞见和实用的技巧。
|
2月前
|
SQL 测试技术 API
如何编写API接口的自动化测试脚本
本文详细介绍了编写API自动化测试脚本的方法和最佳实践,涵盖确定测试需求、选择测试框架、编写测试脚本(如使用Postman和Python Requests库)、参数化和数据驱动测试、断言和验证、集成CI/CD、生成测试报告及维护更新等内容,旨在帮助开发者构建高效可靠的API测试体系。
|
2月前
|
运维 Devops
自动化运维:从脚本到DevOps的进化之旅
在数字化时代,自动化运维不仅是提高生产效率的关键,更是企业竞争力的象征。本文将带领读者穿越自动化运维的发展历程,从最初的脚本编写到现代DevOps文化的形成,揭示这一演变如何重塑IT行业的工作模式。通过具体案例,我们将展示自动化工具和实践如何简化复杂任务,优化流程,并促进团队协作。你将发现,自动化运维不仅关乎技术的进步,更体现了人、流程和技术三者之间协同增效的深层逻辑。
|
2月前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
2月前
|
机器学习/深度学习 人工智能 运维
自动化运维之路:从脚本到工具的演进
在IT运维领域,效率和准确性是衡量工作成效的关键指标。随着技术的发展,自动化运维逐渐成为提升这两个指标的重要手段。本文将带领读者了解自动化运维的演变历程,从最初的简单脚本编写到现今复杂的自动化工具应用,展示如何通过技术提升运维效率。文章不仅介绍理论和实践案例,还提供了代码示例,帮助读者理解自动化运维的实际应用场景。
|
2月前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
|
2月前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
88 2