簡單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. 安裝 pip
yum 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 資訊 : )