автоматизированное развертывание Linux и управление конфигурацией в мелком масштабе - действительно ли это стоит того?

Используйте SSL для шифрования всего конвейера. Если НЕ АБСОЛЮТНО НЕОБХОДИМО, НЕ храните номера кредитных карт в своей базе данных. Необходимо использовать платежный шлюз, такой как Authorize.net для обработки транзакций. Каждая транзакция получит идентификатор транзакции, и это должно быть зарегистрировано Ваша база данных, потому что это не высокое значение или конфиденциальная информация.

Одной вещью остерегаться является регистрация ошибок. Я использую ELMAH для регистрации ошибок и обнаружил что, если кто-то поражает ошибку на странице, где они входят в свою информацию о карте, что информация о карте зарегистрирована как часть значений POST HTTP.

24
задан 26 February 2015 в 14:03
7 ответов

Я рекомендовал бы использовать смесь предварительного отбора Debian, где Вы даете установщику текстовый файл, который отвечает на все вопросы, которые это задало бы, и Марионетка.

Причина использования предварительного отбора, а не FAI состоит в том, что Вы не должны настраивать изображение сначала и соглашение с совершенствованием его. Вы закончите с установкой, очень похожей на то, что Вы имели бы, если бы Вы сделали их всех вручную. Когда Вы приезжаете для установки нового выпуска, необходимо будет обновить файл конфигурации с изменениями, вместо того, чтобы иметь необходимость восстановить новое изображение.

Инструмент управления конфигурацией особенно полезен, где у Вас есть несколько серверов, выполняющих ту же роль, и Вы хотите, чтобы они были идентичным кластером, например, веб-сервера. Однако они могут также быть полезны для конфигурирования основной установки всех серверов. Вы собираетесь хотеть установить конкретные пакеты на всех своих серверах, как ntpd и MTA. Вы собираетесь хотеть изменить файл конфигурации на всех своих серверах. Дополнительная выгода - то, что можно сохранить декларации в чем-то как подверсия и вести учет того, что изменилось на сервере и кто сделал это и почему. Управление конфигурацией может также быть жизненным средством сохранения в случае отказа сервера, и необходимо восстановить его быстро. Установите ОС (использующий FAI или предварительный отбор), установите марионетку, и далеко это идет, созданное назад точно, как это было прежде. Очевидно, необходимо будет сохранить резервные копии данных.

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

Марионетка является более современными из этих двух инструментов, которые Вы упомянули. Я действительно рекомендую это любому. Конфигурация является декларативным языком и легка создать высокоуровневые конструкции. Существует также очень многочисленное сообщество вокруг этого и всегда существуют люди, могущие помочь на списке рассылки или канале IRC.

29
ответ дан 28 November 2019 в 20:17
  • 1
    благодарит подсказка о предварительном отборе. i' m смотрящий на документы об этом прямо сейчас. –  pQd 28 June 2009 в 13:50
  • 2
    FAI является старым skool; я определенно wouldn' t рекомендуют это. Preseeding+Puppet ftw. –  womble♦ 28 June 2009 в 14:12
  • 3
    Мы используем FAI и cfengine, у нас есть приблизительно 1 000 машин, и он работает очень хорошо. Который стоит отметить, что Вы можете ssh в машину, поскольку, это создает себя, так, чтобы мог сделать запись микро сценариев намного легче. –  James 9 July 2009 в 01:35
  • 4
    FAI старая школа? НЕТ! FAI является горным телом и имеет больше чем 10 лет событий. Взгляните на длинный список пользователей FAI в fai-project.org/reports –  Thomas Lange 1 November 2010 в 22:28

Я рекомендовал бы CFengine для любой среды, которая является больше чем 2-3 полями и где у Вас есть некоторое понятие 'шаблонов' или серверов, выполняющих определенные роли.

Почему? Просто поместите его, уменьшает ошибки, у Вас есть инструмент, который гарантирует, что полномочия файла/каталога корректны везде в среде и когда Вы приезжаете для развертывания большего количества серверов, дескрипторы инструмента абсолютно все, и никогда не делает ошибок.

Контраст даже с квалифицированным Системным администратором, развертывающим веб-сервер в конце двенадцатичасового сдвига, когда вещи уже пошли не так, как надо.... Они, вероятно, будут помнить, что противный небольшой конфигурационный файл, который должен войти в/etc/random/location/foo/bar иначе приложение, тихо не сделает что-то довольно важное, как клиенты счета?:)

Инструменты как CFengine являются также отличным способом выполнить обновления системы защиты всей среды. Отбрасывание конфигурации Nagios (NRPE) на все поля является также пустяком. Имеете ли Вы дело с пятью полями или пятьюстами полями, Вы сэкономите время с CFengine.

