首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Ansible配置管理vCenter及相关虚拟机

Ansible配置管理vCenter及相关虚拟机

作者头像
魏新宇
发布于 2018-04-24 06:32:59
发布于 2018-04-24 06:32:59
4.5K00
代码可运行
举报
运行总次数:0
代码可运行

Ansible支持的模块:

http://docs.ansible.com/ansible/latest/modules/modules_by_category.html

对VMware的支持:

Vmware

  • vca_fw – add remove firewall rules in a gateway in a vca
  • vca_nat – add remove nat rules in a gateway in a vca
  • vca_vapp – Manages vCloud Air vApp instances.
  • vcenter_folder – Manage folders on given datacenter
  • vcenter_license – Manage VMware vCenter license keys
  • vmware_cfg_backup – Backup / Restore / Reset ESXi host configuration
  • vmware_cluster – Manage VMware vSphere clusters
  • vmware_datacenter – Manage VMware vSphere Datacenters
  • vmware_datastore_facts – Gather facts about datastores
  • vmware_dns_config – Manage VMware ESXi DNS Configuration
  • vmware_drs_rule_facts – Gathers facts about DRS rule on the given cluster
  • vmware_dvs_host – Add or remove a host from distributed virtual switch
  • vmware_dvs_portgroup – Create or remove a Distributed vSwitch portgroup.
  • vmware_dvswitch – Create or remove a distributed vSwitch
  • vmware_guest – Manages virtual machines in vCenter
  • vmware_guest_facts – Gather facts about a single VM
  • vmware_guest_file_operation – Files operation in a VMware guest operating system without network
  • vmware_guest_find – Find the folder path(s) for a virtual machine by name or UUID
  • vmware_guest_powerstate – Manages power states of virtual machines in vCenter
  • vmware_guest_snapshot – Manages virtual machines snapshots in vCenter
  • vmware_guest_tools_wait – Wait for VMware tools to become available
  • vmware_host – Add / Remove ESXi host to / from vCenter
  • vmware_host_acceptance – Manage acceptance level of ESXi host
  • vmware_host_config_facts – Gathers facts about an ESXi host’s advance configuration information
  • vmware_host_config_manager – Manage advance configurations about an ESXi host
  • vmware_host_datastore – Manage a datastore on ESXi host
  • vmware_host_dns_facts – Gathers facts about an ESXi host’s DNS configuration information
  • vmware_host_facts – Gathers facts about remote vmware host
  • vmware_host_firewall_facts – Gathers facts about an ESXi host’s firewall configuration information
  • vmware_host_firewall_manager – Manage firewall configurations about an ESXi host
  • vmware_host_lockdown – Manage administrator permission for the local administrative account for the ESXi host
  • vmware_host_ntp – Manage NTP configurations about an ESXi host
  • vmware_host_package_facts – Gathers facts about available packages on an ESXi host
  • vmware_host_service_facts – Gathers facts about an ESXi host’s services
  • vmware_host_service_manager – Manage services on a given ESXi host
  • vmware_host_vmnic_facts – Gathers facts about vmnics available on the given ESXi host
  • vmware_local_role_manager – Manage local roles on an ESXi host
  • vmware_local_user_manager – Manage local users on an ESXi host
  • vmware_maintenancemode – Place a host into maintenance mode
  • vmware_migrate_vmk – Migrate a VMK interface from VSS to VDS
  • vmware_portgroup – Create a VMware portgroup
  • vmware_resource_pool – Add/remove resource pools to/from vCenter
  • vmware_target_canonical_facts – Return canonical (NAA) from an ESXi host
  • vmware_vm_facts – Return basic facts pertaining to a vSphere virtual machine guest
  • vmware_vm_shell – Run commands in a VMware guest operating system
  • vmware_vm_vm_drs_rule – Configure VMware DRS Affinity rule for virtual machine in given cluster
  • vmware_vm_vss_dvs_migrate – Migrates a virtual machine from a standard vswitch to distributed
  • vmware_vmkernel – Manage a VMware VMkernel Interface aka. Virtual NICs of host system.
  • vmware_vmkernel_facts – Gathers VMKernel facts about an ESXi host
  • vmware_vmkernel_ip_config – Configure the VMkernel IP Address
  • vmware_vmotion – Move a virtual machine using vMotion
  • vmware_vsan_cluster – Configure VSAN clustering on an ESXi host
  • vmware_vswitch – Add or remove a VMware Standard Switch to an ESXi host
  • vsphere_copy – Copy a file to a vCenter datastore
  • vsphere_guest **(D)** – Create/delete/manage a guest VM through VMware vSphere.

