community.general.one_service – Deploy and manage OpenNebula services

From Get docs
Ansible/docs/2.10/collections/community/general/one service module


community.general.one_service – Deploy and manage OpenNebula services

Note

This plugin is part of the community.general collection (version 1.3.2).

To install it use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.one_service.


Synopsis

  • Manage OpenNebula services

Parameters

Parameter Choices/Defaults Comments

api_password

string

Password of the user to login into OpenNebula OneFlow API server. If not set then the value of the ONEFLOW_PASSWORD environment variable is used.

api_url

string

URL of the OpenNebula OneFlow API server.

It is recommended to use HTTPS so that the username/password are not transferred over the network unencrypted.

If not set then the value of the ONEFLOW_URL environment variable is used.

api_username

string

Name of the user to login into the OpenNebula OneFlow API server. If not set then the value of the ONEFLOW_USERNAME environment variable is used.

cardinality

integer

Number of VMs for the specified role

custom_attrs

dictionary

Default:

{}

Dictionary of key/value custom attributes which will be used when instantiating a new service.

force

boolean

  • no

  • yes

Force the new cardinality even if it is outside the limits

group_id

integer

ID of the group which will be set as the group of the service

mode

string

Set permission mode of a service instance in octet format, e.g. 600 to give owner use and manage and nothing to group and others.

owner_id

integer

ID of the user which will be set as the owner of the service

role

string

Name of the role whose cardinality should be changed

service_id

integer

ID of a service instance that you would like to manage

service_name

string

Name of a service instance that you would like to manage

state

string

  • present

  • absent

present - instantiate a service from a template specified with template_id/template_name.

absent - terminate an instance of a service specified with service_id/service_name.

template_id

integer

ID of a service template to use to create a new instance of a service

template_name

string

Name of service template to use to create a new instance of a service

unique

boolean

  • no

  • yes

Setting unique=yes will make sure that there is only one service instance running with a name set with service_name when

instantiating a service from a template specified with template_id/template_name. Check examples below.

wait

boolean

  • no

  • yes

Wait for the instance to reach RUNNING state after DEPLOYING or COOLDOWN state after SCALING

wait_timeout

integer

Default:

300

How long before wait gives up, in seconds



Examples

- name: Instantiate a new service
  community.general.one_service:
    template_id: 90
  register: result

- name: Print service properties
  ansible.builtin.debug:
    msg: result

- name: Instantiate a new service with specified service_name, service group and mode
  community.general.one_service:
    template_name: 'app1_template'
    service_name: 'app1'
    group_id: 1
    mode: '660'

- name: Instantiate a new service with template_id and pass custom_attrs dict
  community.general.one_service:
    template_id: 90
    custom_attrs:
      public_network_id: 21
      private_network_id: 26

- name: Instantiate a new service 'foo' if the service doesn't already exist, otherwise do nothing
  community.general.one_service:
    template_id: 53
    service_name: 'foo'
    unique: yes

- name: Delete a service by ID
  community.general.one_service:
    service_id: 153
    state: absent

- name: Get service info
  community.general.one_service:
    service_id: 153
  register: service_info

- name: Change service owner, group and mode
  community.general.one_service:
    service_name: 'app2'
    owner_id: 34
    group_id: 113
    mode: '600'

- name: Instantiate service and wait for it to become RUNNING
  community.general.one_service:
    template_id: 43
    service_name: 'foo1'

- name: Wait service to become RUNNING
  community.general.one_service:
    service_id: 112
    wait: yes

- name: Change role cardinality
  community.general.one_service:
    service_id: 153
    role: bar
    cardinality: 5

- name: Change role cardinality and wait for it to be applied
  community.general.one_service:
    service_id: 112
    role: foo
    cardinality: 7
    wait: yes

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description

group_id

integer

success

service's group id


Sample:

1

group_name

string

success

service's group name


Sample:

one-users

mode

integer

success

service's mode


Sample:

660

owner_id

integer

success

service's owner id


Sample:

143

owner_name

string

success

service's owner name


Sample:

ansible-test

roles

list / elements=string

success

list of dictionaries of roles, each role is described by name, cardinality, state and nodes ids


Sample:

[{"cardinality": 1,"name": "foo","state": "RUNNING","ids": [ 123, 456 ]}, {"cardinality": 2,"name": "bar","state": "RUNNING", "ids": [ 452, 567, 746 ]}]

service_id

integer

success

service id


Sample:

153

service_name

string

success

service name


Sample:

app1

state

string

success

state of service instance


Sample:

RUNNING




Authors

  • Milan Ilic (@ilicmilan)

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/one_service_module.html