task.host ********* .. include:: template.service.task.host.example .. _task.host.blocking_post_run: :kw:`blocking_post_run` ======================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute after the resource :c-action:`run` action. Errors interrupt the action. .. _task.host.blocking_pre_run: :kw:`blocking_pre_run` ====================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute before the resource :c-action:`run` action. Errors interrupt the action. .. _task.host.check: :kw:`check` =========== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **candidates** None | last_run ================= ================================================================ If set to 'last_run', the last run retcode is used to report a task resource status. If not set (default), the status of a task is always n/a. .. _task.host.command: :kw:`command` ============= ================= ================================================================ **scopable** True **required** True **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ The command to execute on 'run' action and at scheduled interval. The default schedule for tasks is ``@0``. .. _task.host.configs_environment: :kw:`configs_environment` ========================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** [] **inheritance** leaf > head **scope order** specific > generic **convert** shlex ================= ================================================================ The whitespace separated list of ``=/``. A shell expression spliter is applied, so double quotes can be around ``/`` only or whole ``=/``. Variables are uppercased. .. _task.host.confirmation: :kw:`confirmation` ================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** False **inheritance** leaf > head **scope order** specific > generic **candidates** True | False **convert** boolean ================= ================================================================ If set to True, ask for an interactive confirmation to run the task. This flag can be used for dangerous tasks like data-restore. .. _task.host.cwd: :kw:`cwd` ========= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ Change the working directory to the specified location instead of the default ````. .. _task.host.environment: :kw:`environment` ================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** [] **inheritance** leaf > head **scope order** specific > generic **convert** shlex ================= ================================================================ The whitespace separated list of ``=/``. A shell expression spliter is applied, so double quotes can be around ``/`` only or whole ``=/``. Variables are uppercased. .. _task.host.group: :kw:`group` =========== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ If the binary is owned by the root user, run it as the specified group instead of root. .. _task.host.limit_as: :kw:`limit_as` ============== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** size ================= ================================================================ .. _task.host.limit_core: :kw:`limit_core` ================ ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** size ================= ================================================================ .. _task.host.limit_cpu: :kw:`limit_cpu` =============== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** duration ================= ================================================================ .. _task.host.limit_data: :kw:`limit_data` ================ ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** size ================= ================================================================ .. _task.host.limit_fsize: :kw:`limit_fsize` ================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** size ================= ================================================================ .. _task.host.limit_memlock: :kw:`limit_memlock` =================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** size ================= ================================================================ .. _task.host.limit_nofile: :kw:`limit_nofile` ================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** size ================= ================================================================ .. _task.host.limit_nproc: :kw:`limit_nproc` ================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** size ================= ================================================================ .. _task.host.limit_rss: :kw:`limit_rss` =============== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** size ================= ================================================================ .. _task.host.limit_stack: :kw:`limit_stack` ================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** size ================= ================================================================ .. _task.host.limit_vmem: :kw:`limit_vmem` ================ ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** size ================= ================================================================ .. _task.host.log: :kw:`log` ========= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** True **inheritance** leaf > head **scope order** specific > generic **convert** boolean ================= ================================================================ Log the task outputs in the service log. .. _task.host.on_error: :kw:`on_error` ============== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command to execute on :c-action:`run` action if :kw:`command` returned an error. .. _task.host.post_run: :kw:`post_run` ============== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute after the resource :c-action:`run` action. Errors do not interrupt the action. .. _task.host.pre_run: :kw:`pre_run` ============= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute before the resource :c-action:`run` action. Errors do not interrupt the action. .. _task.host.run_requires: :kw:`run_requires` ================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A whitespace-separated list of conditions to meet to accept running a 'run' action. A condition is expressed as ``(,...)``. If states are omitted, ``up,stdby up`` is used as the default expected states. .. _task.host.schedule: :kw:`schedule` ============== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **default keyword** run_schedule **scope order** specific > generic ================= ================================================================ Set the this task run schedule. See ``/usr/share/doc/opensvc/schedule`` for the schedule syntax reference. .. _task.host.secrets_environment: :kw:`secrets_environment` ========================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** [] **inheritance** leaf > head **scope order** specific > generic **convert** shlex ================= ================================================================ A whitespace separated list of ``=/``. A shell expression spliter is applied, so double quotes can be around ``/`` only or whole ``=/``. Variables are uppercased. .. _task.host.snooze: :kw:`snooze` ============ ================= ================================================================ **scopable** True **required** False **provisioning** False **default** 0 **inheritance** leaf > head **scope order** specific > generic **convert** duration ================= ================================================================ Snooze the service before running the task, so if the command is known to cause a service status degradation the user can decide to snooze alarms for the duration set as value. .. _task.host.timeout: :kw:`timeout` ============= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** duration ================= ================================================================ Wait for before declaring the task run action a failure. If no timeout is set, the agent waits indefinitely for the task command to exit. .. _task.host.umask: :kw:`umask` =========== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ The umask to set for the application process. .. _task.host.user: :kw:`user` ========== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ The user to impersonate when running the task command. The default user is root. .. _task.host.blocking_post_provision: :kw:`blocking_post_provision` ============================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute after the resource :c-action:`provision` action. Errors interrupt the action. .. _task.host.blocking_post_start: :kw:`blocking_post_start` ========================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute after the resource :c-action:`start` action. Errors interrupt the action. .. _task.host.blocking_post_startstandby: :kw:`blocking_post_startstandby` ================================ ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute after the resource :c-action:`startstandby` action. Errors interrupt the action. .. _task.host.blocking_post_stop: :kw:`blocking_post_stop` ======================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute after the resource :c-action:`stop` action. Errors interrupt the action. .. _task.host.blocking_post_unprovision: :kw:`blocking_post_unprovision` =============================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute after the resource :c-action:`unprovision` action. Errors interrupt the action. .. _task.host.blocking_pre_provision: :kw:`blocking_pre_provision` ============================ ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute before the resource :c-action:`provision` action. Errors interrupt the action. .. _task.host.blocking_pre_start: :kw:`blocking_pre_start` ======================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute before the resource :c-action:`start` action. Errors interrupt the action. .. _task.host.blocking_pre_startstandby: :kw:`blocking_pre_startstandby` =============================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute before the resource :c-action:`startstandby` action. Errors interrupt the action. .. _task.host.blocking_pre_stop: :kw:`blocking_pre_stop` ======================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute before the resource :c-action:`stop` action. Errors interrupt the action. .. _task.host.blocking_pre_unprovision: :kw:`blocking_pre_unprovision` ============================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute before the resource :c-action:`unprovision` action. Errors interrupt the action. .. _task.host.comment: :kw:`comment` ============= ================= ================================================================ **scopable** False **required** False **provisioning** False **default** **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ Helps users understand the role of the service and resources, which is nice to on-call support people having to operate on a service they are not usually responsible for. .. _task.host.disable: :kw:`disable` ============= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** False **inheritance** leaf **scope order** specific > generic **candidates** True | False **convert** boolean ================= ================================================================ A disabled resource will be ignored on service startup and shutdown. Its status is always reported ``n/a``. Set in DEFAULT, the whole service is disabled. A disabled service does not honor :c-action:`start` and :c-action:`stop` actions. These actions immediately return success. :cmd:`om disable` only sets :kw:`DEFAULT.disable`. As resources disabled state is not changed, :cmd:`om enable` does not enable disabled resources. .. _task.host.encap: :kw:`encap` =========== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** False **inheritance** leaf > head **scope order** specific > generic **candidates** True | False **convert** boolean ================= ================================================================ Set to ``true`` to ignore this resource in the nodes context and consider it in the encapnodes context. The resource is thus handled by the agents deployed in the service containers. .. _task.host.monitor: :kw:`monitor` ============= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** False **inheritance** leaf > head **scope order** specific > generic **candidates** True | False **convert** boolean ================= ================================================================ A down monitored resource will trigger a node suicide if the monitor thinks it should be up and the resource can not be restarted. .. _task.host.optional: :kw:`optional` ============== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** true for tasks, syncs and resources tagged 'noaction', else false **inheritance** leaf > head **scope order** specific > generic **convert** tristate ================= ================================================================ Action failures on optional resources are logged but do not stop the action sequence. Also the optional resource status is not aggregated to the instance 'availstatus', but aggregated to the 'overallstatus'. Resource tagged :c-tag:`noaction` and sync resources are automatically considered optional. Useful for resources like dump filesystems for example. .. _task.host.pg_blkio_weight: :kw:`pg_blkio_weight` ===================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf **scope order** specific > generic **depends** create_pg in [True] **convert** integer ================= ================================================================ Block IO relative weight. Value: between 10 and 1000. Kernel default: 1000. .. _task.host.pg_cpu_quota: :kw:`pg_cpu_quota` ================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf **scope order** specific > generic **depends** create_pg in [True] ================= ================================================================ The percent ratio of one core to allocate to the process group if % is specified, else the absolute value to set in the process group parameter. For example, on Linux cgroups, ``-1`` means unlimited, and a positive absolute value means the number of microseconds to allocate each period. ``50%@all`` means 50% of all cores, and ``50%@2`` means 50% of two cores. .. _task.host.pg_cpu_shares: :kw:`pg_cpu_shares` =================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf **scope order** specific > generic **depends** create_pg in [True] **convert** integer ================= ================================================================ Kernel default value is used, which usually is 1024 shares. In a cpu-bound situation, ensure the service does not use more than its share of cpu ressource. The actual percentile depends on shares allowed to other services. .. _task.host.pg_cpus: :kw:`pg_cpus` ============= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf **scope order** specific > generic **depends** create_pg in [True] ================= ================================================================ Allow service process to bind only the specified cpus. Cpus are specified as list or range : 0,1,2 or 0-2 .. _task.host.pg_mem_limit: :kw:`pg_mem_limit` ================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf **scope order** specific > generic **depends** create_pg in [True] **convert** size ================= ================================================================ Ensures the service does not use more than specified memory (in bytes). The Out-Of-Memory killer get triggered in case of tresspassing. .. _task.host.pg_mem_oom_control: :kw:`pg_mem_oom_control` ======================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf **scope order** specific > generic **depends** create_pg in [True] **convert** integer ================= ================================================================ A flag (0 or 1) that enables or disables the Out of Memory killer for a cgroup. If enabled (0), tasks that attempt to consume more memory than they are allowed are immediately killed by the OOM killer. The OOM killer is enabled by default in every cgroup using the memory subsystem; to disable it, write 1. .. _task.host.pg_mem_swappiness: :kw:`pg_mem_swappiness` ======================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf **scope order** specific > generic **depends** create_pg in [True] **convert** integer ================= ================================================================ Set a swappiness value for the process group. .. _task.host.pg_mems: :kw:`pg_mems` ============= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf **scope order** specific > generic **depends** create_pg in [True] ================= ================================================================ Allow service process to bind only the specified memory nodes. Memory nodes are specified as list or range : 0,1,2 or 0-2 .. _task.host.pg_vmem_limit: :kw:`pg_vmem_limit` =================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf **scope order** specific > generic **depends** create_pg in [True] **convert** size ================= ================================================================ Ensures the service does not use more than specified memory+swap (in bytes). The Out-Of-Memory killer get triggered in case of tresspassing. The specified value must be greater than :kw:`pg_mem_limit`. .. _task.host.post_provision: :kw:`post_provision` ==================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute after the resource :c-action:`provision` action. Errors do not interrupt the action. .. _task.host.post_start: :kw:`post_start` ================ ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute after the resource :c-action:`start` action. Errors do not interrupt the action. .. _task.host.post_startstandby: :kw:`post_startstandby` ======================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute after the resource :c-action:`startstandby` action. Errors do not interrupt the action. .. _task.host.post_stop: :kw:`post_stop` =============== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute after the resource :c-action:`stop` action. Errors do not interrupt the action. .. _task.host.post_unprovision: :kw:`post_unprovision` ====================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute after the resource :c-action:`unprovision` action. Errors do not interrupt the action. .. _task.host.pre_provision: :kw:`pre_provision` =================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute before the resource :c-action:`provision` action. Errors do not interrupt the action. .. _task.host.pre_start: :kw:`pre_start` =============== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute before the resource :c-action:`start` action. Errors do not interrupt the action. .. _task.host.pre_startstandby: :kw:`pre_startstandby` ====================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute before the resource :c-action:`startstandby` action. Errors do not interrupt the action. .. _task.host.pre_stop: :kw:`pre_stop` ============== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute before the resource :c-action:`stop` action. Errors do not interrupt the action. .. _task.host.pre_unprovision: :kw:`pre_unprovision` ===================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A command or script to execute before the resource :c-action:`unprovision` action. Errors do not interrupt the action. .. _task.host.provision: :kw:`provision` =============== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** True **inheritance** leaf > head **scope order** specific > generic **candidates** True | False **convert** boolean ================= ================================================================ Set to false to skip the resource on provision and unprovision actions. Warning: Provision implies destructive operations like formating. Unprovision destroys service data. .. _task.host.provision_requires: :kw:`provision_requires` ======================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A whitespace-separated list of conditions to meet to accept running a 'provision' action. A condition is expressed as ``(,...)``. If states are omitted, ``up,stdby up`` is used as the default expected states. .. _task.host.shared: :kw:`shared` ============ ================= ================================================================ **scopable** True **required** False **provisioning** False **default** False **inheritance** leaf > head **scope order** specific > generic **candidates** True | False **convert** boolean ================= ================================================================ Set to ``true`` to skip the resource on provision and unprovision actions if the action has already been done by a peer. Shared resources, like vg built on SAN disks must be provisioned once. All resources depending on a shared resource must also be flagged as shared. .. _task.host.standby: :kw:`standby` ============= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf > head **scope order** specific > generic **convert** tristate ================= ================================================================ Always start the resource, even on standby instances. The daemon is responsible for starting standby resources. A resource can be set standby on a subset of nodes using keyword scoping. A typical use-case is sync'ed fs on non-shared disks: the remote fs must be mounted to not overflow the underlying fs. .. warning:: Don't set shared resources standby: fs on shared disks for example. .. _task.host.start_requires: :kw:`start_requires` ==================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A whitespace-separated list of conditions to meet to accept running a 'start' action. A condition is expressed as ``(,...)``. If states are omitted, ``up,stdby up`` is used as the default expected states. .. _task.host.stop_requires: :kw:`stop_requires` =================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A whitespace-separated list of conditions to meet to accept running a 'stop' action. A condition is expressed as ``(,...)``. If states are omitted, ``up,stdby up`` is used as the default expected states. .. _task.host.subset: :kw:`subset` ============ ================= ================================================================ **scopable** True **required** False **provisioning** False **default** None **inheritance** leaf **scope order** specific > generic ================= ================================================================ Assign the resource to a specific subset. .. _task.host.tags: :kw:`tags` ========== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** **inheritance** leaf > head **scope order** specific > generic **convert** set ================= ================================================================ A list of tags. Arbitrary tags can be used to limit action scope to resources with a specific tag. Some tags can influence the driver behaviour. For example :c-tag:`noaction` avoids any state changing action from the driver and implies ``optional=true``, :c-tag:`nostatus` forces the status to n/a. .. _task.host.unprovision: :kw:`unprovision` ================= ================= ================================================================ **scopable** True **required** False **provisioning** False **default** True **inheritance** leaf > head **scope order** specific > generic **candidates** True | False **convert** boolean ================= ================================================================ Set to false to skip the resource on unprovision actions. Warning: Unprovision destroys service data. .. _task.host.unprovision_requires: :kw:`unprovision_requires` ========================== ================= ================================================================ **scopable** True **required** False **provisioning** False **default** **inheritance** leaf > head **scope order** specific > generic ================= ================================================================ A whitespace-separated list of conditions to meet to accept running a 'unprovision' action. A condition is expressed as ``(,...)``. If states are omitted, ``up,stdby up`` is used as the default expected states.