簡單7個步驟從無到有利用Ansible自動佈建vSphere VM

0.  前置作業,新增一個用於執行Ansible的VM

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. 執行結果
 

留言

  1. 作者您好

    請教一事,上述的方式在 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 資訊 : )

    回覆刪除

張貼留言

這個網誌中的熱門文章

VMware 相容性認證豆知識

如何在VM使用Linux光碟開機進入救援模式並調整SELinux設定