Skip to content

Commit

Permalink
fix: remove cloud-init dropin for custom vmware guest datasource
Browse files Browse the repository at this point in the history
  • Loading branch information
supershal authored and dlipovetsky committed Sep 12, 2024
1 parent 6e46531 commit 574db76
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 28 deletions.
5 changes: 5 additions & 0 deletions ansible/roles/providers/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
when: packer_builder_type is search('vmware') or
packer_builder_type is search('vsphere')

- include_tasks: vmware-redhat.yaml
when:
- packer_builder_type is search('vmware') or packer_builder_type is search('vsphere')
- ansible_os_family == "RedHat"

- include_tasks: googlecompute.yml
when: packer_builder_type.startswith('googlecompute')

Expand Down
52 changes: 52 additions & 0 deletions ansible/roles/providers/tasks/vmware-redhat.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
- name: Get package facts
ansible.builtin.package_facts:
manager: "auto"

- name: Set cloud-init version
ansible.builtin.set_fact:
cloud_init_version: "{{ ansible_facts.packages['cloud-init'][0].version }}"

# this program used by ds-identify to determine whether or not the
# VMwareGuestInfo datasource is useable.
- name: Directly install GuestInfo
when: cloud_init_version is version('21.3', '<')
block:

- name: Copy vmware guestinfo datasource
copy:
src: "{{ item }}"
dest: /tmp/
owner: root
group: root
mode: 0755
with_items:
- cloud-init-vmware.sh
- DataSourceVMwareGuestInfo.py

- name: Create ds-check program to verify VMwareGuestInfo datasource
copy:
src: files/dscheck_VMwareGuestInfo.sh
dest: /usr/bin/dscheck_VMwareGuestInfo
owner: root
group: root
mode: 0755

- name: Execute cloud-init-vmware.sh
shell: bash -o errexit -o pipefail /tmp/cloud-init-vmware.sh
environment:
VMWARE_DS_PATH: '/tmp/DataSourceVMwareGuestInfo.py'

- name: Remove cloud-init-vmware.sh
file:
path: /tmp/cloud-init-vmware.sh
state: absent

# sets the datasource_list to VMwareGuestInfo for all OS
# ensure that VMwareGuestInfo overrides existing datasource drop-ins if it exists.
- name: Copy cloud-init config file for vmware
copy:
src: files/etc/cloud/cloud.cfg.d/99-DataSourceVMwareGuestInfo.cfg
dest: /etc/cloud/cloud.cfg.d/99-DataSourceVMwareGuestInfo.cfg
owner: root
group: root
mode: 0644
28 changes: 0 additions & 28 deletions ansible/roles/providers/tasks/vmware.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,34 +58,6 @@
packages: "cloud-init cloud-utils python3-netifaces"
when: ansible_os_family == "VMware Photon OS"

# pip on CentOS needs to be upgraded, but since it's still
# Python 2.7, need < 21.0
- name: Upgrade pip
pip:
name: pip<21.0
extra_args: "{{ '--no-index --find-links=' + pip_packages_remote_filesystem_repo_path if offline_mode_enabled }}"
state: forcereinstall
when: ansible_os_family == "RedHat" and ansible_distribution_major_version == '7'

- name: Copy vmware guestinfo datasource
copy:
src: "{{ item }}"
dest: /tmp/
owner: root
group: root
mode: 0755
with_items:
- cloud-init-vmware.sh
- DataSourceVMwareGuestInfo.py

- name: Copy cloud-init config file for vmware
copy:
src: files/etc/cloud/cloud.cfg.d/99-DataSourceVMwareGuestInfo.cfg
dest: /etc/cloud/cloud.cfg.d/99-DataSourceVMwareGuestInfo.cfg
owner: root
group: root
mode: 0644

- name: Remove subiquity-disable-cloudinit-networking.cfg
file:
path: /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg
Expand Down

0 comments on commit 574db76

Please sign in to comment.