Skip to content

Instantly share code, notes, and snippets.

@cloudnull
Last active May 24, 2019 14:29
Show Gist options
  • Save cloudnull/dc93f1e49db5b07f5662ecbff6a108f3 to your computer and use it in GitHub Desktop.
Save cloudnull/dc93f1e49db5b07f5662ecbff6a108f3 to your computer and use it in GitHub Desktop.
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: Custom tuned profile
type: string
TunedProfileName:
default: 'throughput-performance'
description: Default tuned profile
type: string
outputs:
role_data:
description: Role chrony using composable timesync services.
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/{{ profile }}"
state: directory
- name: Create custom tuned profile
copy:
content: "{{ custom_profile }}"
dest: "/etc/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 {{ profile }}
environment:
PATH: "/bin:/usr/bin:/sbin:/usr/sbin"
when:
- ((tuned_active_profile['content'] | b64decode).strip()) != profile
ansible_group_vars:
tuned_profile: {get_param: TunedProfileName}
custom_profile: {get_param: TunedCustomProfile}
EnablePackageInstall: {get_param: EnablePackageInstall}
- name: Set tuned profile fact
set_fact:
tuned_profile: "{{ profile | default('throughput-performance') }}"
- name: Install tuned
package:
name: tuned
state: present
when:
- EnablePackageInstall | default(false) | bool
- name: Check for tuned-adm
command: >-
which tuned-adm
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
- name: Create custom tuned profile
copy:
content: "{{ custom_profile }}"
dest: "/etc/tuned/{{ tuned_profile }}/tuned.conf"
when:
- custom_profile is defined
- 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 }}
when:
- ((tuned_active_profile['content'] | b64decode).strip()) != tuned_profile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment