Я управляю своими хостами с помощью марионетки. Хосты используют двойной стек IPv4 и IPv6. Я хочу добавить оба адреса в / etc / hosts. Когда я добавлял его вручную, мой файл / etc / hosts выглядел так:
192.0.2.1 hostname.example.com hostname
2001:db8::1 hostname.example.com hostname
Я пытаюсь сделать это с помощью марионетки, но все еще могу вручную добавлять хосты в / etc / hosts.
Моя первая попытка была следующий манифест:
host {
"hostname.example.com":
ip => '192.0.2.1',
host_alias => ["hostname"],
;
"hostname-v6.example.com":
ip => '2001:db8::1',
host_alias => ["hostname","hostname.example.com"],
;
}
Это приведет к следующему файлу / etc / hosts:
192.0.2.1 hostname.example.com hostname
2001:db8::1 hostname-v6.example.com hostname.example.com hostname
Это будет работать, но введет ненужное второе имя хоста, которое некоторые приложения (например, pythons getfqdn ()) будут возвращать как имя хоста по умолчанию.
Когда я пытаюсь разделить имя ресурса и имя хоста в / etc / hosts следующим образом:
host {
"ip4-host":
name => "hostname.example.com",
ip => '192.0.2.1',
host_aliases => ["hostname"],
alias => 'ipv4-hostname',
;
"ip6-host":
name => "hostname.example.com",
ip => '2001:db8::1',
host_aliases => ["hostname"],
alias => 'ipv6-hostname',
;
}
, я получаю следующую ошибку:
Cannot alias Host[ipv6-host] to ["hostname.example.com"] at (file: /etc/puppetlabs/code/environments/production/site/mymodule/manifests/init.pp, line: 23); resource ["Host", "hostname.example.com"] already declared (file: /etc/puppetlabs/code/environments/production/site/mymodule/manifests/init.pp, line: 19) (file: /etc/puppetlabs/code/environments/production/site/mymodule/manifests/init.pp, line: 23, column: 9) on node hostname.example.com
где строка 19 - это первый ресурс хоста, а 23 - второй.
В настоящее время я напишите мои / etc / hosts с помощью шаблона, но из-за этого я теряю возможность добавлять записи вручную.
Есть ли у вас другие идеи?
У Вас есть два семейства адресов и два имени (имя хоста и hostname.example.com). Если это не позволит Вам назвать оба из ресурсов, то же затем использует одно название каждого семейства и добавляет другой как псевдоним.