community.general.one_service (8.5.0) — module

Deploy and manage OpenNebula services

Authors: Milan Ilic (@ilicmilan)

Install collection

Install with ansible-galaxy collection install community.general:==8.5.0


Add to requirements.yml

  collections:
    - name: community.general
      version: 8.5.0

Description

Manage OpenNebula services

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Instantiate a new service
  community.general.one_service:
    template_id: 90
  register: result
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Print service properties
  ansible.builtin.debug:
    msg: result
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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: true
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete a service by ID
  community.general.one_service:
    service_id: 153
    state: absent
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Get service info
  community.general.one_service:
    service_id: 153
  register: service_info
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Change service owner, group and mode
  community.general.one_service:
    service_name: 'app2'
    owner_id: 34
    group_id: 113
    mode: '600'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Instantiate service and wait for it to become RUNNING
  community.general.one_service:
    template_id: 43
    service_name: 'foo1'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Wait service to become RUNNING
  community.general.one_service:
    service_id: 112
    wait: true
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Change role cardinality
  community.general.one_service:
    service_id: 153
    role: bar
    cardinality: 5
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Change role cardinality and wait for it to be applied
  community.general.one_service:
    service_id: 112
    role: foo
    cardinality: 7
    wait: true

Inputs

    
mode:
    description:
    - Set permission mode of a service instance in octet format, for example V(0600) to
      give owner C(use) and C(manage) and nothing to group and others.
    type: str

role:
    description:
    - Name of the role whose cardinality should be changed.
    type: str

wait:
    default: false
    description:
    - Wait for the instance to reach RUNNING state after DEPLOYING or COOLDOWN state after
      SCALING.
    type: bool

force:
    default: false
    description:
    - Force the new cardinality even if it is outside the limits.
    type: bool

state:
    choices:
    - present
    - absent
    default: present
    description:
    - V(present) - instantiate a service from a template specified with O(template_id)
      or O(template_name).
    - V(absent) - terminate an instance of a service specified with O(template_id) or
      O(template_name).
    type: str

unique:
    default: false
    description:
    - Setting O(unique=true) will make sure that there is only one service instance running
      with a name set with O(service_name) when instantiating a service from a template
      specified with O(template_id) or O(template_name). Check examples below.
    type: bool

api_url:
    description:
    - 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 E(ONEFLOW_URL) environment variable is used.
    type: str

group_id:
    description:
    - ID of the group which will be set as the group of the service.
    type: int

owner_id:
    description:
    - ID of the user which will be set as the owner of the service.
    type: int

service_id:
    description:
    - ID of a service instance that you would like to manage.
    type: int

cardinality:
    description:
    - Number of VMs for the specified role.
    type: int

template_id:
    description:
    - ID of a service template to use to create a new instance of a service.
    type: int

api_password:
    description:
    - Password of the user to login into OpenNebula OneFlow API server. If not set then
      the value of the E(ONEFLOW_PASSWORD) environment variable is used.
    type: str

api_username:
    description:
    - Name of the user to login into the OpenNebula OneFlow API server. If not set then
      the value of the E(ONEFLOW_USERNAME) environment variable is used.
    type: str

custom_attrs:
    default: {}
    description:
    - Dictionary of key/value custom attributes which will be used when instantiating
      a new service.
    type: dict

service_name:
    description:
    - Name of a service instance that you would like to manage.
    type: str

wait_timeout:
    default: 300
    description:
    - How long before wait gives up, in seconds.
    type: int

template_name:
    description:
    - Name of service template to use to create a new instance of a service.
    type: str

Outputs

group_id:
  description: service's group id
  returned: success
  sample: 1
  type: int
group_name:
  description: service's group name
  returned: success
  sample: one-users
  type: str
mode:
  description: service's mode
  returned: success
  sample: 660
  type: int
owner_id:
  description: service's owner id
  returned: success
  sample: 143
  type: int
owner_name:
  description: service's owner name
  returned: success
  sample: ansible-test
  type: str
roles:
  description: list of dictionaries of roles, each role is described by name, cardinality,
    state and nodes ids
  returned: success
  sample:
  - cardinality: 1
    ids:
    - 123
    - 456
    name: foo
    state: RUNNING
  - cardinality: 2
    ids:
    - 452
    - 567
    - 746
    name: bar
    state: RUNNING
  type: list
service_id:
  description: service id
  returned: success
  sample: 153
  type: int
service_name:
  description: service name
  returned: success
  sample: app1
  type: str
state:
  description: state of service instance
  returned: success
  sample: RUNNING
  type: str