112 lines
3.5 KiB
YAML
112 lines
3.5 KiB
YAML
heat_template_version: rocky
|
|
|
|
description: >
|
|
Configure tuned
|
|
|
|
parameters:
|
|
ServiceData:
|
|
default: {}
|
|
description: Dictionary packing service data
|
|
type: json
|
|
ServiceNetMap:
|
|
default: {}
|
|
description: Mapping of service_name -> network name. Typically set
|
|
via parameter_defaults in the resource registry. This
|
|
mapping overrides those in ServiceNetMapDefaults.
|
|
type: json
|
|
DefaultPasswords:
|
|
default: {}
|
|
type: json
|
|
EndpointMap:
|
|
default: {}
|
|
description: Mapping of service endpoint -> protocol. Typically set
|
|
via parameter_defaults in the resource registry.
|
|
type: json
|
|
RoleName:
|
|
default: ''
|
|
description: Role name on which the service is applied
|
|
type: string
|
|
RoleParameters:
|
|
default: {}
|
|
description: Parameters specific to the role
|
|
type: json
|
|
EnablePackageInstall:
|
|
default: 'false'
|
|
description: Set to true to enable package installation at deploy time
|
|
type: boolean
|
|
TunedCustomProfile:
|
|
default: ''
|
|
description: The definition of a new tuned profile in INI format which
|
|
will be named after the TunedProfileName and applied to the
|
|
host. E.g. if TunedProfileName is 'my_profile', it creates
|
|
the file '/etc/tuned/my_profile/tuned.conf' on host whose
|
|
content is the value of TunedCustomProfile, e.g. "[main]\n
|
|
include=throughput-performance\n[sysctl]\nvm.dirty_ratio=10"
|
|
type: string
|
|
tags:
|
|
- role_specific
|
|
TunedProfileName:
|
|
default: 'throughput-performance'
|
|
description: Tuned Profile to apply to the host
|
|
type: string
|
|
tags:
|
|
- role_specific
|
|
|
|
outputs:
|
|
role_data:
|
|
description: Role data for tuned
|
|
value:
|
|
service_name: tuned
|
|
host_prep_tasks:
|
|
- name: Install tuned
|
|
package:
|
|
name: tuned
|
|
state: present
|
|
when:
|
|
- EnablePackageInstall | default(false) | bool
|
|
|
|
- name: Check for tuned-adm
|
|
command: >-
|
|
which tuned-adm
|
|
environment:
|
|
PATH: "/bin:/usr/bin:/sbin:/usr/sbin"
|
|
changed_when: false
|
|
failed_when: false
|
|
register: tuned_check
|
|
|
|
- name: Run tuned setup
|
|
when:
|
|
- tuned_check.rc == 0
|
|
block:
|
|
- name: Ensure profile directory exists
|
|
file:
|
|
path: "/etc/tuned/{{ tuned_profile }}"
|
|
state: directory
|
|
when:
|
|
- (custom_profile is defined) and (custom_profile != '')
|
|
|
|
- name: Create custom tuned profile
|
|
copy:
|
|
content: "{{ custom_profile }}"
|
|
dest: "/etc/tuned/{{ tuned_profile }}/tuned.conf"
|
|
when:
|
|
- (custom_profile is defined) and (custom_profile != '')
|
|
|
|
- name: Check tuned active profile
|
|
slurp:
|
|
src: "/etc/tuned/active_profile"
|
|
register: tuned_active_profile
|
|
|
|
- name: Enable tuned profile
|
|
command: >-
|
|
tuned-adm profile {{ tuned_profile }}
|
|
environment:
|
|
PATH: "/bin:/usr/bin:/sbin:/usr/sbin"
|
|
when:
|
|
- ((tuned_active_profile['content'] | b64decode).strip()) != tuned_profile
|
|
|
|
ansible_group_vars:
|
|
tuned_profile: {get_param: TunedProfileName}
|
|
custom_profile: {get_param: TunedCustomProfile}
|
|
EnablePackageInstall: {get_param: EnablePackageInstall}
|