LINUX.ORG.RU

История изменений

Исправление router, (текущая версия) :

Дело не в конкретном usecase, а именно в полном отсутствии методологии. Слишком много альтернатив в синтаксисе, почти как в универсальном языке программирования. Школьник не напишет с нуля сложный софт, только профессиональный программист.А puppet предназначен для админов, которые в общем случае не обязаны быть профессиональными программистами

1. можно писать один большой конфиг, можно бить его на отдельные ноды. Ноды могут быть иерархические. Иерархические ноды удобно привязывать к хорошо структурированной сети ( node root, node cod-a inherits root, node cod-a-dmz inherits cod-a, node cod-a-vlan-app inherits cod-a, node cod-a-vlan-infrastucture inherits cod-a, node vm-jira-app inherits cod-a-vlan-app ), но где об этом хоть слово в документации? Никто не мешает сделать node squid, node vm-dca-squid inherits squid, node vm-dcb-squid inherits squid. Или вообще для каждой отдельной ноды ничего не наследовать и писать с нуля.

2. содержимое файла можно менять через file .. content, file .. template или вообще augeas. У них разные, но сильно пересекающиеся области применения. И нигде не сказано, в каких случаях стоит использовать template, а в каких - augeas.

3. Нигде нет хоть какого-нибудь совета, когда кусок кода стоит обособить в модуль. И нигде не сказано что например модуль не должен быть привязан к конкретной сети.

Ну допустим я много писал на perl, плюс в школе дельфи и в институте джентельменский набор. Исходя из своего ИМХО, я привязываю ноды к сетям. Исходя из своего ИМХО, я стараюсь сделать модули независимыми. Исходя из своего ИМХО, я использую в модулях параметризованные классы ( define ) вместо того, чтобы в нодах определить глобальные переменные, а в модуле, исходя из этоих переменных, создавать разную конфигурацию.

Но вот натыкаюсь на example42 и вижу, что они как раз используют глобальные переменные, и мало define. А foreman вообще не умеет через свой веб-интерфейс использовать параметризованные классы.

Кто неправ? Тут спор получается как между сторонниками ООП и ФП . Какждый построил свой собственный puppet, с блекджеком и шлюхами, и нельзя взять чужой модуль и использовать его без переписывания под свою методологию.

Исправление router, :

Дело не в конкретном usecase, а именно в полном отсутствии методологии. Слишком много альтернатив в синтаксисе, почти как в универсальном языке программирования. Школьник не напишет с нуля сложный софт, только профессиональный программист.А puppet предназначен для админов, которые в общем случае не обязаны быть профессиональными программистами

1. можно писать один большой конфиг, можно бить его на отдельные ноды. Ноды могут быть иерархические. Иерархические ноды удобно привязывать к хорошо структурированной сети ( node root, node cod-a inherits root, node cod-a-dmz inherits cod-a, node cod-a-vlan-app inherits cod-a, node cod-a-vlan-infrastucture inherits cod-a, node vm-jira-app inherits app ), но где об этом хоть слово в документации? Никто не мешает сделать node squid, node vm-dca-squid inherits squid, node vm-dcb-squid inherits squid. Или вообще для каждой отдельной ноды ничего не наследовать и писать с нуля.

2. содержимое файла можно менять через file .. content, file .. template или вообще augeas. У них разные, но сильно пересекающиеся области применения. И нигде не сказано, в каких случаях стоит использовать template, а в каких - augeas.

3. Нигде нет хоть какого-нибудь совета, когда кусок кода стоит обособить в модуль. И нигде не сказано что например модуль не должен быть привязан к конкретной сети.

Ну допустим я много писал на perl, плюс в школе дельфи и в институте джентельменский набор. Исходя из своего ИМХО, я привязываю ноды к сетям. Исходя из своего ИМХО, я стараюсь сделать модули независимыми. Исходя из своего ИМХО, я использую в модулях параметризованные классы ( define ) вместо того, чтобы в нодах определить глобальные переменные, а в модуле, исходя из этоих переменных, создавать разную конфигурацию.

Но вот натыкаюсь на example42 и вижу, что они как раз используют глобальные переменные, и мало define. А foreman вообще не умеет через свой веб-интерфейс использовать параметризованные классы.