Вероятно, стоит отметить, что моя среда немного больше, однако я также развернул CFengine для небольших сред, чем Вы отмечаете, следовательно рекомендация!

Вероятно, Вашим следующим вопросом будет CFengine по сравнению с Марионеткой? Это - более трудное решение, и я всегда шел CFengine из-за (в первые годы) некоторая незрелость от Марионетки, особенно вокруг регистрации ошибок.... в эти дни я действительно не уверен - имейте игру и смотрите? Оглядываясь назад к моим конкретным вопросам с Марионеткой, они были сертификатом SSL связанный, крайне тихий отзыв время, я провел 3 часа, диагностируя сервер <-> проблемы подключения клиента в irc.freenode.net/#puppet с некоторыми крупными прочитайте руководство и RTFS только для нахождения ошибки, не быть зарегистрированным, и Luke сказал, "А-ч, которого это действительно трудно зафиксировать" и никогда не делало.:(

10
ответ дан 28 November 2019 в 20:17
  • 1
    положительная сторона. проблема находится в моих вещах случая, будут узкоспециализированными, количество шаблонов [из-за дублирования] будет, вероятно, вокруг n/2 [где n является общим количеством серверов]. –  pQd 28 June 2009 в 13:38
  • 2
    That' s никакая плохая вещь, большинство моих кластеров WWW является n+2, если не n/2 и можно быть довольно гибкими с CFengine в развертывающихся узлах позади подсистем балансировки нагрузки как HAproxy. It' s, совершенно жизнеспособные для управления IPVS и проверкой активности, наполняют также :-) Даже с n/2 требованиями дублирования I' d держат пари, что у Вас есть много идентичных или подобных конфигурационных файлов в Вашей среде? Помните, что с CFengine у Вас действительно есть ' editfiles' инструмент для того, чтобы сделать вещи как " templated" файл конфигурации, содержащий что-то как IP и затем (во времени выполнения) находка и замена правильной информацией.;) –  nixgeek 28 June 2009 в 13:42
  • 3
    @astinus благодарит за Ваши комментарии. i' m также немного испуганный снижения моего производства провалом в центральной конфигурации. что Вы думаете об отключении автоматизированного опроса конфигурации и вхождения в систему каждая из машин и того, чтобы вынуждать это обновить и вручную проверяющий, прекрасны ли все вещи? [да, у меня будет nagios / пользовательский контроль на месте также..., но все еще]. –  pQd 28 June 2009 в 13:47
  • 4
    Я думаю, что уверенность в Ваших методах управления конфигурацией идет со временем, но тем временем, просто отключите автоматизированный опрос полей и используйте ' cssh' входить в каждый класс полей для выполнения ' cfagent-qv' (или безотносительно!), когда Вы хотите продвинуть обновления. Если Вы хотите главную подсказку для повышения уверенности, развертываете виртуальную машину как ' staging' среда и гарантирует, чтобы все изменения прошли это сначала. Довольно легкий, если Вы сохраняете свой CFengine или Марионеточную конфигурацию в Подверсии, просто используйте ответвления и теги. –  nixgeek 28 June 2009 в 14:06
  • 5
    Я также рекомендую использовать СЛАБЫЙ для того, чтобы смехотворно упростить системы (ре) установка, управление конфигурацией. It' s доступный здесь: sundell.net/~alan/projects/slack –  HK_ 28 June 2009 в 16:43

В дополнение к cfengine и марионетке, существует также шеф-повар. Я настоятельно рекомендовал бы использовать один из этих инструментов, когда вещи всегда будут расти в неожиданных направлениях. Это помогает управлять вещами в централизованном месте.

Важная вещь распознать состоит в том, что возможности - Вы, не получит все, но если можно, по крайней мере, получить 90% там, это - запуск. Кроме того, это интересно и сделает Вашу жизнь легче в конечном счете. Наконец, это - хороший навык, чтобы иметь продвижение.

5
ответ дан 28 November 2019 в 20:17
  • 1
    шеф-повар является недавней записью в сцену управления конфигурацией. It' s разработанный, чтобы быть настроенным путем записи рубина, чтобы сделать то, что Вы хотите, в противоположность puppet' s пользовательский декларативный язык. Время покажет, какой метод удается хорошо. Я в настоящее время сижу в марионеточном лагере. –  David Pashley 29 June 2009 в 16:08

