У меня есть сеть 20 компьютеров (вся под управлением Ubuntu 10.04 LTS), соединенный вместе в сети. Большинство машин помещается в места, до которых действительно трудно получить.
У меня есть центральная машина, от которой я могу свободно ssh ко всем другим машинам. эта центральная машина является единственной, которая подключена к Интернету.
У меня теперь есть потребность установить Java 1.6 на всех 'удаленных' машинах (те, которые не подключены к Интернету).
Было бы возможно сделать так путем доступа к ним из 'центральной' машины и предоставления им файлы Java 1.6 установки (или некоторым другим способом?), как я иду об этом?
Вы всегда можете скачать архивированный JDK из оракула. Это можно переместить в соответствующую позицию и извлечь там.
Java не требует особых настроек. Хорошей идеей будет установка JAVA_HOME в файле профиля, а путь JDK / bin - dir. Однако ...
Я не знаю, возможно ли использовать центральный компьютер в качестве прокси. установить JDK и указать другим машинам использовать его в качестве источника. Ключевые слова для поиска: репозиторий, apt-get, proxy.
Скопируйте загруженные таким образом .dep-файлы клиентам и используйте dpkg -i xy.deb
для их установки.
Вы можете использовать несколько команд, введенных в сценарий, чтобы использовать центральную машину в качестве маршрутизатора, чтобы посещать интернет от клиентов. Вам также нужно 2 команды на клиентах. Тогда вы могли бы использовать apt-get от клиентов для доступа в интернет.
Я сам не понимаю эти сценарии - только на софте, чтобы приспособить его к моим потребностям. :) Это мой скрипт 'gateway.sh', который будет запускаться на маршрутизаторе с помощью sudo:
#!/bin/bash
# test if ip-forward is up - if not, enable it:
#
# maybe the network card has no IPv4 adress? Use a static IP:
# if you have a static, well known IP, comment this out:
ifconfig eth0 192.168.32.8 up
#
# Tell the kernel to do ip-forwarding:
#
ipf=$(cat /proc/sys/net/ipv4/ip_forward)
if [[ ipf -eq "0" ]] ; then
echo "1" > /proc/sys/net/ipv4/ip_forward
fi
#
# forward-masquerade, script follows:
#
. /etc/ppp/masquerade
#
# might or might not be needed.
# start dhcp-server, older method:
# /etc/init.d/dhcp3-server start
# newer method:
# /etc/init.d/dhcdbd start
Тогда вам нужен скрипт ip-masquerade-script, который вам не нужно помещать в / etc / ppp / masqeuerade, но измените строку в gateway.sh, если вы этого не сделаете.
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
#
iptables -A FORWARD -p tcp --tcp-flags SYN,RST, SYN -j TCPMSS --clamp-mss-to-pmtu
Всего несколько строк. Теперь вы начинаете sudo gateway.sh
и ждете клиентов. Это ничего не даст:
sudo route add default gw 192.168.32.8
, каким бы ни был IP центрального компьютера. Этого уже может быть достаточно. Возможно, вы бы изменили DNS-сервер, чтобы в нем был один из ваших DNS-провайдеров:
sudo edit /etc/resolv.conf
Работающий avahi-daemon и NetworkManager могут в основном мешать работе клиентов.
Что касается третьего и первого способа, я знаю, как это сделать точно, но самым элегантным способом, вероятно, был бы № 2, но я никогда не делал это сам. Поэтому я бы порекомендовал немного поискать или немного подождать, может, кто-то знает, как это сделать, или как сделать что-то лучше.
Вы можете настроить подходящий прокси. Если вы ищете Synaptic для apt proxy
, вы найдете несколько вариантов. В прошлом я использовал либо apt-cacher, либо apt-cacher-ng; Я не могу вспомнить, какой.
Прокси-сервер apt должен позволять вашим «удаленным» машинам использовать apt так же, как если бы они были подключены к Интернету. И вы будете использовать пропускную способность для загрузки определенного пакета только один раз.
Как насчет настройки центрального компьютера в качестве сервера NFS, размещения там файлов обновлений JDK и монтирования этого каталога на других компьютерах в интрасети?