Отдел продаж MNC нанял меня в качестве консультанта по программному обеспечению для создания веб-приложения.
Это веб-приложение создает файлы Excel на основе их внутренних бизнес-процессов.
Это веб-приложение готово, и я сказал им, что мне нужно развернуть его на сервере.
Их ИТ-отдел находится в другой стране, и мы потратили 6 месяцев на получение разрешения на сервер. После долгой работы с документами и волокиты мы по-прежнему нигде не видим никаких признаков сервера.
Наше решение заключается в том, что отдел продаж купит сервер 1U по моим рекомендациям. Отдел продаж также получил место в лаборатории на том же этаже, что и их офисы. Головка лаборатории позволяет разместить внутри стоечный сервер высотой 1U.
Однако у нас есть 2 вопроса, на которые я не могу ответить. Поэтому я ищу здесь совета экспертов по администрированию серверов.
1) лаборатория разрешает подключение машин только к их внутренней интрасети. Мое веб-приложение, к которому можно получить доступ через веб-браузер, требует URL-адреса. Я думал получить статический IP-адрес, чтобы отдел продаж мог получить доступ через http://some-static-ip/webapp
Это означает, что нам нужно получить помощь ИТ-отдела. После последних 6 месяцев бюрократии отдел продаж опасается просить у них статический внутренний IP-адрес.
Есть ли обходной путь, который мы можем сделать со своей стороны, чтобы не обращаться за помощью к ИТ-отделу?
ОБНОВИТЬ
Я воспользуюсь советом @MichaelHampton и расскажу о статическом IP-адресе ИТ-отдела. Сейчас я сосредоточен на втором вопросе.
2) Допустим, нам удалось развернуть мое веб-приложение на этом сервере, который находится в интрасети.
Нам необходимо регулярно обновлять веб-приложение и ОС. (Вероятно, мы будем использовать серверную версию ubuntu 12.04)
Для этого сервера не будет подключения к Интернету, поскольку лаборатория, в которой он будет находиться, подключена только к внутренней сети.
Мой код размещен на github, я уже готов спускаться каждый раз в месяц, чтобы обновлять базу кода для веб-приложения с помощью флэш-накопителя.
Однако я не знаю, что я могу сделать, чтобы обновить ОС без доступа в Интернет.
Есть ли аппаратное / программное решение, которое я могу рассмотреть, чтобы преодолеть это? Я считаю, что смогу убедить отдел продаж заплатить за такое решение, если оно имеет смысл.
Например, я покупаю какой-то мобильный широкополосный ключ, который можно подключить к серверу?
Каждый раз, когда я спускаюсь в лабораторию, мне нужно отсоединить сервер от внутренней сети, подключить ключ к серверу, чтобы сервер теперь имел доступ в Интернет через ключ. Затем я могу легко обновить серверную ОС и кодовую базу.
После того, как я закончу, я отсоединю ключ, а затем подключу сервер к внутренней сети.
ОБНОВИТЬ
Я хотел бы передать любые предложения по второму вопросу ИТ-отделу или руководству выше ИТ-отдела.
ОБНОВЛЕНИЕ1
В конце концов, мы нашли способ с ИТ-командой разрешить обновление сервера, открыв соединение через прокси.
Спасибо.
В ответ на ваш первый вопрос, как предложил Майкл Хэмптон, вам необходимо получить статический IP-адрес через ИТ-группу. Для удобства вам следует поговорить с ними о создании записи DNS, если это возможно. Запоминающееся имя хоста для сервера или приложения упростит жизнь пользователям приложения.
Отвечая на ваш второй вопрос. Для ОС вы можете использовать apt-offline
(документация здесь). Вам не нужно будет подключать 3G-ключ к серверу или отключать что-либо, вам просто понадобится USB-ключ. Я бы с осторожностью относился к подключению 3G-соединений к системам в лабораторной среде, поскольку вы можете нарушить меры безопасности, действующие в лабораторной среде.
Первый шаг: вам нужно перейти на сайт клиента и сгенерировать файл подписи, который дает apt-offline основу для работы, каталогизируя установленные версии пакета на машине. Сохраните этот файл подписи на USB-ключ и возьмите его с собой.
Например, чтобы сгенерировать файл подписи и сохранить его на USB-ключ, установленный на /media/USB
ты бы убежал apt-offline set /media/USB/updates.sig
. Вы можете заменить update.sig любым именем файла, которое упрощает идентификацию сервера, который представляет файл подписи.
Второй шаг: получив файл подписи, вы можете запустить apt-offline на компьютере с подключением к Интернету, предоставив ему файл подписи, и он загрузит все необходимые обновления. apt-offline
создаст zip-файл, который вы можете скопировать на свой USB-ключ.
Чтобы загрузить пакеты, необходимые для обновления сервера, на основе файла подписи на USB-ключе, установленном на /media/USB
с именем updates.sig, используя пять потоков загрузки (для ускорения работы), в zip-файл на том же USB-диске с именами updates.zip, вы должны запустить apt-offline get -t 5 --bundle /media/USB/updates.zip /media/USB/updates.sig
.
Последний шаг. Затем вы можете взять USB-ключ, содержащий файл updates.zip, до размера клиента, и на сервере ubuntu запустить apt-offline install /media/USB/updates.zip
для установки всех обновлений с USB-ключа, установленного на / media / USB, из архива updates.zip. После завершения не забудьте снова выполнить первый шаг, чтобы сгенерировать новый файл подписи. Это просто сэкономит вам поездку на сайт клиента для создания нового файла подписи.
Для обновления вашего приложения самый простой способ (не зная, есть ли у вас репозиторий git на сервере в лаборатории заказчика) - это экспортировать последний код в архив из репозитория git, используя git archive
. Это обсуждается более подробно Вот.
Например, первым шагом было бы заархивировать локально извлеченную копию кода в сжатый tar-архив Bzip2, вы должны запустить git archive master | bzip2 > /media/USB/latest-code.tar.bz2
из каталога репозитория. Это сохранит код в latest-code.tar.bz2 на USB-ключе, установленном на / media / USB.
Вторым шагом будет создание резервной копии старого кода на сервере в сети клиента на тот случай, если вам потребуется отменить обновление. Вы можете сделать резервную копию кода, если он хранится в / var / www / application, запустив tar cpjfv /media/USB/code-backup.tar.bz2 /var/www/application
. Это создаст сжатый tar-архив Bzip2, сохранит права доступа и сохранит его в файл с именем code-backup.tar.bz2 на USB-ключе, установленном на / media / USB.
Наконец, вы можете извлечь архив, содержащий новый код, с USB-ключа, используя tar jxfv /media/USB/latest-code.tar.bz2
. Это извлечет содержимое latest-code.tar.bz2
архив с USB-ключа, установленного на /media/USB
в текущий каталог. Используя пример из предыдущего шага, вы должны использовать cd /var/www/application
во-первых, чтобы сменить каталог на папку, в которой сначала размещается приложение.
Надеюсь, это поможет!