下面,我们列出8个案例,展示Ansible对VMware的管理。

1. 获取vCenter整体信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---
-  name: vmware facts from vCenter
  hosts: localhost        #指定运行playbook的服务器,一般设置为localhost
  tasks:
    - name: get all registered vms
      vmware_vm_facts:
        hostname: 172.20.16.20   #vCenter的主机名或IP地址
        username: administrator@vsphere.local  #vCenter登录名称
        password: P@ssw0rd  #vCenter登录密码
        validate_certs: False  #关闭证书认证
      register: vmfacts
    - name: print facts
      debug:
        msg: "{{vmfacts}}"

在vmfacts里面显示从vCenter中获取的所有配置相关信息。其中vmfacts返回json格式,可以根据需要过滤、筛选特定的信息。

2.通过vCenter获取单个虚拟机配置信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---
-  name: get specific facts from vcenter
  hosts: localhost
  connection: local
  tasks:
    - name: get facts from vcenter
      vsphere_guest:
        vcenter_hostname: 172.20.16.20
        username: administrator@vsphere.local
        password: P@ssw0rd
        guest: ansible_test_name #想要获取信息的虚拟机名称
        vmware_guest_facts: yes #Gather facts  from vCenter on a particular VM
        validate_certs: no
      register: facts
    - name: show msg
      debug: msg="{{facts}}"

3.通过vCenter在指定ESXi创建虚拟机

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost]#  cat 0402-vmware-create.yml
---
-  hosts: localhost
  vars_files:
    - vmware-info.yml
  tasks:
    - name: create vm from template
      vmware_guest:
        hostname:  "{{vcenter_host}}"
        username:  "{{vcenter_username}}"
        password:  "{{vcenter_password}}"
        validate_certs: no
        folder: /VMTEST
        esxi_hostname: rpo35.bxcs.com #指定esxi_name
        datacenter: DateCenter #指定datacenter
        name: ansible_test_name
        state: poweredon
        guest_id: rhel6Guest #VMware指定guest 类型,需要和https://www.vmware.com/support/developer/converter-sdk/conv55_apireference/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html保持一致。
        disk:
        - size_gb: 200
          type: thin
          datastore: BXCS_vSphere_01 #指定特定datastore
        hardware:
          memory_mb: 512
          num_cpus: 1
          scsi: paravirtual
        template: RHEL6.4-STP # 指定特定模板名称
        wait_for_ip_address: True # 等待虚拟机成功启动后继续       
      register: newvm
    - name: IP address info
      debug:
        msg: "{{newvm}}  ansible_test_name"

4.通过vCenter在Cluster创建虚拟机

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost]#  cat 0410-vmware-create.yml
---
-  hosts: localhost
  vars_files:
    - vmware-info.yml
  tasks:
    - name: create vm from template
      vmware_guest:
        hostname:  "{{vcenter_host}}"
        username:  "{{vcenter_username}}"
        password:  "{{vcenter_password}}"
        validate_certs: no
        folder: /VMTEST
        cluster: vRealize-Cluster02 # 指定cluster
        datacenter: DateCenter #datacenter
        name: ansible_test_name_01
        state: poweredon
        guest_id: rhel6Guest
        disk:
        - size_gb: 200
          type: thin
          autoselect_datastore: yes #根据模板自动选择datastore
        hardware:
          memory_mb: 512
          num_cpus: 1
          scsi: paravirtual
        template: ANSIBLE-TP01
        wait_for_ip_address: True
      register: newvm
    - name: IP address info
      debug:
        msg: "{{newvm}}  ansible_test_name"

