265 lines
14 KiB
Markdown
265 lines
14 KiB
Markdown
Deploy ManageIQ in oVirt
|
|
==================================================
|
|
|
|
The `ovirt.manageiq` role downloads a ManageIQ/CloudForms QCOW image and deploys it into oVirt/Red Hat Virtualization (RHV).
|
|
|
|
The role also enables you to create a virtual machine and attach the ManageIQ disk, then wait for the ManageIQ system to initialize, and register oVirt as an infrastructure provider.
|
|
|
|
Note
|
|
----
|
|
Please note that when installing this role from Ansible Galaxy you are instructed to run following command:
|
|
|
|
```bash
|
|
$ ansible-galaxy install ovirt.manageiq
|
|
```
|
|
|
|
This will download the role to the directory with the same name as you specified on the
|
|
command line, in this case `ovirt.manageiq`. But note that it is case sensitive, so if you specify
|
|
for example `OVIRT.manageiq` it will download the same role, but it will add it to the directory named
|
|
`OVIRT.manageiq`, so you later always have to use this role with upper case prefix. So be careful how
|
|
you specify the name of the role on command line.
|
|
|
|
For the RPM installation we install three legacy names `oVirt.manageiq`, `ovirt.manageiq` and `ovirt-manageiq`.
|
|
So you can use any of these names. This documentation and examples in this repository are using name `ovirt.manageiq`.
|
|
`oVirt.manageiq` and `ovirt-manageiq` role names are deprecated.
|
|
|
|
Requirements
|
|
------------
|
|
|
|
* oVirt has to be 4.0.4 or higher.
|
|
* Ansible has to be 2.5 or higher.
|
|
* [ovirt-imageio](http://www.ovirt.org/develop/release-management/features/storage/image-upload/) must be installed and running.
|
|
* [oVirt Python SDK version 4](https://pypi.python.org/pypi/ovirt-engine-sdk-python/4.2.4).
|
|
|
|
Additionally, perform the following checks to ensure the required processes are running.
|
|
* Check whether `ovirt-imageio-proxy` is running on the engine:
|
|
|
|
```
|
|
systemctl status ovirt-imageio-proxy
|
|
```
|
|
|
|
* Check whether `ovirt-imageio-daemon` is running on the hosts:
|
|
|
|
```
|
|
systemctl status ovirt-imageio-daemon
|
|
```
|
|
|
|
You will also require the CA certificate of the engine. To do this, configure the `ovirt_ca` variable with the path to the CA certificate.
|
|
|
|
Limitations
|
|
-----------
|
|
|
|
* We don not support Ansible Check Mode (Dry Run), because this role is using few modules(command module),
|
|
which do not support it. Once all modules used by this role will support it, we will support it.
|
|
|
|
Role Variables
|
|
--------------
|
|
|
|
QCOW variables:
|
|
|
|
| Name | Default value | Description |
|
|
|---------------|----------------------------------------------------------|--------------------------------------------------------------|
|
|
| miq_qcow_url | http://releases.manageiq.org/manageiq-ovirt-gaprindashvili-3.qc2 | The URL of the ManageIQ QCOW image. |
|
|
| miq_image_path | /tmp/ | Path where the QCOW2 image will be downloaded to. If directory the base name of the URL on the remote server will be used. |
|
|
| miq_image_checksum | UNDEF | If a checksum is defined, the digest of the destination file will be calculated after it is downloaded to ensure its integrity and verify that the transfer completed successfully. Format: :, e.g. checksum="sha256:D98291AC[...]B6DC7B97". |
|
|
|
|
Engine login variables:
|
|
|
|
| Name | Default value | Description |
|
|
|---------------------|-------------------|-----------------------------------------|
|
|
| engine_user | UNDEF | The user to access the engine. |
|
|
| engine_password | UNDEF | The password of the 'engine_user'. |
|
|
| engine_fqdn | UNDEF | The FQDN of the engine. |
|
|
| engine_ca | UNDEF | The path to the engine's CA certificate.|
|
|
|
|
Virtual machine variables:
|
|
|
|
| Name | Default value | Description |
|
|
|-----------------------|---------------------|----------------------------------------------------------------|
|
|
| miq_vm_name | manageiq_gaprindashvili-3 | The name of the ManageIQ virtual machine. |
|
|
| miq_vm_cluster | Default | The cluster of the virtual machine. |
|
|
| miq_vm_memory | 16GiB | The virtual machine's system memory. |
|
|
| miq_vm_memory_guaranteed | UNDEF | Amount of minimal guaranteed memory of the Virtual Machine. miq_vm_memory_guaranteed parameter can't be lower than miq_vm_memory parameter. |
|
|
| miq_vm_memory_max | UNDEF | Upper bound of virtual machine memory up to which memory hot-plug can be performed. |
|
|
| miq_vm_cpu | 4 | The number of virtual machine CPU cores. |
|
|
| miq_vm_cpu_shares | UNDEF | Set a CPU shares for this Virtual Machine. |
|
|
| miq_vm_cpu_sockets | UNDEF | Number of virtual CPUs sockets of the Virtual Machine. |
|
|
| miq_vm_cpu_threads | UNDEF | Number of virtual CPUs threads of the Virtual Machine. |
|
|
| miq_vm_os | rhel_7x64 | The virtual machine operating system. |
|
|
| miq_vm_root_password | `miq_app_password` | The root password for the virtual machine. |
|
|
| miq_vm_cloud_init | UNDEF | The cloud init dictionary to be passed to the virtual machine. |
|
|
| miq_vm_high_availability | true | If yes ManageIQ virtual machine will be set as highly available. |
|
|
| miq_vm_high_availability_priority | 50 | Indicates the priority of the virtual machine inside the run and migration queues. The value is an integer between 0 and 100. The higher the value, the higher the priority. |
|
|
| miq_vm_delete_protected | true | If yes ManageIQ virtual machine will be set as delete protected. |
|
|
| miq_debug_create | false | If true log sensitive data, useful for debug purposes. |
|
|
| miq_wait_for_ip_version | v4 | Specify which IP version should be wait for. Either v4 or v6. |
|
|
|
|
Virtual machine main disks variables (e.g. operating system):
|
|
|
|
| Name | Default value | Description |
|
|
|---------------------|----------------------|-----------------------------------------|
|
|
| miq_vm_disk_name | `miq_vm_name` | The name of the virtual machine disk. |
|
|
| miq_vm_disk_storage | UNDEF | The target storage domain of the disk. |
|
|
| miq_vm_disk_size | Size of qcow disk | The virtual machine disk size. |
|
|
| miq_vm_disk_interface | virtio_scsi | The virtual machine disk interface type.|
|
|
| miq_vm_disk_format | cow | The format of the virtual machine disk. |
|
|
|
|
Virtual machine extra disks (e.g. database, log, tmp): a dict named
|
|
`miq_vm_disks` allows to describe each of the extra disks (see example
|
|
playbook). Note, that this works only with CFME.
|
|
For each disk, the following attributes can be set:
|
|
|
|
| Name | Default value | Description |
|
|
|-----------|---------------|----------------------------------------------------------------------|
|
|
| name | `miq_vm_name`_`type` | The name of the virtual machine disk. |
|
|
| size | UNDEF | The virtual machine disk size (`XXGiB`). |
|
|
| interface | virtio_scsi | The virtual machine disk interface type (`virtio` or `virtio_scsi`). `virtio_scsi` is recommended, as `virtio` has low limit of count of disks. |
|
|
| format | UNDEF | The format of the virtual machine disk (`raw` or `cow`). |
|
|
| timeout | UNDEF | Timeout of disk creation. |
|
|
|
|
Virtual machine NICs variables:
|
|
|
|
| Name | Default value | Description |
|
|
|---------------------|-------------------|------------------------------------------------------|
|
|
| miq_vm_nics | {'name': 'nic1', 'profile_name': 'ovirtmgmt', 'interaface': 'virtio'} | List of dictionaries that defines the virtual machine network interfaces. |
|
|
|
|
The item in `miq_vm_nics` list of can contain following attributes:
|
|
|
|
| Name | Default value | |
|
|
|--------------------|----------------|----------------------------------------------|
|
|
| name | UNDEF | The name of the network interface. |
|
|
| interface | UNDEF | Type of the network interface. |
|
|
| mac_address | UNDEF | Custom MAC address of the network interface, by default it's obtained from MAC pool. |
|
|
| network | UNDEF | Logical network which the VM network interface should use. If network is not specified, then Empty network is used. |
|
|
| profile | UNDEF | Virtual network interface profile to be attached to VM network interface. |
|
|
|
|
ManageIQ variables:
|
|
|
|
| Name | Default value | Description |
|
|
|--------------------|---------------------|----------------------------------------------------------------------------|
|
|
| miq_app_username | admin | The username used to login to ManageIQ. |
|
|
| miq_app_password | smartvm | The password of user specific in username used to login to ManageIQ. |
|
|
| miq_username | admin | Alias of `miq_app_username` for backward compatibility. |
|
|
| miq_password | smartvm | Alias of `miq_app_password` for backward compatibility. |
|
|
| miq_db_username | root | The username to connect to the database. |
|
|
| miq_db_password | `miq_app_password` | The password of user specific in username used to connect to the database. |
|
|
| miq_region | 0 | The ManageIQ region created in the database. Note: Works only with CFME. |
|
|
| miq_company | My Company | The company name of the appliance. |
|
|
| miq_disabled_roles | [] | List of ManageIQ server roles to disable on the appliance. |
|
|
| miq_enabled_roles | [] | List of ManageIQ server roles to enable on the appliance. |
|
|
|
|
Both on ManageIQ and CloudForms, the default enabled server roles are:
|
|
- `automate` - Automation Engine
|
|
- `database_operations` - Database Operations
|
|
- `event` - Event Monitor
|
|
- `ems_inventory` - Provider Inventory
|
|
- `ems_operations` - Provider Operations
|
|
- `reporting` - Reporting
|
|
- `scheduler` - Scheduler
|
|
- `smartstate` - SmartState Analysis
|
|
- `user_interface` - User Interface
|
|
- `websocket` - Websocket
|
|
- `web_services` - Web Services
|
|
|
|
RHV provider and RHV metrics variables:
|
|
|
|
| Name | Default value | Description |
|
|
|-----------------------|----------------|--------------------------------------------------------|
|
|
| miq_rhv_provider_name | RHV provider | Name of the RHV provider to be displayed in ManageIQ. |
|
|
| metrics_fqdn | UNDEF | FQDN of the oVirt/RHV metrics. |
|
|
| metrics_user | engine_history | The user to connection to metrics server. |
|
|
| metrics_password | "" | The password of the `metrics_user` . |
|
|
| metrics_port | 5432 | Port to connect to oVirt/RHV metrics. |
|
|
| metrics_db_name | ovirt_engine_history | Database name of the oVirt engine metrics database. |
|
|
|
|
Dependencies
|
|
------------
|
|
|
|
No.
|
|
|
|
Example Playbook
|
|
----------------
|
|
|
|
Note that for passwords you should use Ansible vault.
|
|
|
|
Here is an example how to deploy CFME:
|
|
|
|
```yaml
|
|
- name: Deploy CFME to oVirt engine
|
|
hosts: localhost
|
|
gather_facts: no
|
|
|
|
vars_files:
|
|
# Contains encrypted `engine_password` varibale using ansible-vault
|
|
- passwords.yml
|
|
|
|
vars:
|
|
engine_fqdn: ovirt-engine.example.com
|
|
engine_user: admin@internal
|
|
|
|
miq_qcow_url: https://cdn.example.com/cfme-rhevm-5.9.1.2-1.x86_64.qcow2
|
|
miq_vm_name: cfme_59
|
|
miq_vm_cluster: mycluster
|
|
miq_vm_cloud_init:
|
|
host_name: "{{ miq_vm_name }}"
|
|
miq_vm_disks:
|
|
database:
|
|
name: "{{ miq_vm_name }}_database"
|
|
size: 10GiB
|
|
interface: virtio_scsi
|
|
format: raw
|
|
log:
|
|
name: "{{ miq_vm_name }}_log"
|
|
size: 10GiB
|
|
interface: virtio_scsi
|
|
format: cow
|
|
tmp:
|
|
name: "{{ miq_vm_name }}_tmp"
|
|
size: 10GiB
|
|
interface: virtio_scsi
|
|
format: cow
|
|
miq_disabled_roles:
|
|
- smartstate
|
|
miq_enabled_roles:
|
|
- notifier
|
|
- ems_metrics_coordinator
|
|
- ems_metrics_collector
|
|
- ems_metrics_processor
|
|
- embedded_ansible
|
|
|
|
roles:
|
|
- ovirt.manageiq
|
|
```
|
|
|
|
Here is an example how to deploy ManageIQ:
|
|
|
|
```
|
|
---
|
|
- name: oVirt ManageIQ deployment
|
|
hosts: localhost
|
|
connection: local
|
|
gather_facts: false
|
|
|
|
vars_files:
|
|
# Contains encrypted `engine_password` and `metrics_password`
|
|
# varibale using ansible-vault
|
|
- passwords.yml
|
|
|
|
vars:
|
|
engine_fqdn: ovirt.example.com
|
|
engine_user: admin@internal
|
|
engine_cafile: /etc/pki/ovirt-engine/ca.pem
|
|
|
|
miq_qcow_url: http://releases.manageiq.org/manageiq-ovirt-gaprindashvili-5.qc2
|
|
miq_vm_name: manageiq_g5
|
|
miq_vm_cluster: mycluster
|
|
|
|
metrics_fqdn: metrics.example.com
|
|
metrics_port: 8443
|
|
metrics_user: admin
|
|
|
|
|
|
roles:
|
|
- ovirt.manageiq
|
|
`````````````````````````````````
|