Используйте SSL для шифрования всего конвейера. Если НЕ АБСОЛЮТНО НЕОБХОДИМО, НЕ храните номера кредитных карт в своей базе данных. Необходимо использовать платежный шлюз, такой как Authorize.net для обработки транзакций. Каждая транзакция получит идентификатор транзакции, и это должно быть зарегистрировано Ваша база данных, потому что это не высокое значение или конфиденциальная информация.
Одной вещью остерегаться является регистрация ошибок. Я использую ELMAH для регистрации ошибок и обнаружил что, если кто-то поражает ошибку на странице, где они входят в свою информацию о карте, что информация о карте зарегистрирована как часть значений POST HTTP.
Я рекомендовал бы использовать смесь предварительного отбора Debian, где Вы даете установщику текстовый файл, который отвечает на все вопросы, которые это задало бы, и Марионетка.
Причина использования предварительного отбора, а не FAI состоит в том, что Вы не должны настраивать изображение сначала и соглашение с совершенствованием его. Вы закончите с установкой, очень похожей на то, что Вы имели бы, если бы Вы сделали их всех вручную. Когда Вы приезжаете для установки нового выпуска, необходимо будет обновить файл конфигурации с изменениями, вместо того, чтобы иметь необходимость восстановить новое изображение.
Инструмент управления конфигурацией особенно полезен, где у Вас есть несколько серверов, выполняющих ту же роль, и Вы хотите, чтобы они были идентичным кластером, например, веб-сервера. Однако они могут также быть полезны для конфигурирования основной установки всех серверов. Вы собираетесь хотеть установить конкретные пакеты на всех своих серверах, как ntpd и MTA. Вы собираетесь хотеть изменить файл конфигурации на всех своих серверах. Дополнительная выгода - то, что можно сохранить декларации в чем-то как подверсия и вести учет того, что изменилось на сервере и кто сделал это и почему. Управление конфигурацией может также быть жизненным средством сохранения в случае отказа сервера, и необходимо восстановить его быстро. Установите ОС (использующий FAI или предварительный отбор), установите марионетку, и далеко это идет, созданное назад точно, как это было прежде. Очевидно, необходимо будет сохранить резервные копии данных.
Управление конфигурацией требует, чтобы посвящение удостоверилось, что Вы только вносите изменения с помощью него и будете иметь оплачиваемую авансом стоимость, настраивающую вещи, но после того как у Вас есть рабочая установка, Вы не будете сожалеть о нем.
Марионетка является более современными из этих двух инструментов, которые Вы упомянули. Я действительно рекомендую это любому. Конфигурация является декларативным языком и легка создать высокоуровневые конструкции. Существует также очень многочисленное сообщество вокруг этого и всегда существуют люди, могущие помочь на списке рассылки или канале IRC.
Я рекомендовал бы CFengine для любой среды, которая является больше чем 2-3 полями и где у Вас есть некоторое понятие 'шаблонов' или серверов, выполняющих определенные роли.
Почему? Просто поместите его, уменьшает ошибки, у Вас есть инструмент, который гарантирует, что полномочия файла/каталога корректны везде в среде и когда Вы приезжаете для развертывания большего количества серверов, дескрипторы инструмента абсолютно все, и никогда не делает ошибок.
Контраст даже с квалифицированным Системным администратором, развертывающим веб-сервер в конце двенадцатичасового сдвига, когда вещи уже пошли не так, как надо.... Они, вероятно, будут помнить, что противный небольшой конфигурационный файл, который должен войти в/etc/random/location/foo/bar иначе приложение, тихо не сделает что-то довольно важное, как клиенты счета?:)
Инструменты как CFengine являются также отличным способом выполнить обновления системы защиты всей среды. Отбрасывание конфигурации Nagios (NRPE) на все поля является также пустяком. Имеете ли Вы дело с пятью полями или пятьюстами полями, Вы сэкономите время с CFengine.
Вероятно, стоит отметить, что моя среда немного больше, однако я также развернул CFengine для небольших сред, чем Вы отмечаете, следовательно рекомендация!
Вероятно, Вашим следующим вопросом будет CFengine по сравнению с Марионеткой? Это - более трудное решение, и я всегда шел CFengine из-за (в первые годы) некоторая незрелость от Марионетки, особенно вокруг регистрации ошибок.... в эти дни я действительно не уверен - имейте игру и смотрите? Оглядываясь назад к моим конкретным вопросам с Марионеткой, они были сертификатом SSL связанный, крайне тихий отзыв время, я провел 3 часа, диагностируя сервер <-> проблемы подключения клиента в irc.freenode.net/#puppet с некоторыми крупными прочитайте руководство и RTFS только для нахождения ошибки, не быть зарегистрированным, и Luke сказал, "А-ч, которого это действительно трудно зафиксировать" и никогда не делало.:(
В дополнение к cfengine и марионетке, существует также шеф-повар. Я настоятельно рекомендовал бы использовать один из этих инструментов, когда вещи всегда будут расти в неожиданных направлениях. Это помогает управлять вещами в централизованном месте.
Важная вещь распознать состоит в том, что возможности - Вы, не получит все, но если можно, по крайней мере, получить 90% там, это - запуск. Кроме того, это интересно и сделает Вашу жизнь легче в конечном счете. Наконец, это - хороший навык, чтобы иметь продвижение.
Я использую 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
Инструмент номер один мне жаль, что я не имел при выполнении небольшого сайта, является сборками 'кнопки'. Это делает исправление, обновления, и восстанавливает легче, который может обратиться к несметному числу других проблем в будущем.
Никакой ssh правильно не установлен на всех полях? никакой curl/wget/vim также? что относительно других внутренних инструментов требуется иметь на каждом поле?
Наличие централизованного управления Ваших серверов является одним из первых инструментов, у Вас должна быть работа для приложения будущих намного легче усилий.
Это получено для ценности того даже для небольшого сайта. Все о непротиворечивости, когда Вы растете. И Вы знаете, что Ваш сайт собирается вырасти. Лучше всего запускаться в то время как Ваш все еще маленький. Cfengine является потрясающим. Особенно версия 3, которая может обработать все диспетчеры пакетов через поле и его настоящий легкий вес и безопасный и это "просто, работает". Марионетка просто не поставила то, чего это требовало. Не судили Шеф-повара.
Преимущество cfengine по другим, это - крайний легкий вес, но на самом деле имеет больше возможностей. Это - безопасность, похож на ssh, а не веб-сертификаты, используемые марионеткой. Когда я сказал моему боссу о cfengine, что он думал, что это была научная фантастика :) При поиске чего-то футуристического попытайтесь читать некоторые научно-исследовательские работы Marc Burgess. Интересный материал.
Я соглашаюсь со всеми здесь. Необходимо начать учиться и настраивать рабочую инфраструктуру, когда Вы не к большому. Поскольку затем Вы подготовлены, когда Вы растете.
В зависимости от того, что Вы хотите выполнить, я пошел бы для FAI, cfengine и предварительного отбора для Debian/Ubuntu. FAI может работать со многими различными инструментами, таким образом, это - хорошее начало для любого подобного Debian распределения. С FAI (и cfengine) управляемая классом конфигурация, Вы можете легкое деление Ваши установки в маленькие модули, которые затем можно выбрать, чтобы использовать для каждой машины. Таким образом будет полезно, даже если у Вас будет много различных машин. Это на самом деле более полезно, поскольку Вы зарегистрируете свою установку с этими сценариями. И когда Вы устанавливаете на новой машине, Вы ничего не забудете.
Да, у Вас ДОЛЖНЫ быть некоторые машины для тестирования на в том, перед развертыванием изменений в живой установке. Но со сценарием конфигурации как это, Вы не забудете делать любой шаг в живой установке.