Я использую cfengine с 5 лет для установки debian (от древесного до lenny в наше время). С травлением я создаю пользовательский debian-установщик. Благодаря предварительному семени подходит один единственный вопрос: "точит имя хоста". После того, как этот cfengine настраивает целый сервер (dns+dhcp с dnssec, самбой, ntpd, значение по умолчанию (Samba) пользователи и пароли, ssh, openvpn, апачский vHosts, резервное копирование с rsnapshot на LVM, пользовательский webminmodules и т.д.).

Даже когда я устанавливаю всего один сервер, я использую cfengine-сценарии от своей панели инструментов как это:

control:

  Repository  = ( $(CFREPO) )
  IfElapsed = ( 0 )
  Syslog = ( on )
  actionsequence = ( editfiles shellcommands )
  CPTYPE = ( sum )

editfiles:
  { /etc/sysctl.conf
    # don't spam on tty:
    BeginGroupIfNoSuchLine "kernel.printk.*=.*2 4 1 7"
      DeleteLinesMatching "^kernel.printk.*=.*"
      Append "kernel/printk=2 4 1 7"
    EndGroup
    # no E(xplicit?) C(ongestion) N(otification) 
    BeginGroupIfNoSuchLine "net.ipv4.tcp_ecn.*=.*0"
      DeleteLinesMatching "^net.ipv4.tcp_ecn.*=.*"
      Append "net/ipv4/tcp_ecn=0"
    EndGroup
    BeginGroupIfNoSuchLine "net.ipv4.ip_forward.*=.*1"
      DeleteLinesMatching "^net.ipv4.ip_forward.*=.*"
      Append "net/ipv4/ip_forward=1"
    EndGroup
    DefineClasses "configchange_sysctl"
  }

shellcommands:
  configchange_sysctl::
    "/sbin/sysctl -p /etc/sysctl.conf"

# vim: set ts=2:

Мне нравится cfengine, потому что cf2-сценарии несколько человекочитаемы.

так определенно стоящий того для работы с инструментами для автоматического управления конфигурацией.

/thorsten

3
ответ дан 28 November 2019 в 20:17

Инструмент номер один мне жаль, что я не имел при выполнении небольшого сайта, является сборками 'кнопки'. Это делает исправление, обновления, и восстанавливает легче, который может обратиться к несметному числу других проблем в будущем.

Никакой ssh правильно не установлен на всех полях? никакой curl/wget/vim также? что относительно других внутренних инструментов требуется иметь на каждом поле?

Наличие централизованного управления Ваших серверов является одним из первых инструментов, у Вас должна быть работа для приложения будущих намного легче усилий.

1
ответ дан 28 November 2019 в 20:17

Это получено для ценности того даже для небольшого сайта. Все о непротиворечивости, когда Вы растете. И Вы знаете, что Ваш сайт собирается вырасти. Лучше всего запускаться в то время как Ваш все еще маленький. Cfengine является потрясающим. Особенно версия 3, которая может обработать все диспетчеры пакетов через поле и его настоящий легкий вес и безопасный и это "просто, работает". Марионетка просто не поставила то, чего это требовало. Не судили Шеф-повара.

Преимущество cfengine по другим, это - крайний легкий вес, но на самом деле имеет больше возможностей. Это - безопасность, похож на ssh, а не веб-сертификаты, используемые марионеткой. Когда я сказал моему боссу о cfengine, что он думал, что это была научная фантастика :) При поиске чего-то футуристического попытайтесь читать некоторые научно-исследовательские работы Marc Burgess. Интересный материал.

2
ответ дан 28 November 2019 в 20:17

Я соглашаюсь со всеми здесь. Необходимо начать учиться и настраивать рабочую инфраструктуру, когда Вы не к большому. Поскольку затем Вы подготовлены, когда Вы растете.

В зависимости от того, что Вы хотите выполнить, я пошел бы для FAI, cfengine и предварительного отбора для Debian/Ubuntu. FAI может работать со многими различными инструментами, таким образом, это - хорошее начало для любого подобного Debian распределения. С FAI (и cfengine) управляемая классом конфигурация, Вы можете легкое деление Ваши установки в маленькие модули, которые затем можно выбрать, чтобы использовать для каждой машины. Таким образом будет полезно, даже если у Вас будет много различных машин. Это на самом деле более полезно, поскольку Вы зарегистрируете свою установку с этими сценариями. И когда Вы устанавливаете на новой машине, Вы ничего не забудете.

Да, у Вас ДОЛЖНЫ быть некоторые машины для тестирования на в том, перед развертыванием изменений в живой установке. Но со сценарием конфигурации как это, Вы не забудете делать любой шаг в живой установке.

1
ответ дан 28 November 2019 в 20:17

Теги

Похожие вопросы