在现代的各种业务系统中,时间同步很重要。现在VMware的虚拟化解决方案应用非常广泛,给ESXi宿主机一个统一准确的时间,也给客户机系统一个准确的时间。

生产环境中主机数量少的话倒是可以手动设置,但是到了十几台甚至更多,手动设置费时费力还容易出错。好吧,相信你也比较懒。但是我们懒人有懒办法呀。

关于VMware PowerCLI是什么东西,以及如何安装,在 命令行操作vSphere--VMware PowerCLI安装 这篇文章里有详细介绍,此处不再叨叨啦。

原理嘛就是用PowerCLI连接到VC上边去,给ESXi下发配置并配置重启ntp,ESXi所有的高级设置都可以设置,我发现PowerCLI真是个好东西!

好了,下面就直接丢代码出来了。下面介绍了一次性设置时间和设置NTP两种方式,各取所需。当然,都是全自动的。推荐架设内网NTP的方式。

#连接VC
$VC='192.168.xx'
$UName='administrator@vsphere.local'
$UPass='yourpass'
Connect-VIServer -Server $VC -User $UName -Password $UPass #方案一:模拟手动更改主机时间
Foreach($HostIP in Get-VMHost){
$esxcli = Get-EsxCli -VMHost $HostIP -V2
$arguments = $esxcli.system.time.set.CreateArgs()
$arguments.year = $(Get-Date -Format 'yyyy')
$arguments.month = $(Get-Date -Format 'MM')
$arguments.day = $(Get-Date -Format 'dd')
$arguments.hour = $(Get-Date -Format 'HH')-8
$arguments.min = $(Get-Date -Format 'mm')
$esxcli.system.time.set.Invoke($arguments)
}
#方案二:设置NTP(推荐)
Foreach($HostIP in Get-VMHost){
Add-VmHostNtpServer -NtpServer "120.25.115.20" -VMHost $HostIP
Add-VmHostNtpServer -NtpServer "ntp1.aliyun.com" -VMHost $HostIP
Get-VMHostService -VMHost $HostIP | where { $_.Key -eq "ntpd" } | Start-VMHostService
Get-VMHostService -VMHost $HostIP | where { $_.Key -eq "ntpd" } | Set-VMHostService -Policy "on" -Confirm:$false
}
#查询主机时间
Foreach($HostIP in Get-VMHost){
$esxcli = Get-EsxCli -VMHost $HostIP -V2
$esxcli.system.time.get.Invoke()
}

Get-VMHost获取的是当前VC下边的所有主机,作用范畴也是当前VC下边的所有主机。

步骤解读:第一个代码块是连接VC,第二个是获取你本机的当前时间设置到ESXi主机,第三个是设置NTP并重启服务与设置开机自启,第四个是查询下各主机时间。相信小伙伴们一看就懂了!

此处demo中的主机是用的IP标识的,建议使用DNS名称来区分标识主机。

使用PowerCLI给ESXi批量设置时间和配置NTP的更多相关文章

  1. redis批量设置过期时间

    Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作.代码如下: redis-cli keys &qu ...

  2. 针对永久不过期的key 批量设置过期时间

    问题需求: redis内存暴增,后来发现有很多设置永久不过期. 解决:查找出来之后针对前缀批量设置过期时间 (过期时间与开发沟通 保证服务不受影响) 来源于网上杨一的代码 正好解决了我遇到的问题 在这 ...

  3. python redis 批量设置过期key

    在使用 Redis.Codis 时,我们经常需要做一些批量操作,通过连接数据库批量对 key 进行操作: 关于未过期: 1.常有大批量的key未设置过期,导致内存一直暴增 2.rd需求 扫描出这些ke ...

  4. js 批量设置css样式

    在js中更换样式比较常见,但是批量设置比较少遇见: 但是在做就是插件时,不想额外的添加css文件(需要导入,还可能引起冲突),能批量设置就比较方便了. 以下代码是来自网上的三种方法,使用第二种最方便了 ...

  5. powershell批量设置权限

    批量设置权限 $acl=get-acl .\demo Get-ChildItem .\Documents -Recurse -Force|Set-Acl -AclObject $acl

  6. [转]android:动态创建多个按钮 及 批量设置监听

    之前投机取巧,先创建好多个按钮,再根据需要的数量进行部分隐藏,不过还是逃不过呀. 这样根本无法批量地 findId,批量地 设置监听. 所以今天还是认认真真地研究回“动态创建按钮”,终于,通过不断尝试 ...

  7. Azure PowerShell (7) 使用CSV文件批量设置Virtual Machine Endpoint

    <Windows Azure Platform 系列文章目录> 请注意: - Azure不支持增加Endpoint Range - 最多可以增加Endpoint数量为150 http:// ...

  8. 设置时间&时区

    设置时间之前要先了解一件事,时间分为系统时间与硬件时间 如果硬件时间与系统时间不相同的话,经常会发现自己写的程序时间可能对不上 首先修改硬件时间 1)修改时区 输入命令: tzselect 按照指示选 ...

  9. java classpath批量设置shell脚本

    java classpath批量设置shell脚本   注意:linux bash jar文件之间的分隔符是':'    export JAR_HOME=path to directory which ...

随机推荐

  1. ES6学习记录(一)

    Class类 Class的静态方法 类相当于实例的原型,所有在类中定义的方法,都会被实例继承.如果在一个方法前,加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态 ...

  2. 学习了武沛齐讲的Day10-完

    int       整形 int     将字符串转换为数字 x.bit_length()  ===== 当前数字的二进制,至少用n位表示 str       字符串 x.capitalize()== ...

  3. Elasticsearch 调优之 写入速度优化到极限

      基于版本: 2.x – 5.x 在 es 的默认设置,是综合考虑数据可靠性,搜索实时性,写入速度等因素的,当你离开默认设置,追求极致的写入速度时,很多是以牺牲可靠性和搜索实时性为代价的.有时候,业 ...

  4. html5文件夹上传源码

    前段时间做视频上传业务,通过网页上传视频到服务器. 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长, ...

  5. 使用webuploader实现断点续传

    核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...

  6. ICPC 2019-2020 North-Western Russia Regional Contest

    目录 Contest Info Solutions Problem A. Accurate Movement Problem B. Bad Treap Problem E. Equidistant P ...

  7. postgresql 创建索引:ERROR: operator class "gin_trgm_ops" does not exist for access method "gin"

    g_trgm is an extension, so: CREATE EXTENSION pg_trgm; If you get the following error ERROR: could no ...

  8. 快速打造自己的PHPStorm主题

    ---恢复内容开始--- 一个优雅和舒适的界面,可以增加过多写入代码的动力. Phpstorm小型的白色主题比较简陋.为了打造一个优雅和舒适的界面,我们安装一件叫Material Theme UI的插 ...

  9. awk如何传递外部变量?

    第一种: [root@master yjt]# var=1 [root@master yjt]# echo |awk -v value=$var '{print value}' 1 第二种: [roo ...

  10. AxB Proplem(大数乘法)

    描述 Redraiment碰到了一个难题,需要请你来帮忙:给你两个整数,请你计算A × B. 输入 数据的第一行是整数T(1 ≤ T ≤ 20),代表测试数据的组数. 接着有T组数据,每组数据只有一行 ...