Puppet 6 и модуль puppetlabs / account hiera yaml не заполняют контент - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь определить мои учетные записи пользователей как Хеши в Hiera, например:

---
accounts::user:
  jack:
    ensure: present
    bashrc_content: file('accounts/shell/bashrc')
    bash_profile_content: file('accounts/shell/bash_profile')

Это прекрасно работает, если я определю их в моих * .pp файлах.

Пожалуйста,найти более подробную информацию о hiera.yaml, manifest и users.yamal на Gist

Почему это не работает?

PS Этот вопрос продолжается до ,

1 Ответ

1 голос
/ 08 марта 2019

Нет, то, что вы пытаетесь сделать, невозможно.

У меня есть несколько вариантов для вас. В Hiera вы можете иметь все данные, кроме вызова функции file():

---
accounts::user:
  jack:
    locked: false
    comment: Jack Doe
    ensure: present
    groups:
    - admins
    - sudo
    shell: '/bin/bash'
    home_mode: '0700'
    purge_sshkeys: false
    managehome: true
    managevim: false
    sshkeys:
    - ssh-rsa AAAA
    password: '70'

А потом в вашем манифесте:

$defaults = {
  'bashrc_content' => file('accounts/shell/bashrc'),
  'bash_profile_content' => file('accounts/shell/bash_profile'),
}

$user_data = lookup('accounts::user', Hash[String,Hash], 'hash', {})
$user_data.each |$user,$props| {
  accounts::user { $user: * => $props + $defaults }
}

Другой вариант - просто включить содержимое файла в данные YAML, т. Е.

---
accounts::user:
  jack:
    locked: false
    comment: Jack Doe
    ensure: present
    groups:
    - admins
    - sudo
    shell: '/bin/bash'
    home_mode: '0700'
    purge_sshkeys: false
    managehome: true
    managevim: false
    bashrc_content: |
      # If not running interactively, don't do anything
      [ -z "$PS1" ] && return

      if [ -f /etc/bashrc ]; then
        . /etc/bashrc   # --> Read /etc/bashrc, if present.
      fi
      ...
    bash_profile_content: ...
    sshkeys:
    - ssh-rsa AAAA
    password: '70'

Тогда вам вообще не понадобится файловая функция или файлы.

Для получения дополнительной информации:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...