5.通过vCenter在datastore cluster创建虚拟机

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost]#  cat check-rpm-info.yml
---
-  hosts: localhost
  vars_files:
    - vmware-info.yml
  tasks:
    - name: create vm from template
      vmware_guest:
        hostname:  "{{vcenter_host}}"
        username:  "{{vcenter_username}}"
        password:  "{{vcenter_password}}"
        validate_certs: no
        folder: /VMTEST
        esxi_hostname: rpo35.bxcs.com  #esxi_name
        datacenter: DateCenter #datacenter
        name: ansible_test_name_01
        state: poweredon
        guest_id: rhel6Guest
        disk:
        - size_gb: 200
          type: thin
          datastore: BXCS_vSphere_Cluster  #指定datastore cluster
        hardware:
          memory_mb: 512
          num_cpus: 1
          scsi: paravirtual
        template: ANSIBLE-TP01
        wait_for_ip_address: True
      register: newvm
    - name: IP address info
      debug:
        msg: "{{newvm}}  ansible_test_name"

6. 通过vCenter修改创建虚拟机的各种配置信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost]#  cat 0403-vmware-shell-ip-change.yml
---
-  hosts: localhost
  vars_files:
    - vmware-info.yml
  vars:
    vmname: "ansible_test_name"
    os_user: "root"
    os_pass: "123456"
  tasks:
    - name: change vmware via shell
      vmware_vm_shell:
        hostname:  "{{vcenter_host}}"
        username:  "{{vcenter_username}}"
        password:  "{{vcenter_password}}"
        validate_certs: no
        datacenter: DateCenter
        vm_id: "{{vmname}}"
        vm_username: "{{os_user}}"
        vm_password: "{{os_pass}}"
        vm_shell: /bin/echo
        vm_shell_args: "$VAR >  ifcfg-eth1"
        vm_shell_env:
          - "PATH=/bin"
          - 'VAR= -e
           DEVICE=eth1\nNAME=eth1\nONBOOT=yes\nBOOTPROTO=static\nIPADDR=172.20.6.150\nPREFIX=24\nGATEWAY=172.20.6.254
          '
        vm_shell_cwd:  "/etc/sysconfig/network-scripts/"
      register: vmfacts
    - name: restart network serviceof vm from  vcenter
      vmware_vm_shell:
        hostname:  "{{vcenter_host}}"
        username:  "{{vcenter_username}}"
        password:  "{{vcenter_password}}"
        validate_certs: no
        datacenter: DateCenter
        vm_id: "{{vmname}}"
        vm_username: "{{os_user}}"
        vm_password: "{{os_pass}}"
        vm_shell: /sbin/service
        vm_shell_args: "network  restart"
        vm_shell_env:
          - "PATH=/bin"
        vm_shell_cwd: "/tmp"
    - debug:
        msg: "{{vmfacts}}"

通过vm_tools将任意shell脚本注入到VMware虚拟机中,可灵活配置任意操作。

7. 通过vCenter关闭虚拟机

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost]#  cat 0404-vmware-poweroff.yml
---
-  hosts: localhost
  vars_files:
    - vmware-info.yml
  tasks:
    - name: poweroff vm
      vmware_guest:
        hostname:  "{{vcenter_host}}"
        username:  "{{vcenter_username}}"
        password:  "{{vcenter_password}}"
        validate_certs: no
        uuid:  "422746a9-f303-fa93-aed4-0bfa655b507f" # 待关闭虚拟机UUID
        name: "ansible_test_name" #待关闭虚拟机名称
        state: poweredoff
        force: yes
      delegate_to: localhost

可以实现对虚拟机如下的操作:present、absent、poweredon、poweredoff、restarted、suspended、shutdownguest、rebootguest。

8.通过vCenter创建删除管理snapshot信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost]#  cat 0405-vmware-snapshot-create.yml
---
-  hosts: localhost
  vars_files:
    - vmware-info.yml
  vars:
    vmname: "ansible_test_name"
    os_user: "root"
    os_pass: "123456"
  tasks:
    - name: create snapshot
      vmware_guest_snapshot:
        hostname:  "{{vcenter_host}}"
        username:  "{{vcenter_username}}"
        password:  "{{vcenter_password}}"
        validate_certs: no
        datacenter: DateCenter
        folder: /VMTEST
        name: ansible_test_name
        state: present
        snapshot_name:  ansible_test_snapshot_01
      register: result
    - name: show result
      shell: echo "{{result}}"


