环境:vmware 虚拟化
需求:如果业务部门一次提几十台甚至几百台虚拟机需求,一个个的手动创建肯定耗时

使用ansible vmware_guest 创建虚拟机,避免手动一台一台创建的纯手工 工作
废话不多说,上代码

---
- hosts: localhost ## 在本机执行
gather_facts: No
connection: local ## 本地连接
vars_files:
- myvars.yml
- vcenter.yml
tasks:
- name: Create a virtual machine from a template
vmware_guest:
hostname: "{{hostname}}"
username: "{{username}}"
password: "{{password}}"
validate_certs: no
folder: /
datacenter: "{{datacenter}}"
name: "{{item.name}}"
state: poweredon
esxi_hostname: "{{item.esxi_hostname}}"
template: "{{item.sys_ver}}"
disk:
- size_gb: 51
type: eagerzeroedthick ## eagerzeroedthick厚置备零延迟 thin 精简置备
datastore: "{{item.datastore}}" ##存储
- size_gb: "{{ item.d2_size_gb}}"
#type: eagerzeroedthick
datastore: "{{item.datastore}}"
hardware:
hotadd_cpu: true
hotremove_cpu: true
hotadd_memory: true
memory_mb: "{{item.memory_mb}}"
num_cpus: "{{item.num_cpus}}"
scsi: lsilogic ##linux用lsilogic,win用lsilogicsas, 默认使用paravirtual 这是VMware自己的准虚拟
networks:
- name: "{{item.vlan}}" ##网络名
device_type: vmxnet3 ## win使用e1000e
ip: "{{item.ip}}"
netmask: 255.255.255.0
gateway: "{{item.gw}}"
customization:
hostname: "{{item.hostname}}"
dns_servers:
- "{{item.dns1}}"
- "{{item.dns2}}"
with_items:
- "{{myvms}}"
delegate_to: localhost
register: deploy

  

vcenter.yml 存放vcenter验证信息
myvars.yml 是需要创建的虚拟机信息
myvars.yml 示例如下

 ---
datacenter: zm-A10
myvms: - name: x.x.x.x_xx
esxi_hostname: x.x.x.x
datastore: x
d1_size_gb: 50
d2_size_gb: 100
memory_mb: 16384
num_cpus: 8
ip:
gw:
dns1:
dns2:
vlan: vlan14
hostname: xxxx
sys_ver: centos6_moban - name: xxx
esxi_hostname: xx
datastore: xx
d1_size_gb: 50
d2_size_gb: 100
memory_mb: 8192
num_cpus: 4
ip:
gw:
dns1:
dns2:
vlan: vlan14
hostname: x
sys_ver: centos7_moban

  

myvars.yml 可以直接用Python脚本生成

import re

outfile2 = open('myvars.yml', 'w')
file_head = '''
---
datacenter: zm-A10
myvms:
'''
outfile2.write(file_head)
with open('vm_list', 'r') as f:
while 1:
line = f.readline()
if not line:
break
linetest = re.split(r'[;,\s]+', line)
if linetest[12] is not None and linetest[12] != '' and linetest[12] == 'centos6':
sys_version = 'centos6_moban'
elif linetest[12] is not None and linetest[12] != '' and linetest[12] == 'centos7':
sys_version = 'centos7_moban'
else:
sys_version = 'win2012_moban'
if linetest[5] is not None and linetest[5].isdigit():
memory = int(linetest[5]) * 1024
host2text = '''
- name: {0}_{1}
esxi_hostname: {2}
datastore: {3}
d1_size_gb: {4}
d2_size_gb: {5}
memory_mb: {6}
num_cpus: {7}
ip: {8}
gw: {9}
dns1: {10}
dns2: {11}
vlan: {12}
hostname: {13}
sys_ver: {14}'''.format(linetest[0], linetest[1], linetest[2], linetest[3], linetest[6], linetest[7], memory, linetest[4], linetest[0], linetest[8], linetest[9], linetest[10], linetest[11], linetest[1], sys_version)
print >> outfile2, host2text

  

