- Я ищу универсальное решение, поэтому sysctl.conf — это просто пример.
У меня есть несколько строк конфигурации, которые должны присутствовать во всех моих серверах sysctl.conf:
net.ipv4.tcp_syncookies = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 1519344680
kernel.shmall = 4294967296
net.core.rmem_max = 33554432
net.core.wmem_max = 33554432
net.core.rmem_default = 33554432
net.core.wmem_default = 33554432
net.ipv4.tcp_rmem = 4096 131072 16777216
net.ipv4.tcp_wmem = 4096 131072 16777216
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
Файл sysctl.conf не предполагает начальных пробелов в файле. Я хотел бы поместить все приведенные выше строки в файл yaml, чтобы соответствовать методологии Ролей/Профилей Крейга Данна.
Если я попытаюсь использовать этот формат:
`content: "kernel.msgmnb = 65536\n kernel.msgmax = 65536\n kernel.shmmax = 1519344680\n kernel.shmall = 4294967296\n net.core.rmem_max = 33554432\n net.core.wmem_max = 33554432\n net.core.rmem_default = 33554432\n net.core.wmem_default = 33554432\n"`
результирующий файл записывается с пробелом в столбце 0 для каждой строки, кроме первой. Мне нужна новая строка, но я не хочу начальный пробел.
Я пытаюсь найти простой, легко воспроизводимый способ воспроизвести файл конфигурации на всех моих узлах БЕЗ использования файлов шаблонов erb. Я хочу, чтобы все мои строки конфигурации были в файле yaml.
Вот мой модуль init.pp:
class sysctl_conf {
$sysctl_lines = hiera('sysctl_conf')
file { '/tmp/test.txt':
content => $sysctl_lines,
}
}
Если в common.yaml я использую:
sysctl_conf: 'content': "net.ipv4.ip_forward = 0\n net.ipv4.conf.default.rp_filter = 1\n net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 kernel.msgmnb = 65536\n kernel.msgmax = 65536\n" В итоге я получаю сообщение "Сбой преобразования значения в содержимом класса: невозможно преобразовать хэш в строку"