Как мне настроить строку «Пользователь» в файле ~ / .ssh / config, используя файлы шаблонов ERB в Puppet, чтобы он содержал правильное имя пользователя, которое соответствует имени учетной записи?
class accounts_global::tharold {
account { 'tharold':
ensure => present,
}
file { "/home/tharold/.ssh/config" :
require => Account['tharold'],
owner => 'tharold',
group => 'tharold',
mode => '0600',
content => template('accounts_global/user_ssh_config.erb'),
}
}
Содержимое файла user_ssh_config.erb выглядит так:
Host ssh.example.com
Port 22
User tharold
IdentityFile ~/.ssh/ssh-key
Вопрос в том, как должен выглядеть <% = something =%>, чтобы заменить «User tharold» в файле шаблона на имя учетной записи пользователя? Этот файл конфигурации ERB будет использоваться для нескольких пользователей, поэтому мне нужно параметризовать эту часть файла.
Попытка использовать <% = @name%> заканчивается помещением в файл "accounts_global :: tharold".
Вам нужно изменить свой класс на определение, как показано ниже, чтобы его можно было повторно использовать для других пользователей:
define accounts_global::account () {
account { $name:
ensure => present,
}
file { "/home/${name}/.ssh/config" :
require => Account[$name],
owner => $name,
group => $name,
mode => '0600',
content => template('accounts_global/user_ssh_config.erb'),
}
}
Используйте это для своего ~/.ssh/config
Шаблон ERB:
Host ssh.example.com
Port 22
User <%= @name %>
IdentityFile ~/.ssh/ssh-key
Затем добавьте это в свой манифест Puppet:
accounts_global::account { 'tharold': }
Кстати, проходить User
в вашей конфигурации SSH, если удаленное имя пользователя не отличается - по умолчанию SSH пытается подключиться с использованием текущего имени пользователя.
class accounts_global::tharold {
account { 'tharold':
ensure => present,
}
$ssh_user = 'tharold'
file { "/home/tharold/.ssh/config" :
require => Account['tharold'],
owner => 'tharold',
group => 'tharold',
mode => '0600',
content => template('accounts_global/user_ssh_config.erb'),
}
}
Тогда ваш шаблон выглядит как
Host ssh.example.com
Port 22
User <%= ssh_user %>
IdentityFile ~/.ssh/ssh-key