# Cloning a Virtual Machine (VM) - Ignition v8.3 Updates

**URL:** <https://forum.inductiveautomation.com/t/cloning-a-virtual-machine-vm-ignition-v8-3-updates/114661>\
**Category:** Ignition\
**Tags:** ignition83\
**Created:** [March 25, 2026, 6:39am UTC](https://forum.inductiveautomation.com/t/cloning-a-virtual-machine-vm-ignition-v8-3-updates/114661 "2026-03-25T06:39:46Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![tyler.bennett](https://avatars.discourse-cdn.com/v4/letter/t/f04885/32.png) [@tyler.bennett](https://forum.inductiveautomation.com/u/tyler.bennett)\
**Post date:** [March 25, 2026, 6:39am UTC](https://forum.inductiveautomation.com/t/cloning-a-virtual-machine-vm-ignition-v8-3-updates/114661/1 "2026-03-25T06:39:46Z")

</div>

What follows is a set of issue resolutions when attempting to clone a VM, having an existing install of Ignition v8.3, for use with Gateway Redundancy and Gateway Network configurations. This post started off as a request for help but in the course of writing this I managed to find resolutions to the issues that were blocking me.

**Background:** I was (am) proof-of-concept testing some git based workflows for our future use of v8.3 (currently still on v8.1) and the IT team has indicated a preference for VMs over containers. I set up one Ubuntu Server ~~20.04~~ **24.04.04** based Virtual Machine with Ignition v8.3.4 installed and then created a bunch of linked clones to represent gateways on a multi-site configuration. I ran into a few issues, especially when trying to implement gateway redundancy and a gateway network using the cloned VMs. Here are the resolutions I had to implement.

1. Give each VM clone a unique Gateway system name
2. Give each VM clone a unique hostname

```python
sudo hostnamectl hostname someuniquehostname

```

1. Generate a new ssh host key for each VM clone.

```python
sudo -su root
rm /etc/ssh/ssh_host_*_key*
dpkg-reconfigure openssh-server
systemctl restart ssh
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

```

1. Generated a new machine id for each VM clone. Otherwise when using DHCP each clone competes for the same DHCP IP address assignment.

```python
echo -n > /etc/machine-id
systemd-machine-id-setup
reboot

```

1. Generated a new local certificate (Metro-keystore file) for each VM clone. Without this I could not establish gateway redundancy (cert approvals). Resolved thanks to breadcrumbs found in [this forum thread](https://forum.inductiveautomation.com/t/gateway-network-local-certificate/57210), but the path is different for v8.3.

```python
rm /usr/local/bin/ignition/data/config/local/ignition/gateway-network/keystore/metro-keystore.pfx
/usr/local/bin/ignition/ignition.sh restart

```

1. Generate a new **UUID (universally unique identifier) file** for each VM clone. Gateway redundancy would not establish without this change.

```python
rm /usr/local/bin/ignition/data/config/local/ignition/gateway-network/uuid.txt
/usr/local/bin/ignition/ignition.sh restart

```

I came across the article linked below towards the end of my efforts. Written for Ignition v8.1, I presume, as many of the paths stated therein are not correct for v8.3. Tagging @Eric_Bair as the author of the article in case he'd like to update it for v8.3 😎.  
[https://support.inductiveautomation.com/hc/en-us/articles/13578100743053-Cloning-a-VM](https://support.inductiveautomation.com/hc/en-us/articles/13578100743053-Cloning-a-VM)

That article clued me into the existence of the UUID (universally unique identifier) file but with the wrong path so I had to go looking for a likely candidate and eventually found it (see item 6 above). However, the search revealed a few other UUID folders/files

```bash
find /usr/local/bin/ignition/ -iname *uuid*

```

```plaintext
/usr/local/bin/ignition/data/config/local/ignition/gateway-network/uuid.txt
/usr/local/bin/ignition/data/config/resources/local/com.inductiveautomation.opcua/uuid
/usr/local/bin/ignition/data/config/resources/local/com.inductiveautomation.opcua/uuid/uuid.txt
/usr/local/bin/ignition/user-lib/pylib/uuid.py

```

... and now I'm wondering if any of these need consideration as well. Does anyone know?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [March 25, 2026, 12:13pm UTC](https://forum.inductiveautomation.com/t/cloning-a-virtual-machine-vm-ignition-v8-3-updates/114661/2 "2026-03-25T12:13:09Z")

</div>

Yes, for the OPC UA server. Do not touch `uuid.py`.

FWIW, a modern guide should not be based of Ubuntu 20.04. It is already end-of-life. If snaps annoy you as much as they annoy me, consider switching to pure debian.

---

<div class="post-metadata">

**Author:** ![tyler.bennett](https://avatars.discourse-cdn.com/v4/letter/t/f04885/32.png) [@tyler.bennett](https://forum.inductiveautomation.com/u/tyler.bennett)\
**Post date:** [March 25, 2026, 1:57pm UTC](https://forum.inductiveautomation.com/t/cloning-a-virtual-machine-vm-ignition-v8-3-updates/114661/3 "2026-03-25T13:57:32Z")

</div>

> [@pturmel](#):
>
> FWIW, a modern guide should not be based of Ubuntu 20.04. It is already end-of-life.

Typo on my part, I was using Ubuntu server 24.04.04. I will correct that above.
