Skip to content

Latest commit

 

History

History
539 lines (330 loc) · 11.3 KB

File metadata and controls

539 lines (330 loc) · 11.3 KB

Reference

Table of Contents

Classes

  • dconf: Installs and configures dconf

Defined types

Classes

dconf

Installs and configures dconf

Examples

Declaring the class
include dconf

Parameters

The following parameters are available in the dconf class:

manage_packages

Data type: Boolean

Whether to manage the dconf packages.

Default value: true

packages

Data type: Array

The packages required for dconf management. Typically sourced via hiera.

Default value: []

db_base_dir

Data type: Stdlib::Absolutepath

The base directory for dconf db files

Default value: '/etc/dconf/db'

profile_base_dir

Data type: Stdlib::Absolutepath

The base directory for dconf profiles

Default value: '/etc/dconf/profile'

profiles

Data type: Optional[Hash]

Hash of dconf profiles

Default value: undef

dbs

Data type: Optional[Hash]

Hash of dconf databases, settings and locks

Default value: undef

Defined types

dconf::db

Create dconf db keyfiles

Examples

Create a dconf db keyfile with given settings
dconf::db { 'local':
  settings => {
    'system/proxy/http' => {
      'host' => "'172.16.0.1'",
      'enabled' => 'true',
    },
    'org/gnome/desktop/background' => {
      'picture-uri' => 'file:///usr/local/rupert-corp/company-wallpaper.jpeg',
    },
  },
}
Lockdown dconf settings
dconf::db { 'local':
  settings => {
    'system/proxy/http' => {
      'host' => "'172.16.0.1'",
      'enabled' => 'true',
    },
  locks => [
    'system/proxy/http/host',
    'system/proxy/http/enabled',
  ],
Managing multiple config files for the same db
dconf::db { 'system-proxy':
  db_dir      => '/etc/dconf/db/local.d',
  db_filename => 'system-proxy',
  settings    => {
    'system/proxy/http' => {
      'host'    => "'172.16.0.1'",
      'enabled' => 'true',
    },
  },
}
dconf::db { 'disable-microphone':
  db_dir      => '/etc/dconf/db/local.d',
  db_filename => 'disable-micrphone',
  settings    => {
    'org/gnome/desktop/privacy' => {
      'disable-microphone' => 'true',
    },
  },
}

Parameters

The following parameters are available in the dconf::db defined type:

settings

Data type: Optional[Hash]

Hash of dconf settings

Default value: undef

locks

Data type: Optional[Array]

Array of dconf settings to lock

Default value: undef

db_dir

Data type: Stdlib::Absolutepath

Absolute path of the dconf db directory

Default value: "${dconf::db_base_dir}/${name}.d"

db_filename

Data type: String

Name of the dconf db file

Default value: "${name}_default"

db_file

Data type: Stdlib::Absolutepath

Absolute path of the dconf db file

Default value: "${db_dir}/${db_filename}"

locks_dir

Data type: Stdlib::Absolutepath

Absolute path of the dconf db locks directory

Default value: "${db_dir}/locks"

locks_filename

Data type: String

Name of the dconf locks file

Default value: $db_filename

locks_file

Data type: Stdlib::Absolutepath

Absolute path of the dconf db locks file

Default value: "${locks_dir}/${locks_filename}"

db_dir_mode

Data type: String

File permissions for dconf db directory

Default value: '0755'

db_file_mode

Data type: String

File permissions for dconf db file

Default value: '0644'

locks_dir_mode

Data type: String

File permissions for dconf db locks directory

Default value: '0755'

locks_file_mode

Data type: String

File permissions for dconf db locks file

Default value: '0644'

purge

Data type: Boolean

Whether to purge unmanaged files (keyfiles and lock files)

Default value: true

ensure

Data type: Enum['present','absent']

Whether to ensure presence or absence of the resource

Default value: 'present'

dconf::db_keyfile

Generate arbitrary dconf keyfiles

Examples

Deploy a simple keyfile under /etc/dconf/db/local.d/
dconf::db_keyfile { "example_default":
  ensure    => 'present',
  settings  => {
    'system/proxy/http' => {
      'host'    => "'172.16.0.1'",
      'enabled' => 'true',
  },
  parent_db => '/etc/dconf/db/local.d',
  priority  => '00',
}

Parameters

The following parameters are available in the dconf::db_keyfile defined type:

ensure

Data type: Enum['present','absent']

Set the state of the resource

Default value: 'present'

settings

Data type: Hash

A hash of dconf settings

parent_db

Data type: Stdlib::Absolutepath

Absolute path to the dconf db directory (e.g. '/etc/dconf/db/local.d')

priority

Data type: Pattern[/^[0-9]+$/]

Numerical value used to set the keyfile priority (keyfiles are read in lexicographical order)

Default value: '50'

filename

Data type: String

Name of the keyfile to create

Default value: "${priority}-${name}"

file_path

Data type: Stdlib::Absolutepath

Absolute path of the keyfile to create

Default value: "${parent_db}/${filename}"

file_mode

Data type: String

File permissions for dconf keyfile

Default value: '0644'

dconf::db_locks

Generate arbitrary dconf locks files

Examples

Deploy a simple locks file under /etc/dconf/db/local.d/locks/
dconf::db_locks { 'example_default':
  ensure => 'present',
  parent_db => '/etc/dconf/db/local.d',
  priority => '00',
  locks => [
    'system/proxy/http/host',
    'system/proxy/http/enabled',
  ],
}

Parameters

The following parameters are available in the dconf::db_locks defined type:

ensure

Data type: Enum['present','absent']

Set the state of the resource

Default value: 'present'

locks

Data type: Array

A hash of dconf locks

parent_db

Data type: Stdlib::Absolutepath

Absolute path to the dconf db directory (e.g. '/etc/dconf/db/local.d')

locks_dir

Data type: Stdlib::Absolutepath

Absolute path to the dconf locks directory

Default value: "${parent_db}/locks"

priority

Data type: Pattern[/^[0-9]+$/]

Numerical value used to set the locks file priority (locks files are read in lexicographical order)

Default value: '50'

filename

Data type: String

Name of the locks file to create

Default value: "${priority}-${name}"

file_path

Data type: Stdlib::Absolutepath

Absolute path of the locks file to create

Default value: "${locks_dir}/${filename}"

file_mode

Data type: String

File permissions for dconf locks file

Default value: '0644'

dconf::profile

Create dconf profiles

Examples

Creating dconf profiles
dconf::profile { 'local':
  entries => {
    'user' => {
      'type'  => 'user',
      'order' => 10,
     },
    'local' => {
      'type'  => 'system',
      'order' => 21,
    },
    'site' => {
      'type'  => 'system',
      'order' => 21,
    },
  },
}

Parameters

The following parameters are available in the dconf::profile defined type:

profile_file

Data type: Stdlib::Absolutepath

Absolute path to dconf profile file

Default value: "${dconf::profile_base_dir}/${name}"

profile_file_mode

Data type: String

File permissions for dconf profile file

Default value: '0644'

ensure

Data type: Enum['present','absent']

Whether to ensure presence or absence of the dconf profile

Default value: 'present'

default_entry_order

Data type: String

Default order of profile entries

Default value: '25'

entries

Data type: Optional[Hash]

List of entries to include in the dconf profile

Default value: undef