Skip to content

wedos/opennebula-ansible-modules

Repository files navigation

OpenNebula Ansible Modules

Description

Ansible modules for OpenNebula

Roadmap

The following list represent's all of OpenNebula's resources reachable through their API. The checked items are the ones that are fully functional and tested:

Compatibility

This add-on is compatible with OpenNebula 5.6+ (older version can work but not have properly tested)

Requipments

There is no actially any requipments.

Installation

Clone this repository into your modules library:

git clone https://github.com/kvaps/opennebula-ansible-modules library/opennebula

Update path in your ansible.cfg file:

[defaults]
library = library

Example Usage

tasks:

- onecluster:
    name: "cluster1"
    template: "RESERVED_CPU=0 RESERVED_CPU=0"

- onedatastore:
    name: "images"
    chmod: "600"
    user: "oneadmin"
    group: "oneadmin"
    clusters: "default cluster1"
    template: |
      ALLOW_ORPHANS="NO"
      CLONE_TARGET="SYSTEM"
      DRIVER="raw"
      DS_MAD="fs"
      DS_MIGRATE="YES"
      LN_TARGET="SYSTEM"
      RESTRICTED_DIRS="/"
      SAFE_DIRS="/var/tmp"
      TM_MAD="fs_lvm"
      TYPE="IMAGE_DS"
      BRIDGE_LIST="{{ lookup("pipe","echo node{1..50}") }}"

- onehost:
    name: "{{ item }}"
    template: "RESERVED_CPU=100 RESERVED_MEM=2922448"
    im_mad: "kvm"
    vmm_mad: "kvm"
    cluster: "cluster1"
  loop: "{{ lookup("pipe","echo node{1..50}") }}"

- oneimage:
    name: "Debian 10"
    chmod: "644"
    user: "oneadmin"
    group: "oneadmin"
    path: "https://marketplace.opennebula.wedos.cloud/images/debian-10.qcow2"
    type: "OS"
    datastore: "files"
    template: "DEV_PREFIX=vd FORMAT=raw LABELS=OS"

- onetemplate:
    name: "Debian 10"
    template: "{{ lookup('template', 'templates/cloud.j2') }}"
    chmod: "600"
    user: "oneadmin"
    group: "oneadmin"
  vars:
    name: "Debian 10"
    image: "Debian 10"
    logo: "images/logos/debian.png"

- onevnet:
    name: dev-ip
    template: |
      BRIDGE="vmbr0v4000"
      DNS="10.28.0.1"
      PHYDEV="bond0"
      SECURITY_GROUPS="0"
      VLAN_ID="4000"
      VN_MAD="802.1Q"
    clusters: "default cluster1"
    chmod: "604"
    user: "oneadmin"
    group: "oneadmin"
  
- onevnetar:
    ar_uniq_key: "IP"
    template: "{{ ar_template }}"
  loop_control:
    loop_var: ar_template
  loop:
      - |
          AR=[
            GATEWAY="172.16.0.1",
            IP="172.16.0.5",
            SIZE="250",
            TYPE="IP4" ]
      - |
          AR=[
            GATEWAY="172.17.0.1",
            IP="172.17.0.5",
            SIZE="250",
            TYPE="IP4" ]

Development

To contribute bug patches or new features, you can use the github Pull Request model. It is assumed that code and documentation are contributed under the Apache License 2.0.

More info:

Author

About

Ansible modules for OpenNebula configuration

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages