An open API service indexing awesome lists of open source software.

https://github.com/opennebula/hosted-cloud-adi


https://github.com/opennebula/hosted-cloud-adi

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

          

logo_adi_opennebula

# Deploying OpenNebula as a Hosted Cloud on aDi

This repository contains the needed code and documentation to perform an OpenNebula deployment and configuration as
a Hosted Cloud on **adi** resources. It extends the [one-deploy-validation](https://github.com/OpenNebula/one-deploy-validation) repository, which is added as a git submodule.

- [Requirements](#requirements)
- [Infrastructure Provisioning](#infrastructure-provisioning)
- [Required Parameters](#required-parameters)
- [Deployment and Validation](#deployment-and-validation)

## Requirements

1. Install `hatch`

```shell
pip install hatch
```

1. Initialize the dependent `one-deploy-validation` and `one-deploy` submodules

```shell
git submodule update --init --remote --merge
```

1. Install the `opennebula.deploy` collection with dependencies using the submodule's tooling:

```shell
make submodule-requirements
```

## Infrastructure Provisioning

A detailed guide to provision the required reference infrastructure is published in **[{ADD LINK TO THE GUIDE HERE}]()**.
Follow the provisioning steps and extract the requiremed parameters needed to proceed with the OpenNebula deployment.

## Required Parameters

Update the [inventory](./inventory/) values to match the provisioned infrastructure.

| Description | Variable Names | Files/Location |
|---------------------------------------------|-------------------------------------|-----------------------------------------------------|
| Frontend Host IP | `ansible_host` | [`inventory/adi.yml`](./inventory/adi.yml) |
| KVM Host IP | `ansible_host` | [`inventory/adi.yml`](./inventory/adi.yml) |
| VXLAN BRIDGE | `vn.vxlan.template.BRIDGE` | [`inventory/adi.yml`](./inventory/adi.yml) |
| Internal BRIDGE | `vn.internal.template.BRIDGE` | [`inventory/adi.yml`](./inventory/adi.yml) |
| VMs Public IP | `vn.vxlan.template.IP` | [`inventory/adi.yml`](./inventory/adi.yml) |
| VMs Public Network | `vn.vxlan.template.NETWORK_ADDRESS` | [`inventory/adi.yml`](./inventory/adi.yml) |
| VMs Public Network Mask | `vn.vxlan.template.NETWORK_MASK` | [`inventory/adi.yml`](./inventory/adi.yml) |
| VMs Public Network Gateway | `vn.vxlan.template.GATEWAY` | [`inventory/adi.yml`](./inventory/adi.yml) |
| GUI password of `oneadmin` | `one_pass` | [`inventory/adi.yml`](./inventory/adi.yml) |
| NFS device | `adi_nfs_device` |[`inventory/adi.yml`](./inventory/group_vars/all/specifics.yml) |
| NFS frontend host | `adi_nfs_frontend_host` |[`inventory/adi.yml`](./inventory/group_vars/all/specifics.yml) |
| NFS server | `adi_nfs_server` |[`inventory/adi.yml`](./inventory/group_vars/all/specifics.yml) |.

## Deployment and Validation

Use the provided Makefile commands to automate deployment and testing:

1. Review the [inventory](./inventory/), [playbooks](./playbooks/) and [roles](./roles/) directories, following Ansible design guidelines.

1. Deploy OpenNebula:

```shell
make deployment
```

1. Configure the deployment for the specifics of the Cloud Provider:

```shell
make specifics
```

1. Test the deployment:

```shell
make validation
```

For more information about the submodule's tooling, refer to its [README.md](https://github.com/OpenNebula/one-deploy-validation/blob/master/README.md) and for detailed documentation on the deployment automation refer to the [one-deploy repo](https://github.com/OpenNebula/one-deploy).