代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost]#  cat 0405-vmware-snapshot-create.yml
---
-  hosts: localhost
  vars_files:
    - vmware-info.yml
  vars:
    vmname: "ansible_test_name"
    os_user: "root"
    os_pass: "123456"
  tasks:
    - name: create snapshot
      vmware_guest_snapshot:
        hostname:  "{{vcenter_host}}"
        username:  "{{vcenter_username}}"
        password:  "{{vcenter_password}}"
        validate_certs: no
        datacenter: DateCenter
        folder: /VMTEST
        name: ansible_test_name
        state: absent
        snapshot_name: ansible_test_snapshot_01
      register: result
    - name: show result
      shell: echo "{{result}}"
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大魏分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
JavaScript之DOM
文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容。
菲宇
2019/06/13
7470
JavaScript之DOM
20.DOM
定义 文档对象模型(Document Object Model)是一种用于HTML和XML文档的编程接口。 查找元素 1.直接查找 document.getElementById 根据ID获取一个标签 document.getElementsByName 根据name属性获取标签集合 document.getElementsByClassName 根据class属性获取标签集合 document.getElementsByTagName 根据标签
zhang_derek
2018/04/11
7870
css补充、JavaScript、Dom
css补充: position: fixed:可以将标签固定在页面的某个位置 absolute+relative:通过两者的结合可以让标签在一个相对的位置 代码例子:(通过fixed标签将某些内容固定
coders
2018/01/04
1.2K0
css补充、JavaScript、Dom
JavaScript学习总结(七)
这一讲我们来学习DOM编程(十分重要),有了DOM编程,我们就可以操作任意的HTML元素了。
roobtyan
2019/02/21
5770
03 . 前端之JavaScipt
语法: splice(index,howmany,item1,.....,itemX)
iginkgo18
2020/09/27
1.6K0
03 . 前端之JavaScipt
Web前端开发JavaScript提高
JS是基于对象的(Object-Based)脚本语言,而不是面向对象(Object-Oriented)中所使用的那个对象,之所以说JS是一门基于对象的编程语言,是因为它没有提供抽象,继承,封装等面向对象语言的很多功能,而是把其他语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统.
王 瑞
2022/12/28
2.5K0
前端基础-节点操作
document.createElement() 用来生成网页元素节点,参数为元素的标签名;
cwl_java
2020/03/26
4.5K0
javaWeb技术第二篇之CSS、事件和案例
<!--内联式 CSS (层叠样式表) 编辑 层叠样式表(英文全称:Cascading Style Sheets) CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。 就是网页的美化技术。 入门:如何在html里面使用css html里面的外观命名跟css外观命名会有所有不同。但效果一致 css属性: 属性1:值1;属性2:值2;属性3:值3;... 内联式:对每个元素都进行style进行样式添加. 内部式:在当前html的head的style标签里面添加 <head> <
海仔
2019/08/15
1.3K0
前端成神之路-WebAPIs02
自定义属性目的:是为了保存并使用数据。有些数据可以保存到页面中而不用保存到数据库中。
海仔
2020/12/22
8130
前端成神之路-WebAPIs02
javascript dom学习笔记
http://blog.csdn.net/zhoulenihao/article/details/11099455
bear_fish
2018/09/19
2K0
全选,反选,对话框
全选,反选列子 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title>
Wyc
2018/09/11
1K0
全选,反选,对话框
JavaScript-Dom
JavaScript-Dom 简介 DOM:Document Object Model 节点 HTML 文档中的所有内容都是节点 整个文档是一个文档节点 每个 HTML 元素是元素节点 HTML 元素内的文本是文本节点 每个 HTML 属性是属性节点 注释是注释节点 document对象 常用属性 名称 说 明 referrer 返回载入当前文档的**URL** URL 返回当前文档的**URL** document.referrer document.URL ​ document常用方法 名称 说 明
xiaozhangStu
2023/05/04
5070
DOM 和 BOM
早起 JS操作不同浏览器的 API 没有标准,有严重兼容性问题,后来 W3C 制定了统一的操作网页内容的 API 标准 DOM,使用 DOM API 操作网页内容,几乎 100%兼容所有浏览器,它具有查找, 修改(内容,属性,样式), 添加, 删除的功能。
越陌度阡
2020/11/26
2.5K0
【JS】328- 8个你不知道的DOM功能
最近一直在关注工具,从 React 和 npm-install-everything 中休息一下,看看一些原生的 DOM 和 Web API 的功能,他们可以在没有任何依赖库的浏览器中直接运行。
pingan8787
2019/08/26
1.7K0
JavaScript---网络编程(7)-Dom模型(节点间的层次关系,节点的增、删、改)
利用节点间的层次关系获取节点: 上一节讲了3中获取的方式: * ※※一、绝对获取,获取元素的3种方式:—Element * 1、getElementById(): 通过标签中的id属性值获来取该标签对象 * 2、getElementsByName(): 通过标签中的name属性值来获取该标签对象集合 * 3、getElementsByTagName(): 通过标签名来获取该标签对象集合
谙忆
2021/01/21
9820
JavaScript---网络编程(7)-Dom模型(节点间的层次关系,节点的增、删、改)
DOM--文档对象模型
DOM中文名文档对象模型,英文名Document Object Model,我们简称为DOM,是针对html和xml文档的一种API,将html以一种树状结构呈现出来,可以更直观去研究文档结构,我们将这种树状文档结构称为--DOM树,或者节点树,一样的概念
子舒
2022/06/09
1.3K0
DOM--文档对象模型
JavaScript DOM基础
DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口)。 一.DOM介绍 DOM中的三个字母,D(文档)可以理解为整个Web加载的网页文档;O(对象)可以理解为类似window对象之类的东西,可以调用属性和方法,这里我们说的是document对象;M(模型)可以理解为网页文档的树型结构。 DOM有三个等级,分别是DOM1、DOM2、DOM3,并且DOM1在1998年10月成为W3C标准。DOM1所支持的浏览器包括IE6+、Firefox、Safa
汤高
2018/01/11
1.5K0
JS-DOM 综合练习-动态添加删除班级成绩表
费了2个小时,才把原理弄懂,把问题逐个解决,当你发现你最后栽的那个点,是一个小石头拌的你,你起来是该哭还是该笑呢?只怪自己习武不精吧。 虽然问题都解决了,但是还有一个余留的问题就是鼠标经过input时,怎么修改背景颜色的问题。 这一节有点乱,虽然整理的代码编了问题序号。可我相信,再过几天自己回头看肯定还是一头雾水。 so,附上具体问题网址:http://www.imooc.com/code/1636 以下是html整件 <!DOCTYPE html> <html> <head> <meta chars
xing.org1^
2018/05/17
4.2K0
JavaScript 前端笔记总结(精简)
JavaScript 一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型,属于网络的脚本语言,现在已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果,现在随着node.js引擎的出现,使得JavaScript逐步成为了一种全栈开发语言了.
王 瑞
2022/12/28
8K0
22.jQuery(实例)
1.开关灯效果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .hide{ display: none; } </style> </head> <body> <input id="i1" type="button" value="开关" /> <div class="c
zhang_derek
2018/04/11
1.7K0
相关推荐
JavaScript之DOM
更多 >
LV.1
算法工程师
目录
  • ?
  • Vmware
    • 下面,我们列出8个案例,展示Ansible对VMware的管理。
    • 1. 获取vCenter整体信息
    • 3.通过vCenter在指定ESXi创建虚拟机
    • 4.通过vCenter在Cluster创建虚拟机
    • 5.通过vCenter在datastore cluster创建虚拟机
    • 6. 通过vCenter修改创建虚拟机的各种配置信息
    • 7. 通过vCenter关闭虚拟机
    • 8.通过vCenter创建删除管理snapshot信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档