This commit is contained in:
NAGY Akos
2023-12-13 19:21:40 +02:00
commit 6ae461b7ef
12 changed files with 590 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
---
- name: Create a VM folder on given datacenter
community.vmware.vcenter_folder:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
datacenter_name: "{{ datacenter }}"
folder_name: "{{ vm_folder_name }}"
parent_folder: "{{ vm_parent_folder_name }}"
folder_type: vm
state: present
register: vm_folder_creation_result
delegate_to: localhost
- name: Create a VM folder on given datacenter
community.vmware.vcenter_folder:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
datacenter_name: "{{ datacenter }}"
folder_name: "{{ template_folder_name }}"
parent_folder: "{{ vm_parent_folder_name }}"
folder_type: vm
state: present
register: vm_folder_creation_result
delegate_to: localhost
- name: Create virtual machine for template
community.vmware.vmware_deploy_ovf:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: false
folder: "/{{ datacenter }}/vm/{{ vm_parent_folder_name }}/{{ template_folder_name }}"
datacenter: "{{ datacenter }}"
cluster: "{{ cluster }}"
datastore: "{{ datastore }}"
resource_pool: "{{ resource_pool }}"
name: "{{ vm_hostname_template }}"
networks: "{u'VM Network':u'{{ ProvisioningNetworkLabel }}'}"
power_on: false
ovf: "{{ ovf_file }}"
- name: Convert vm to template
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: false
folder: "/{{ datacenter }}/vm/{{ vm_parent_folder_name }}/{{ template_folder_name }}"
datacenter: "{{ datacenter }}"
cluster: "{{ cluster }}"
datastore: "{{ datastore }}"
resource_pool: "{{ resource_pool }}"
name: "{{ vm_hostname_template }}"
is_template: true

30
tasks/02create_first.yaml Normal file
View File

@@ -0,0 +1,30 @@
---
- name: Create virtual machines from template
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: false
folder: "/{{ datacenter }}/vm/{{ vm_parent_folder_name }}/{{ vm_folder_name }}"
datacenter: "{{ datacenter }}"
cluster: "{{ cluster }}"
datastore: "{{ datastore }}"
resource_pool: "{{ resource_pool }}"
name: "test-{{ item.value.hostname }}"
template: "{{ vm_hostname_template }}"
state: poweredon
disk:
- size: 100gb
advanced_settings:
- key: "guestinfo.ignition.config.data"
value: "{{ lookup('template', 'ignition/{{ item.value.hostname }}.json') | b64encode }}"
- key: "guestinfo.ignition.config.data.encoding"
value: "base64"
wait_for_ip_address: true
wait_for_ip_address_timeout: 600
with_dict: "{{ kubehosts }}"
register: deploy_vm
# - name: Show debug info
# debug:
# msg: "{{ deploy_vm.results.instance.ipv4 }}"

View File

@@ -0,0 +1,18 @@
---
- name: Read token
ansible.builtin.raw: "cat /var/lib/rancher/k3s/server/token"
become: true
register: token_result
- name: Show token
ansible.builtin.debug:
msg: "{{ token_result.stdout_lines }}"
- name: Read kubeconfig
ansible.builtin.raw: "cat /etc/rancher/k3s/k3s.yaml"
become: true
register: kubeconfig_result
- name: Show kubeconfig
ansible.builtin.debug:
msg: "{{ kubeconfig_result.stdout }}"

28
tasks/03create_nodes.yaml Normal file
View File

@@ -0,0 +1,28 @@
---
- name: Create virtual machines from template
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: false
folder: "/{{ datacenter }}/vm/{{ vm_parent_folder_name }}/{{ vm_folder_name }}"
datacenter: "{{ datacenter }}"
cluster: "{{ cluster }}"
datastore: "{{ datastore }}"
resource_pool: "{{ resource_pool }}"
name: "test-{{ item.value.hostname }}"
template: "{{ vm_hostname_template }}"
state: poweredon
disk:
- size: 100gb
advanced_settings:
- key: "guestinfo.ignition.config.data"
value: "{{ lookup('template', 'ignition/{{ item.value.hostname }}.json') | b64encode }}"
- key: "guestinfo.ignition.config.data.encoding"
value: "base64"
with_dict: "{{ kubehosts_rest }}"
register: deploy_vm
# - name: Show debug info
# debug:
# msg: "{{ deploy_vm.results.instance.ipv4 }}"