zoukankan      html  css  js  c++  java
  • 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[0].name
    <# 输出内容
    vm1
    #>
    # 取值2
    $VMS[0].name + "" + $VMS[0].ip
    <# 输出内容
    vm1:10.0.0.1
    #>
    # 这里可以看出来,Import-CSV的时候把符合条件的文件导入为一个组数对象,然后首行的为对象的参数名,下面行的为值,每行为一个,有多行,就有多个,而这里可以使用$VMS[0]这个下标来获取相关的对象
    # 可以用一个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) # 遍历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整个目录扔到你的用户文档WindowsPowerShellModules下,运行这个

    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...

  • 相关阅读:
    Web项目的WEB-INF目录使用说明以及重定向与转发
    HTTP中的重定向和请求转发的区别
    001杰信-创建MyEclipse与maven项目
    009Maven_建立私服——报错问题
    008Maven_建立私服
    007Maven_在Myeclipse创建web项目
    006Maven_在Myeclipse创建java项目
    005Maven_Myeclipse和Maven整合
    微服务架构下分布式事务方案
    推荐:Java性能优化系列集锦
  • 原文地址:https://www.cnblogs.com/xddsq/p/10652055.html
Copyright © 2011-2022 走看看