Ansible vmwareモジュールを使用してみる

1. はじめに

今回はAnsibleを用いてvmwareモジュールを使用してみる。

community.vmware.vmware_guest module – Manages virtual machines in vCenter — Ansible Community Documentation

2. Ansible vmwareの環境設定および注意点

①community.vmwareモジュールがインストールされているか確認する

 ターミナルでansible-galaxy collection listを実行

②インストールされていない場合、以下を実行してインストールする

 ansible-galaxy collection install community.vmware

③ansible-playbookのvarsにssh接続時のhost証明書の確認無効化を記述

vars:
    ansible_ssh_common_args: '-o StrictHostKeyChecking=no'

④pip3をインストールする

 sudo -E apt install python3-pip

⑤pip3コマンドでpyvmomiをインストールする(できなかったらプロキシを環境変数に設定する?)

 pip3 install pyvmomi

⑥esxi or clusterの指定どちらかは必ず必要(FQDNで設定する)

3. vmwareの仮想マシンを自動デプロイしてみる

hosts.ini (vmwareへの接続はホストで行う)

[ansible_host]
localhost

[all:vars]
ansible_user = hostのユーザ
ansible_password = hostのパスワード
vcenter_hostname = IP or FQDN
vccenter_username = user@example.com
vcenter_password = vcenterのパスワード
esxi_hostname = IP or FQDN

main.yml

- name: Clone a virtual machine from Windows template and customize
 community.vmware.vmware_guest
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    validate_certs: no
    datacenter: datacenter
    folder: /datacenter/vm
    esxi_hostname: "{{ esxi_hostname }}"
    name: pcname
    state: poweredon
    template: win_template
    networks:
    - name: network
      ip: ipaddress
      netmask:255.255.255.0
      gateway: gatewayip
      dns_servers:
      - dnsip
      - dns2ip
     customization_spec: win_custom
 delegate_to: localhost

4. さいごに

今回はAnsibleでvmwareを扱ってみた。

カスタマイズ仕様書ではsysprep、コンピュータ名の設定や実行コマンドなどの設定を行っておく

IPやディスク、メモリ容量など変更の可能性あるものはまとめてansible-playbookのiniファイルで設定するようにした方がいい

Comments

Copied title and URL