ansible创建vmware虚拟机的更多相关文章

  1. 从ghost映像.gho文件快速创建vmware虚拟机

    从ghost映像.gho文件快速创建vmware虚拟机 https://www.cnblogs.com/blog2018/p/8857146.html ghost文件.gho和vmware文件都是磁盘 ...

  2. vmrun 批量创建vmware虚拟机

    1 准备模板机 具体步骤如下: 1. 下载镜像安装系统 https://mirrors.aliyun.com/centos/7.5.1804/isos/x86_64/ 2. 安装完成配置好IP ,关闭 ...

  3. VMWare虚拟机安装创建虚拟机的使用教程

    VMWare虚拟机安装创建虚拟机的使用教程   在配置虚拟机之前需要安装它,VMWare软件的安装过程比较简单,在安装在之前应该先看下说明文档.下面以VMWare Workstation6.5虚拟机 ...

  4. 如何让VMware低版本运行VMware高版本创建的虚拟机

    如何让VMware低版本运行VMware高版本创建的虚拟机 问题描述: 本机安装的VMware Workstation是10版本,之前VMware Workstation 11版本创建的虚拟机,在运行 ...

  5. VMware 创建VMware9虚拟机及设置详细教程

    创建VMware9虚拟机及设置详细教程 by:授客 QQ:1033553122 1.点击Create a New Virtual Machine图标按钮,或者file->new virtual ...

  6. 使用VMWare虚拟机创建CentOS版本号的Linux学习环境(每一步都有截图与说明)

    学习Android开发.假设不学习Linux的基本使用,总感觉心里过意不去,由于毕竟Android还是搭载在Linux的基础之上的. 因此.学习一种Linux系统的基本操作.对我们以后的学习还是非常有 ...

  7. vmware创建centos虚拟机

    下载centos 安装之前你需要下载centos镜像:http://mirrors.aliyun.com/ 创建虚拟机 如果还没有安装vmware请参考:https://www.cnblogs.com ...

  8. 如何在VMware workstation上创建Linux虚拟机

    由于需要使用Linux虚拟机部署Hadoop集群,故在win10系统上安装了VMware workstation 14,现将介绍如何在VMware workstation上创建Linux虚拟机.下面以 ...

  9. VMware 虚拟机添加硬盘以及为新添加的硬盘创建Samba共享 (转)

    一.为VMware虚拟机添加硬盘 1. 首先在VMware虚拟机的VM->Setting子菜单中为虚拟机添加一块15G大小的SCSI类型的硬盘(注意:如果原来为IDE硬盘,SCSI类型的硬盘可能 ...

随机推荐

  1. ddos,cc 攻击特征研究

    a.关于DDos攻击的常见方法 1. SYN Flood:利用TCP协议的原理,这种攻击方法是经典最有效的DDOS方法,可通杀各种系统的网络服务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN ...

  2. "system:serviceaccount:rook-ceph-system:rook-ceph-system" cannot get pods/log in the namespace "rook-ceph"

    1.kubectl logs -f   rook-ceph-operator-86776bbc44-cv5hs   -n rook-ceph-system 日志:E | op-cluster: unk ...

  3. python制作电脑定时关机办公神器,另含其它两种方式,无需编程!

      小编本人目前就是在电脑面前工作,常常会工作到凌晨两三点还在为自己的梦想奋斗着.有时在办公椅上就稀里糊涂睡着了,我相信有很多朋友和我一样,这样是很不好的.第一对身体不好,第二对电脑不好.   对身体 ...

  4. React-使用styled-components

    1.安装 npm install --save styled-components 2.简单使用 style.js: import styled from 'styled-components'; i ...

  5. Java 中 LinkedList 和 ArrayList 的区别

    引自:https://www.cnblogs.com/huzi007/p/5550440.html ArrayList和LinkedList的大致区别如下:1.ArrayList是实现了基于动态数组的 ...

  6. Ubuntu 安装google chrome

    sudo apt-get install google-chrome-stable /usr/bin/google-chrome-stable

  7. mysql 多主

    原理:多个msyql/mariadb之间可以实时同步,任意节点的操作可以立即同步到其他节点,底层采用galera插件同步,类似rsync,上层mysql相对于galera是透明的,可以实现多节点同时读 ...

  8. 常用rsync命令操作梳理

    作为一个运维工程师,经常可能会面对几十台.几百台甚至上千台服务器,除了批量操作外,环境同步.数据同步也是必不可少的技能.说到“同步”,不得不提的利器就是rsync.rsync不但可以在本机进行文件同步 ...

  9. python基础学习笔记(九)

    python异常 python用异常对象(exception object)来表示异常情况.遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的 回溯(Traceback, 一种错误 ...

  10. 阿里云OSS下载pdf文件,并在pdf文件上添加水印

    代码: 兵马未动,粮草先行 作者: 传说中的汽水枪 如有错误,请留言指正,欢迎一起探讨. 转载请注明出处. 公司要求从阿里云OSS下载pdf文件并且需要添加水印. 因此这里总结一下. 首先添加了一个F ...