Рейтинг:2

Как установить значение директивы ipa_hostname в sssd.conf с помощью Augeas

флаг tn

Использование версий Puppet

Мастер: кукольный сервер 6.7

Клиент: кукольный агент 6.10

У меня есть другой код Augeas в других модулях, который отлично работает.

Пример sssd.conf

[СССД]
сервисы = nss, sudo, pam, ssh
config_file_version = 2
домены = abc.def.net

[домен/abc.def.net]
cache_credentials = Истина
id_provider = ипа
auth_provider = ипа
access_provider = IPA
ipa_hostname = xxx.abc.def.net

...

Мне нужно обновить/проверить значение ipa_hostname в разделе [domain/abc.def.net]. Я не могу понять, что я делаю неправильно с этим кодом augeas

    augeas { "sssd.conf":
      контекст => "/files/etc/sssd/sssd.conf",
      изменения => [
                "установить ipa_hostname xxx",
                ],
      уведомление => Сервис["sssd"]
    }

Вот вывод отладки:

Отладка: Augeas[sssd.conf](provider=augeas): открытие augeas с корнем /, путь к линзе, флаги 64
Отладка: Augeas[sssd.conf](provider=augeas): установлена ​​версия Augeas 1.12.0
Отладка: Augeas[sssd.conf](provider=augeas): попытка сохранения и запуск только в случае изменения файлов
Отладка: Augeas[sssd.conf](provider=augeas): отправка команды 'set' с параметрами ["/files/etc/sssd/sssd.conf/ipa_hostname", "no"]
Отладка: Augeas[sssd.conf](provider=augeas): сбой в одном или нескольких файлах, вывод из /augeas//ошибка:
Отладка: Augeas[sssd.conf](provider=augeas): /augeas/files/etc/sssd/sssd.conf/error = put_failed
Отладка: Augeas[sssd.conf](provider=augeas): /augeas/files/etc/sssd/sssd.conf/error/path = /files/etc/sssd/sssd.conf/
Отладка: Augeas[sssd.conf](provider=augeas): /augeas/files/etc/sssd/sssd.conf/error/lens = /opt/puppetlabs/puppet/share/augeas/lenses/dist/sssd.aug: 33.13-.53:
Отладка: Augeas[sssd.conf](provider=augeas): /augeas/files/etc/sssd/sssd.conf/error/message = Не удалось сопоставить дерево под /

     { "цель" = "SSSD" }
     { "цель" = "домен/test.hfgs.net" }
     { "цель" = "nss" }
     { "цель" = "пам" }
     { "цель" = "судо" }
     { "цель" = "автоматика" }
     { "цель" = "ssh" }
     { "цель" = "пак" }
     { "ipa_hostname" = "xxx" }

  с рисунком
   ( { /#comment/ = /[^\t\n\r ].*[^\t\n\r ]|[^\t\n\r ]/ }
      | {})*
    { /target/ = /[^]\n\r]+/ }*

Отладка: Augeas[sssd.conf](provider=augeas): закрыто соединение augeas
Ошибка: /Stage[main]/Testaugeas/Augeas[sssd.conf]: не удалось оценить: ошибка сохранения, подробности см. в выводе отладки.
Рейтинг:2
флаг tn

Заняло пару дней, но я, наконец, понял это. Я добавил дополнительный код, чтобы показать, как обратиться к другому разделу в том же файле. Надеюсь это поможет.

  $домен = abc.net
  augeas { "sssd.conf ipa_hostname":
    объектив => 'sssd.lns',
    incl => '/etc/sssd/sssd.conf',
    изменения => [
      "установить цель[ . = 'sssd']/services 'nss, sudo, pam, ssh'",
      "установить цель[ . = 'sssd']/config_file_version 2",
      "установить цель[ . = 'sssd']/domains ${domain}",
      "set target[ . = 'domain/${domain}']/ipa_hostname ${hostname}.${domain}",
    ],
    уведомление => Сервис["sssd"]
  }

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.