Кто неправ? Тут спор получается как между сторонниками ООП и ФП . Какждый построил свой собственный puppet, с блекджеком и шлюхами, и нельзя взять чужой модуль и использовать его без переписывания под свою методологию.

Исправление router, :

Дело не в конкретном usecase, а именно в полном отсутствии методологии. Слишком много альтернатив в синтаксисе, почти как в универсальном языке программирования. Школьник не напишет с нуля сложный софт, только профессиональный программист.

1. можно писать один большой конфиг, можно бить его на отдельные ноды. Ноды могут быть иерархические. Иерархические ноды удобно привязывать к хорошо структурированной сети ( node root, node cod-a inherits root, node cod-a-dmz inherits cod-a, node cod-a-vlan-app inherits cod-a, node cod-a-vlan-infrastucture inherits cod-a, node vm-jira-app inherits app ), но где об этом хоть слово в документации? Никто не мешает сделать node squid, node vm-dca-squid inherits squid, node vm-dcb-squid inherits squid. Или вообще для каждой отдельной ноды ничего не наследовать и писать с нуля.

2. содержимое файла можно менять через file .. content, file .. template или вообще augeas. У них разные, но сильно пересекающиеся области применения. И нигде не сказано, в каких случаях стоит использовать template, а в каких - augeas.

3. Нигде нет хоть какого-нибудь совета, когда кусок кода стоит обособить в модуль. И нигде не сказано что например модуль не должен быть привязан к конкретной сети.

Ну допустим я много писал на perl, плюс в школе дельфи и в институте джентельменский набор. Исходя из своего ИМХО, я привязываю ноды к сетям. Исходя из своего ИМХО, я стараюсь сделать модули независимыми. Исходя из своего ИМХО, я использую в модулях параметризованные классы ( define ) вместо того, чтобы в нодах определить глобальные переменные, а в модуле, исходя из этоих переменных, создавать разную конфигурацию.

Но вот натыкаюсь на example42 и вижу, что они как раз используют глобальные переменные, и мало define. А foreman вообще не умеет через свой веб-интерфейс использовать параметризованные классы.

Кто неправ? Тут спор получается как между сторонниками ООП и ФП . Какждый построил свой собственный puppet, с блекджеком и шлюхами, и нельзя взять чужой модуль и использовать его без переписывания под свою методологию.

Исходная версия router, :

Дело не в конеретном usecase, а именно в полном отсутствии методологии. Слишком много альтернатив в синтаксисе, почти как в универсальном языке программирования. Школьник не напишет с нуля сложный софт, только профессиональный программист.

1. можно писать один большой конфиг, можно бить его на отдельные ноды. Ноды могут быть иерархические. Иерархические ноды удобно привязывать к хорошо структурированной сети ( node root, node cod-a inherits root, node cod-a-dmz inherits cod-a, node cod-a-vlan-app inherits cod-a, node cod-a-vlan-infrastucture inherits cod-a, node vm-jira-app inherits app ), но где об этом хоть слово в документации? Никто не мешает сделать node squid, node vm-dca-squid inherits squid, node vm-dcb-squid inherits squid. Или вообще для каждой отдельной ноды ничего не наследовать и писать с нуля.

2. содержимое файла можно менять через file .. content, file .. template или вообще augeas. У них разные, но сильно пересекающиеся области применения. И нигде не сказано, в каких случаях стоит использовать template, а в каких - augeas.

3. Нигде нет хоть какого-нибудь совета, когда кусок кода стоит обособить в модуль. И нигде не сказано что например модуль не должен быть привязан к конкретной сети.

Ну допустим я много писал на perl, плюс в школе дельфи и в институте джентельменский набор. Исходя из своего ИМХО, я привязываю ноды к сетям. Исходя из своего ИМХО, я стараюсь сделать модули независимыми. Исходя из своего ИМХО, я использую в модулях параметризованные классы ( define ) вместо того, чтобы в нодах определить глобальные переменные, а в модуле, исходя из этоих переменных, создавать разную конфигурацию.

Но вот натыкаюсь на example42 и вижу, что они как раз используют глобальные переменные, и мало define. А foreman вообще не умеет через свой веб-интерфейс использовать параметризованные классы.

Кто неправ? Тут спор получается как между сторонниками ООП и ФП . Какждый построил свой собственный puppet, с блекджеком и шлюхами, и нельзя взять чужой модуль и использовать его без переписывания под свою методологию.