---
title: Configuring the Installer in HA Environments
description: In production environments you will want to setup uvuyo to ensure high availability. In this case you need to spread the installation over different hosts (maybe also in different locations). To do so you need to tell the installer where…
url: "https://2yetis.net/docs/configuring-the-installer-in-ha-environments/"
updated: "2024-01-02"
category: Installation
---

# Configuring the Installer in HA Environments

In production environments you will want to setup uvuyo to ensure high availability. In this case you need to spread the installation over different hosts (maybe also in different locations). To do so you need to tell the installer where to install which component. The installer will not install components remotely so you would need to run the installer on every server which should contain components of uvuyo. The configuration file will contain the necessary information which services should be configured on the server.

The configuration file must be a yaml file with the following format:

```
servers:
   $serverName:
      uvuyo:
         $uvuyoConfiguration
      kafka:
         $kafkaConfiguration
      zookeeper:
         $zookeeperConfiguration
```

Using the following variables:

| Parameter | Optional | Type | Default | Description |
| --- | --- | --- | --- | --- |
| $serverName | No | String | n/a | Name of the server that is configured. |
| $uvuyoConfiguration | Yes | UvuyoConfig | n/a | The uvuyo configuration. See details below. |
| $kafkaConfiguration | Yes | KafkaConfig | n/a | The kafka configuration. See details below. |
| $zookeeperConfiguration | Yes | ZookeeperConfig | n/a | The zookeeper configuration. See details below. |

Where `$uvuyoConfiguration` has the following format:

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| install | boolean | true | Specifies if an uvuyo node should be configured |
| instances | number | 1 | Number of uvuyo node containers to be configured on this server |

Where $kafkaConfiguration has the following format:

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| install | boolean | true | Specifies if a kafka container should be configured |
| instances | number | 1 | Number of kafka containers to be configured on this server |

Where $zookeeperConfiguration has the following format:

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| install | boolean | true | Specifies if a zookeeper container should be configured |
| instances | number | 1 | Number of zookeeper containers to be configured on this server |

Example:

```
servers:
   hostA:
      uvuyo:
         install: true
         instances: 3

   hostB:
      kafka:
         install: true
         instances: 3
      uvuyo:
         install: true
         instances: 3

   hostC:
      zookeeper:
         install: true
         instances: 3
      uvuyo:
         install: true
         instances: 3
```

The configuration file support variables being used. These variables are being replaced before the is processed by the installer.

| Variable | Description |
| --- | --- |
| hostname | The hostname the installer is currently running on. |

Example

```
servers:
  ${hostname}:
    zookeeper:
      install: true
      instances: 3
    kafka:
      install: true
      instances: 3
    uvuyo:
      install: true
      instances: 3
```
