<commit_before>---
title: HEApplianceFlow
category: feature
authors: stirabos
wiki_category: Feature
wiki_title: Features/HEApplianceFlow
wiki_revision_count: 12
wiki_last_updated: 2015-06-16
feature_name: oVirt hosted-engine appliance flow
feature_modules: hosted-engine
feature_status: WIP
---

# HE Appliance Flow

## oVirt hosted-engine appliance flow

### Summary

This feature will provide a more convenient way to deploy oVirt self-hosted-engine creating the engine VM from a pre-installed appliance to be configured on fly. This can save a lot time and make the setup easier.

### Owner

*   Name: [ <NAME>](User:stirabos)
*   Email: <<EMAIL>>
*   IRC: tiraboschi

### Detailed Description

This feature is about deploying oVirt hosted-engine setup in a more convenient and automatizable way. In order to deploy hosted-engine, currently the mainstream flow means:

1.  create a VM booting from an ISO image
2.  connect to that VM to install the OS and eventually updated it
3.  reboot that VM
4.  connect again, download ovirt-engine rpms
5.  launch engine-setup and answer a few question (some of them already have a response on the host side but you need to type it again)
6.  go back to the host to complete the hosted-engine setup

The whole process could take a few hours.

Hosted-engine automated setup with the appliance flow means:

1.  ask a few question more (but they can be automated via an answerfile as well) regarding engine-setup on hosted-engine-setup side
2.  generate an aswerfile and inject it into the appliance via cloud-init
3.  automatically launch engine-setup on the appliance via cloud-init; the setup will be fully unattended
4.  the output of engine-setup will be redirected on a virtio-serial port to get shown inside hosted-engine-setup without the need for ssh console, virsh console or remote viewer. Using a virtio serial port instead of an ssh connection means that we are going to get some output also if the network wasn't properly set-up for the new VM.

The whole process could take a few minutes (excluding initial download time).

### Benefit to oVirt

*   Hosted-engine deployment becomes easier and quicker.
*   Hosted-engine deployment can be fully automated which means that we could have continuous integration on that.

### Dependencies / Related Features

The appliance jobs need to provide the correct images; they could be download from here:

*   OVA: <http://jenkins.ovirt.org/job/ovirt-appliance-engine_master_build-artifacts-el7_merged/lastSuccessfulBuild/>
*   RPM: <http://jenkins.ovirt.org/job/ovirt-appliance-engine_master_create-rpms-el7-noarch_merged/lastSuccessfulBuild/> (the rpm is simply a wrapper for the OVA).

WIP: the RPMs should be added to the oVirt repo: the user could simply install them via yum and hosted-engine-setup should automatically detect them.

### Documentation / External references

*   Cloud-init reference: <https://cloudinit.readthedocs.org/en/latest/>

### Testing

#### Manual setup on hosted-engine side
<commit_msg>Update heapplianceflow.html.md<commit_after>---
title: HEApplianceFlow
category: feature
authors: stirabos
wiki_category: Feature
wiki_title: Features/HEApplianceFlow
wiki_revision_count: 12
wiki_last_updated: 2015-06-16
feature_name: oVirt hosted-engine appliance flow
feature_modules: hosted-engine
feature_status: WIP
---a

# HE Appliance Flow

## oVirt hosted-engine appliance flow

### Summary

This feature will provide a more convenient way to deploy oVirt self-hosted-engine creating the engine VM from a pre-installed appliance to be configured on fly. This can save a lot time and make the setup easier.

### Owner

*   Name: [ <NAME>](User:stirabos)
*   Email: <<EMAIL>>
*   IRC: tiraboschi

### Detailed Description

This feature is about deploying oVirt hosted-engine setup in a more convenient and automatizable way. In order to deploy hosted-engine, currently the mainstream flow means:

1.  create a VM booting from an ISO image
2.  connect to that VM to install the OS and eventually updated it
3.  reboot that VM
4.  connect again, download ovirt-engine rpms
5.  launch engine-setup and answer a few question (some of them already have a response on the host side but you need to type it again)
6.  go back to the host to complete the hosted-engine setup

The whole process could take a few hours.

Hosted-engine automated setup with the appliance flow means:

1.  ask a few question more (but they can be automated via an answerfile as well) regarding engine-setup on hosted-engine-setup side
2.  generate an aswerfile and inject it into the appliance via cloud-init
3.  automatically launch engine-setup on the appliance via cloud-init; the setup will be fully unattended
4.  the output of engine-setup will be redirected on a virtio-serial port to get shown inside hosted-engine-setup without the need for ssh console, virsh console or remote viewer. Using a virtio serial port instead of an ssh connection means that we are going to get some output also if the network wasn't properly set-up for the new VM.

The whole process could take a few minutes (excluding initial download time).

### Benefit to oVirt

*   Hosted-engine deployment becomes easier and quicker.
*   Hosted-engine deployment can be fully automated which means that we could have continuous integration on that.

### Dependencies / Related Features

The appliance jobs need to provide the correct images. Both OVA and RPM (the rpm is simply a wrapper for the OVA) could be download from: 
  <http://jenkins.ovirt.org/job/ovirt-appliance_ovirt-3.6_build-artifacts-el7-x86_64/lastSuccessfulBuild/>

The RPM is also available in the oVirt repo: the user could simply install them via yum and hosted-engine-setup should automatically detect them.

### Documentation / External references

*   Cloud-init reference: <https://cloudinit.readthedocs.org/en/latest/>

### Testing

#### Manual setup on hosted-engine side

{'fraction_non_alphanumeric': 0.06013513513513514, 'fraction_numerical': 0.008277027027027027, 'mean_word_length': 4.339044183949504, 'pattern_counts': {'":': 0, '<': 14, '<?xml version=': 0, '>': 14, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3835156', 'n_tokens_mistral': 1672, 'n_tokens_neox': 1592, 'n_words': 794}