powercli 学习随笔
powercli就不多介绍了,基于powershell的好东西,可以百度
#PowerShell基本语法
# 注释
<# .... #> 多行注释
$VAR 所有变量的声明或者使用都需要加上$
| 管道符,powershell拿到的都是对象,所以基于对象的传递和使用,请自行学习
$_ 当前对象,类似于某个语言的this,写错请纠正
#基本命令,随时补充
Get-command COMMAND_PART_NAME # 查找与参数相关的命令,可以使用通配符
help COMMAND_NAME # 查看帮助文档
$PSVersionTable # powershell版本信息,后续版本会弃用,建议用Get-Module
Get-Module # 查看已加载的模块及版本,如果有但没使用过,可能不显示
Get-Content FILE_PATH # 读取文件,并转成对象
Import-CSV # 导入csv文件
#关于PowerShell对象的理解
<#
自己很白话很粗浅的理解,如能帮助理解,纯属意外
用Import-csv来做演示,比如我有一个vms.csv,一共2列4行,第一列是name和ip,第2到4列分别是3台连接的虚拟机名和对应的ip
#>
# vms.csv
name,ip
vm1,10.0.0.1
vm2,10.0.0.2
vm3,10.0.0.3
# 说下这些数据的用途,有时候批量克虚拟机的时候,需要指定名字和IP,这个文件就是用来做定义的,省得写循环了
# 如何读取这个csv文件,并使用里面的数据呢
# 以下使用powershell终端
$VMS = Import-csv vms.csv # 引入csv文件,并赋值给$VMS
$VMS
<# 输出内容
name ip
------ --
vm1 10.0.0.1
vm2 10.0.0.2
vm3 10.0.0.3
这里显示的就不是用逗号分隔的了,而是以这种表格形式展示的对象
#>
# 取值
$VMS[].name
<# 输出内容
vm1
#>
# 取值2
$VMS[].name + ":" + $VMS[].ip
<# 输出内容
vm1:10.0.0.1
#>
# 这里可以看出来,Import-CSV的时候把符合条件的文件导入为一个组数对象,然后首行的为对象的参数名,下面行的为值,每行为一个,有多行,就有多个,而这里可以使用$VMS[]这个下标来获取相关的对象
# 可以用一个foreach语言把所有数据全部取出来
foreach($VM in $VMS){
$VM.name + ":" + $VM.ip
}
<# 输出内容
vm1:10.0.0.1
vm2:10.0.0.2
vm3:10.0.0.3
#>
#安装PowerCLI,的PowerShell终端中操作,以下全是PowerShell 5.1环境下使用的
$PSVersionTable # 查看PowerShell版本,最好是5.1的,不是的话自己去升级吧
Install-Module -Name VMware.PowerCLI # 安装
Set-ExecutionPolicy RemoteSigned # 修改脚本执行权限为RemoteSigned
#基本命令
connect-viserver SERVER_NAME -USER USER_NAME -PASSWORD PASSWORD # 连接vcsa、esxi
get-vm # 获取虚拟机
new-vm # 新建虚拟机
#简单批量克隆
foreach($n in ..) # 遍历1-10
{
new-vm -name vm$n -template temp1 -resourcepool resources -datastore datastore
}
#安装模块
起因有个需求,测试环境,旧集群集群迁到新集群。
想写个脚本,一批一批的把某个集群下的虚拟机关机,取消注册,在另外一套集群中启起来。
不要跟我说什么跨vcenter的迁移,独立sso安装,历史原因。
思路1:
按主机,一台上去关虚拟机-->取消注册-->去新集群-->找到存储-->找到相关目录-->注册虚拟机-->开机
思路2:
依次把主机从A vcenter直接加到B vcenter下,再做虚拟机vmotion,类似摆渡船
Get-Datastore | Search-Datastore
Search-Datastore –Datastore datastore1
找到案例,在存储里找文件,但是自己输的时候就报没有命令,后来查到需要VI-Module,下面这个git可以给powercli装modules
git clone https://github.com/rgel/PowerCLi.git
将clone下来的Vi-Module整个目录扔到你的用户文档WindowsPowerShell\Modules下,运行这个
Import-Module Vi-Module -Force -Verbose
Get-Command -module Vi-Module # 获取这个模块的命令清单,就验证一下是不是成功了
get-datastore iscsi_100G | Search-Datastore # 可以搜datastore了
参考文档:https://code.vmware.com/web/dp/tool/vmware-powercli/6.5.1
to be continue...
powercli 学习随笔的更多相关文章
- (转) 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ
特别棒的一篇文章,仍不住转一下,留着以后需要时阅读 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ
- C#程序集Assembly学习随笔(第一版)_AX
①什么是程序集?可以把程序集简单理解为你的.NET项目在编译后生成的*.exe或*.dll文件.嗯,这个确实简单了些,但我是这么理解的.详细:http://blog.csdn.net/sws8327/ ...
- Hive入门学习随笔(一)
Hive入门学习随笔(一) ===什么是Hive? 它可以来保存我们的数据,Hive的数据仓库与传统意义上的数据仓库还有区别. Hive跟传统方式是不一样的,Hive是建立在Hadoop HDFS基础 ...
- JavaScript ES6 数组新方法 学习随笔
JavaScript ES6 数组新方法 学习随笔 新建数组 var arr = [1, 2, 2, 3, 4] includes 方法 includes 查找数组有无该参数 有返回true var ...
- 64位BASM学习随笔(一)
64位BASM学习随笔(一) Delphi的BASM一直是我最喜爱的内嵌汇编语言,同C/C++的内联汇编相比,它更方便,更具灵活性,由于C/C++的内联汇编仅仅能是或插入式的汇编代码,函数花括号 ...
- typeScript学习随笔(一)
TypeScript学习随笔(一) 这么久了还不没好好学习哈这么火的ts,边学边练边记吧! 啥子是TypeScript TypeScript 是 JavaScript 的一个超集,支持 es6 标准 ...
- jquery学习随笔
转)jquery学习随笔(jquery选择器) jQuery的选择器是CSS 1-3,XPath的结合物.jQuery提取这二种查询语言最好的部分,融合后创造出了最终的jQuery表达式查询语言. ...
- Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法
☞ ░ 前往老猿Python博文目录 ░ 在前面老猿的文章中,<Python学习随笔:使用xlwings读取和操作Excel文件>.<Python学习随笔:使用xlwings读取和操 ...
- PyQt学习随笔:QTextEdit和QTextBrowser删除光标所在行内容的方法
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在使用QTextBrowser用于记录输出日志,并 ...
随机推荐
- websocket flutter
https://stackoverflow.com/questions/51077233/how-can-i-use-socket-in-flutter-app import 'dart:io'; i ...
- Linux网络属性管理
Linux网络属性管理 局域网:以太网,令牌环网 Ethernet: CSMA/CD 冲突域 广播域 MAC:Media Access Control 48bits: 24bits: 24bits: ...
- 提升node.js中使用redis的性能
问题初现 某基于node.js开发的业务系统向外提供了一个dubbo服务,提供向第三方缓存查询.设置多项业务数据并聚合操作结果.在QPS达到800时(两台虚拟机,每台机器4Core8G4node进程) ...
- 解析docker中的环境变量使用和常见问题解决
docker容器中的环境变量 docker可以为容器配置环境变量.配置的途径有两种: 在制作镜像时,通过ENV命令为镜像增加环境变量.在容器启动时使用该环境变量. 在容器启动时候,通过参数配置环境变量 ...
- CEF 支持的命令行参数
参考:https://peter.sh/experiments/chromium-command-line-switches/ List of Chromium Command Line Switch ...
- MySql 8.0 C#连接报错 MySql.Data.MySqlClient.MySqlException (0x80004005): Authentication to host '12.118.224.181' for user 'root' using method 'caching_sha2_password' failed with message: Reading from t
解决方法 在连接字符串后面加上 SslMode=None
- 20165306 Exp4 恶意代码分析
Exp4 恶意代码分析 一.实践概述 1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生 ...
- struts.xml,报错 1 c.opensymphony.xwork2.util.DomHelper
ERROR c.opensymphony.xwork2.util.DomHelper - The content of element type "action" must mat ...
- mitmproxy(中间人攻击工具)安装及使用
一.安装 执行命令,报错 pip install mitmproxy 根据提示安装vc++14后重新执行正常安装. 查看版本号: mitmproxy --version Error: mitmprox ...
- aop(execution()表达式)
execution(* com.tp.soft.service..*.*(..)) 整个表达式可以分为五个部分: 1.execution(): 表达式主体. 2.第一个*号:表示返回类型,*号表示所有 ...