簡單7個步驟從無到有利用Ansible自動佈建vSphere VM
0. 前置作業,新增一個用於執行Ansible的VM
1. 安裝Ansible
2. 設定Ansible (本案例因為是直接控制vSphere環境,所以以下步驟可以省略)
3. 建立Inventory檔,描述要生成的VM的清單
4. 建立Playbook,設計佈署工作
6. 安裝 pysphere
7. 執行 Playbook
8. 執行結果

1. 安裝Ansible
yum install epel-release yum install ansible
2. 設定Ansible (本案例因為是直接控制vSphere環境,所以以下步驟可以省略)
#編輯設定檔 vim /etc/ansible/ansible.cfg #編輯要控制的Client清單及帳號密碼 vim /etc/ansible/hosts
3. 建立Inventory檔,描述要生成的VM的清單
vim create_vms_hosts
[web-vms] ans-web[01:05] disk='10' datastore='SSD-Pool_ELKStack_dev (NAS01)' network='vSS-OpenStack_Default' memory='256' cpucount='1' osid='ubuntu64Guest' [db-vms] ans-db[01:03] disk='20' datastore='SSD-Pool_ELKStack_dev (NAS01)' network='vSS-OpenStack_Default' memory='1024' cpucount='2' osid='rhel6_64Guest'
4. 建立Playbook,設計佈署工作
---
- hosts: all
gather_facts: false
connection: local
user: remote
sudo: true
vars_prompt:
- name: "vcenter_hostname"
prompt: "Enter vcenter hostname"
private: no
default: "vcsa"
- name: "vcenter_user"
prompt: "Enter vcenter username"
private: no
- name: "vcenter_pass"
prompt: "Enter vcenter password"
private: yes
vars:
datacenter: 'everythingshouldbevirtual'
esxi_host: 'esxi01.everythingshouldbevirtual.local'
notes: 'Created by Ansible'
tasks:
- vsphere_guest:
vcenter_hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_user }}"
password: "{{ vcenter_pass }}"
guest: "{{ inventory_hostname }}"
state: present
vm_extra_config:
notes: "{{ notes }}"
vm_disk:
disk1:
size_gb: "{{ disk }}"
type: thin
datastore: "{{ datastore }}"
vm_nic:
nic1:
type: vmxnet3
network: "{{ network }}"
network_type: standard
vm_hardware:
memory_mb: "{{ memory }}"
num_cpus: "{{ cpucount }}"
osid: "{{ osid }}"
scsi: paravirtual
esxi:
datacenter: "{{ datacenter }}"
hostname: "{{ esxi_host }}"
5. 安裝 pipyum install python-pip
6. 安裝 pysphere
pip install pysphere
7. 執行 Playbook
ansible-playbook -i create_vms_hosts create_vms.yml
8. 執行結果

作者您好
回覆刪除請教一事,上述的方式在 ansible 2.5.3 環境下可以運作嘛?
我查看過上述有些 Parameter 是已經不再官網說明頁中,是否我的認知有誤呢?
http://docs.ansible.com/ansible/latest/modules/vmware_guest_module.html
舉例:esxi 、vcenter_hostname
我問題的緣由在於,想透過 ansible 針對 free esxi 進行 vm 創建。 問題常卡在 ha-datacenter..
感謝作者 分享 ansible 資訊 : )