Создайте несколько гостевых систем VMware с модулем vsphere_guest

У меня есть следующий сценарий Ansible для создания (клонирование) виртуальных машин (ВМ) VMware из шаблона:

- name: Create VMware guest
  hosts: localhost
  connection: local
  gather_facts: False

  vars_prompt:
    - name: "vcenter"
      prompt: "vCenter hostname?"
      default: "vcenter01.example.com"
    - name: "user"
      prompt: "Enter username"
      private: no
    - name: "pass"
      prompt: "Enter password"
      private: yes
    - name: "template"
      prompt: "Template?"
      default: "linux-template.example.com_deb8"
    - name: "cluster"
      prompt: "Cluster?"
      default: "cl03"
    - name: "resource_pool"
      prompt: "Resource pool?"
      default: "/Resources/IT/IT Department/Linux Systems Team"

  tasks:
  - name: Make sure we have pip
    become: true
    apt: pkg=python-pip state=latest
  - name: Install Python modules
    become: true
    pip: name={{ item }} state=latest
    with_items:
      - pysphere
      - pyvmomi
  - name: Deploy guest from template
    vsphere_guest:
      vcenter_hostname: "{{ vcenter }}"
      username: "{{ user }}"
      password: "{{ pass }}"
      guest: "{{ guest }}"
      from_template: yes
      template_src: "{{ template }}"
      cluster: "{{ cluster }}"
      resource_pool: "{{ resource_pool }}"

Я вызываю его следующим образом:

ansible-playbook createvm.yml --ask-become-pass -e guest=<guest-name>

Как я могу создать несколько виртуальных машин без многократного запуска playbook, т. е. ответа на все вопросы? Единственная переменная, которая изменяется, это имя виртуальной машины ( гость ). Я бы хотел что-то вроде этого:

ansible-playbook createvm.yml --ask-become-pass -e guest=server1,server3,server3
2
задан 2 December 2015 в 11:51
2 ответа

You nwere ike ide with_items loop maka onye ọbịa oke. Dị ka nke a:

- name: Deploy guest from template
  vsphere_guest:
    vcenter_hostname: "{{ vcenter }}"
    username: "{{ user }}"
    password: "{{ pass }}"
    guest: "{{ item }}"
    from_template: yes
    template_src: "{{ template }}"
    cluster: "{{ cluster }}"
    resource_pool: "{{ resource_pool }}"
   with_items: "{{ serverlist }}"

Ọ bụrụ na ịchọghị ịme koodu siri ike ndị na-agbanwe agbanwe na egwuregwu ahụ (nke na-abụghị echiche ọjọọ) ị nwere ike ịchekwa ndepụta ahụ na mgbanwe wee tinye nke a n'okpuru host_vars / hostname like a:

---
serverlist:
  - server1
  - server2

Ansible nwere vault gụnyere maka ịchekwa okwuntughe na ozi nhịahụ. Lelee akwụkwọ maka ozi ndị ọzọ.

can nwere ike ịmepụta faịlụ na-agbanwe agbanwe nke ezoro ezo na vault wee tinye nke a na egwuregwu gị na

- include_vars: vault.yml
3
ответ дан 3 December 2019 в 09:33

Achọtara m ihe ngwọta nke yiri ka ọ na-arụ ọrụ nke ọma - n'iji mgbanwe gburugburu ebe obibi. Ejiri m vars_prompt nke akwụkwọ egwu a were:

  vars:
    vcenter: "{{ lookup('env','ANS_VCENTER') }}"
    cluster: "{{ lookup('env','ANS_CLUSTER') }}"
    template: "{{ lookup('env','ANS_TEMPLATE') }}"
    resource_pool: "{{ lookup('env','ANS_RESOURCE_POOL') }}"
    user: "{{ lookup('env','ANS_USER') }}"
    password: "{{ lookup('env','ANS_PASS') }}"

Etinyere m mgbanwe gburugburu ebe obibi tupu m tinye akwụkwọ egwu ahụ, dị ka

export ANS_VCENTER="vcenter01.example.com"

(Ọ dị m ntakịrị ka m na-echekwa paswọọdụ na gburugburu ebe obibi mana ọ dị ka ọ dị zuru ezu zuru oke ).

Mgbe ahụ enwere m ike ịmepụta ọtụtụ ndị ọbịa na-eji shea maka akaghị

for g in server1 server2 server3; do echo "--> Create $g"; ansible-playbook createvm.yml -e guest=$g; done
2
ответ дан 3 December 2019 в 09:33

Теги

Похожие вопросы