Last active
September 19, 2022 17:53
-
-
Save rajabiy/0d36393249fbef36d14df94b03291fa3 to your computer and use it in GitHub Desktop.
here little exsample how to deploy ubuntu ova into vcenter viaansible and cloud-init.iso
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
yo need 2 change vcenter credentials, datastores, datacenters | |
virtual machine ip adreses, users and you public key | |
and run | |
ansible-playbook -i rke.yaml make-seed-and-deploy-ubuntu.yml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- hosts: localhost | |
become: no | |
vars: | |
vcenter_username: vcenter_user@vsphere.local | |
vcenter_password: "vspheresupersecretpassword" | |
tasks: | |
- name: Seed directory | |
file: | |
path: "{{lookup('env', 'PWD')}}/seed/{{hostvars[item].inventory_hostname}}" | |
state: directory | |
loop: "{{ query('inventory_hostnames', 'all') }}" | |
- name: Cloud config meta-data file | |
copy: | |
dest: "{{lookup('env', 'PWD')}}/seed/{{hostvars[item].inventory_hostname}}/meta-data" | |
content: | | |
instance-id: {{hostvars[item].inventory_hostname}} | |
local-hostname: localhost | |
loop: "{{ query('inventory_hostnames', 'all') }}" | |
- name: Cloud config user-data file | |
copy: | |
dest: "{{lookup('env', 'PWD')}}/seed/{{hostvars[item].inventory_hostname}}/user-data" | |
content: | | |
#cloud-config | |
hostname: {{hostvars[item].inventory_hostname}} | |
users: | |
- default | |
- name: {{hostvars[item].ansible_user}} | |
ssh-authorized-keys: put your key here | |
sudo: ['ALL=(ALL) NOPASSWD:ALL'] | |
groups: sudo | |
lock_passwd: false | |
shell: /bin/bash | |
plain_text_passwd: ubuntsupersecretpassword | |
loop: "{{ query('inventory_hostnames', 'all') }}" | |
- name: Cloud config network-config file | |
copy: | |
dest: "{{lookup('env', 'PWD')}}/seed/{{hostvars[item].inventory_hostname}}/network-config" | |
content: | | |
version: 2 | |
ethernets: | |
ens192: | |
match: | |
name: ens192 | |
set-name: ens192 | |
dhcp4: false | |
addresses: | |
- {{hostvars[item].ansible_host}}/24 | |
gateway4: 10.0.0.254 | |
nameservers: | |
search: [local, cluster.local] | |
addresses: [8.8.8.8, 1.1.1.1] | |
loop: "{{ query('inventory_hostnames', 'all') }}" | |
- name: Create an seed ISO file | |
community.general.iso_create: | |
vol_ident: cidata | |
src_files: | |
- "{{lookup('env', 'PWD')}}/seed/{{hostvars[item].inventory_hostname}}/user-data" | |
- "{{lookup('env', 'PWD')}}/seed/{{hostvars[item].inventory_hostname}}/meta-data" | |
- "{{lookup('env', 'PWD')}}/seed/{{hostvars[item].inventory_hostname}}/network-config" | |
dest_iso: "{{lookup('env', 'PWD')}}/seed/{{hostvars[item].inventory_hostname}}/{{hostvars[item].inventory_hostname}}.iso" | |
interchange_level: 4 | |
joliet: 3 | |
loop: "{{ query('inventory_hostnames', 'all') }}" | |
- name: Copy file to datastore folder called iso | |
community.vmware.vsphere_copy: | |
hostname: '{{ hostvars[item].hostname }}' | |
username: '{{ vcenter_username }}' | |
password: '{{ vcenter_password }}' | |
validate_certs: no | |
src: "{{lookup('env', 'PWD')}}/seed/{{hostvars[item].inventory_hostname}}/{{hostvars[item].inventory_hostname}}.iso" | |
datacenter: "{{hostvars[item].datacenter}}" | |
datastore: "{{hostvars[item].datastore}}" | |
path: iso/{{hostvars[item].inventory_hostname}}.iso | |
loop: "{{ query('inventory_hostnames', 'all') }}" | |
delegate_to: localhost | |
- name: Deploy VMware ubuntu 20.04 OS OVA | |
vmware_deploy_ovf: | |
hostname: '{{ hostvars[item].hostname }}' | |
username: '{{ vcenter_username }}' | |
password: '{{ vcenter_password }}' | |
datacenter: "{{hostvars[item].datacenter}}" | |
datastore: "{{hostvars[item].datastore}}" | |
name: "{{hostvars[item].inventory_hostname}}" | |
validate_certs: no | |
disk_provisioning: thin | |
networks: | |
"VM Network": "VLAN-Mgmt" | |
ova: /home/user/ansible/focal-server-cloudimg-amd64.ova | |
allow_duplicates: no | |
power_on: no | |
fail_on_spec_warnings: no | |
loop: "{{ query('inventory_hostnames', 'all') }}" | |
delegate_to: localhost | |
- name: Customize virtual machine | |
vmware_guest: | |
hostname: '{{ hostvars[item].hostname }}' | |
username: '{{ vcenter_username }}' | |
password: '{{ vcenter_password }}' | |
datacenter: "{{hostvars[item].datacenter}}" | |
datastore: "{{hostvars[item].datastore}}" | |
validate_certs: no | |
name: "{{hostvars[item].inventory_hostname}}" | |
disk: | |
- size_gb: 40 | |
type: thin | |
hardware: | |
memory_mb: 8192 | |
num_cpus: 4 | |
cdrom: | |
- controller_number: 0 | |
unit_number: 0 | |
state: present | |
type: iso | |
iso_path: "[{{hostvars[item].datastore}}] iso/{{hostvars[item].inventory_hostname}}.iso" | |
networks: | |
- name: "VLAN-Mgmt" | |
- name: "VLAN-VMs-Traffic" | |
loop: "{{ query('inventory_hostnames', 'all') }}" | |
delegate_to: localhost | |
- name: Power on | |
vmware_guest: | |
hostname: '{{ hostvars[item].hostname }}' | |
username: '{{ vcenter_username }}' | |
password: '{{ vcenter_password }}' | |
datacenter: "{{hostvars[item].datacenter}}" | |
datastore: "{{hostvars[item].datastore}}" | |
validate_certs: no | |
name: "{{hostvars[item].inventory_hostname}}" | |
state: poweredon | |
customvalues: | |
- key: "disk.EnableUUID" | |
value: "TRUE" | |
loop: "{{ query('inventory_hostnames', 'all') }}" | |
delegate_to: localhost |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
nodes: | |
hosts: | |
DR-RKE: | |
ansible_host: 10.0.0.209 | |
datastore: Datastore03 | |
hostname: 10.0.0.102 | |
datacenter: DR-DC | |
HQ-RKE: | |
ansible_host: 10.0.0.205 | |
datastore: Datastore03 | |
hostname: 10.11.253.101 | |
datacenter: HQ-DC | |
vars: | |
ansible_user: ubuntusername | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment