<commit_before>---
title: Ansible oVirt modules
category: feature
authors: omachace
feature_name: Ansible oVirt modules
feature_status: Released
---

### Summary

The goal is to have a module for every entity oVirt has, so users can manage whole oVirt environment via Ansible playbooks.

### Owner

*   Name: [<NAME>](User:omachace)
*   Email: <<EMAIL>>

# Ansible

## About

Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such
as continuous deployments or zero downtime rolling updates.

Ansible’s main goals are simplicity and ease-of-use. It also has a strong focus on security and reliability,
featuring a minimum of moving parts, usage of OpenSSH for transport (with an accelerated socket mode and pull modes
as alternatives), and a language that is designed around auditability by humans–even those not familiar with the program.

## Playbooks
Playbooks are Ansible’s configuration, deployment, and orchestration language. They can describe a policy you want your remote
systems to enforce, or a set of steps in a general IT process. Playbooks uses [YAML](http://yaml.org) as support language. In
general playbooks consist of tasks. Every tasks executes specific module with parameters.

## Modules
Ansible ships with a number of modules (called the ‘module library’) that can be executed directly on remote hosts or through 
Playbooks. Modules have to be idempotent. The concept that change commands should only be applied when they need to be applied,
and that it is better to describe the desired state of a system than the process of how to get to that state. This feature page
describes oVirt ansible modules.

# Ansible oVirt modules

So far few modules has been merged to Ansible and are part of Ansible extras [modules](https://github.com/ansible/ansible-modules-extras/).

__Important__: Ansible oVirt modules works with oVirt version 4 and higher.

__Note__: Links to modules documentation which will be in Ansible 2.3 are temporary on readthedocs page
once, the modules will be merged and Ansible 2.3 will be release we will change links to official documentation.

# Ansible 2.2
Following modules has been merged and can be used in Ansible version 2.2.

The following table shows oVirt modules and version of Ansible where the modules are shipped:

| Module                     | Version |
| -------------------------- | ------- |
| [ovirt_auth]               | 2.2     |
| [ovirt_vms]                | 2.2     |
| [ovirt_disks]              | 2.2     |
| [ovirt_datacenters]        | 2.3     |
| [ovirt_clusters]           | 2.3     |
| [ovirt_networks]           | 2.3     |
| [ovirt_storage_domains]    | 2.3     |
| [ovirt_hosts]              | 2.3     |
| [ovirt_host_pm]            | 2.3     |
| [ovirt_host_networks]      | 2.3     |
| [ovirt_external_providers] | 2.3     |
| [ovirt_nics]               | 2.3     |
| [ovirt_templates]          | 2.3     |
| [ovirt_vmpools]            | 2.3     |
| [ovirt_users]              | 2.3     |
| [ovirt_groups]             | 2.3     |
| [ovirt_permissions]        | 2.3     |

[ovirt_auth]: #ovirt_auth
[ovirt_vms]: #ovirt_vms
[ovirt_disks]: #ovirt_disks
[ovirt_datacenters]: #ovirt_datacenters
[ovirt_clusters]: #ovirt_clusters
[ovirt_networks]: #ovirt_networks
[ovirt_storage_domains]: #ovirt_storage_domains
[ovirt_hosts]: #ovirt_hosts
[ovirt_host_pm]: #ovirt_host_pm
[ovirt_host_networks]: #ovirt_host_networks
[ovirt_external_providers]: #ovirt_external_providers
[ovirt_nics]: #ovirt_nics
[ovirt_templates]: #ovirt_templates
[ovirt_vmpools]: #ovirt_vmpools
[ovirt_users]: #ovirt_users
[ovirt_groups]: #ovirt_groups
[ovirt_permissions]: #ovirt_permissions

## ovirt_auth
[ovirt_auth](http://docs.ansible.com/ansible/ovirt_auth_module.html)
[[source]](https://github.com/ansible/ansible-modules-extras/blob/devel/cloud/ovirt/ovirt_auth.py)
module authenticates to oVirt engine and creates SSO
token, which should be later used in all other oVirt modules, so all modules don’t need to perform login and logout. This
module returns an Ansible fact called _ovirt_auth_. Every module can use this fact as auth parameter, to perform authentication
<commit_msg>Fix links in modules table (#506)<commit_after>---
title: Ansible oVirt modules
category: feature
authors: omachace
feature_name: Ansible oVirt modules
feature_status: Released
---

### Summary

The goal is to have a module for every entity oVirt has, so users can manage whole oVirt environment via Ansible playbooks.

### Owner

*   Name: [<NAME>](User:omachace)
*   Email: <<EMAIL>>

# Ansible

## About

Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such
as continuous deployments or zero downtime rolling updates.

Ansible’s main goals are simplicity and ease-of-use. It also has a strong focus on security and reliability,
featuring a minimum of moving parts, usage of OpenSSH for transport (with an accelerated socket mode and pull modes
as alternatives), and a language that is designed around auditability by humans–even those not familiar with the program.

## Playbooks
Playbooks are Ansible’s configuration, deployment, and orchestration language. They can describe a policy you want your remote
systems to enforce, or a set of steps in a general IT process. Playbooks uses [YAML](http://yaml.org) as support language. In
general playbooks consist of tasks. Every tasks executes specific module with parameters.

## Modules
Ansible ships with a number of modules (called the ‘module library’) that can be executed directly on remote hosts or through 
Playbooks. Modules have to be idempotent. The concept that change commands should only be applied when they need to be applied,
and that it is better to describe the desired state of a system than the process of how to get to that state. This feature page
describes oVirt ansible modules.

# Ansible oVirt modules

So far few modules has been merged to Ansible and are part of Ansible extras [modules](https://github.com/ansible/ansible-modules-extras/).

__Important__: Ansible oVirt modules works with oVirt version 4 and higher.

__Note__: Links to modules documentation which will be in Ansible 2.3 are temporary on readthedocs page
once, the modules will be merged and Ansible 2.3 will be release we will change links to official documentation.

# Ansible 2.2
Following modules has been merged and can be used in Ansible version 2.2.

The following table shows oVirt modules and version of Ansible where the modules are shipped:

| Module                     | Version |
| -------------------------- | ------- |
| [ovirt_auth]               | 2.2     |
| [ovirt_vms]                | 2.2     |
| [ovirt_disks]              | 2.2     |
| [ovirt_datacenters]        | 2.3     |
| [ovirt_clusters]           | 2.3     |
| [ovirt_networks]           | 2.3     |
| [ovirt_storage_domains]    | 2.3     |
| [ovirt_hosts]              | 2.3     |
| [ovirt_host_pm]            | 2.3     |
| [ovirt_host_networks]      | 2.3     |
| [ovirt_external_providers] | 2.3     |
| [ovirt_nics]               | 2.3     |
| [ovirt_templates]          | 2.3     |
| [ovirt_vmpools]            | 2.3     |
| [ovirt_users]              | 2.3     |
| [ovirt_groups]             | 2.3     |
| [ovirt_permissions]        | 2.3     |

[ovirt_auth]: #ovirtauth
[ovirt_vms]: #ovirtvms
[ovirt_disks]: #ovirtdisks
[ovirt_datacenters]: #ovirtdatacenters
[ovirt_clusters]: #ovirtclusters
[ovirt_networks]: #ovirtnetworks
[ovirt_storage_domains]: #ovirtstoragedomains
[ovirt_hosts]: #ovirthosts
[ovirt_host_pm]: #ovirthostpm
[ovirt_host_networks]: #ovirthostnetworks
[ovirt_external_providers]: #ovirtexternalproviders
[ovirt_nics]: #ovirtnics
[ovirt_templates]: #ovirttemplates
[ovirt_vmpools]: #ovirtvmpools
[ovirt_users]: #ovirtusers
[ovirt_groups]: #ovirtgroups
[ovirt_permissions]: #ovirtpermissions

## ovirt_auth
[ovirt_auth](http://docs.ansible.com/ansible/ovirt_auth_module.html)
[[source]](https://github.com/ansible/ansible-modules-extras/blob/devel/cloud/ovirt/ovirt_auth.py)
module authenticates to oVirt engine and creates SSO
token, which should be later used in all other oVirt modules, so all modules don’t need to perform login and logout. This
module returns an Ansible fact called _ovirt_auth_. Every module can use this fact as auth parameter, to perform authentication

{'fraction_non_alphanumeric': 0.08636092912447886, 'fraction_numerical': 0.010601548540798094, 'mean_word_length': 3.504291845493562, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3752561', 'n_tokens_mistral': 2663, 'n_tokens_neox': 2525, 'n_words': 937}