community.general.one_service – Deploy and manage OpenNebula services

Note

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

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

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
    Choices:
  • 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
    Choices:
  • 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
    Choices:
  • 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
    Choices:
  • 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/one_service_module.html