Шаг 1 - Создание виртуальных машин
Создадим виртуальную машину с именем rhel-server-6.4-x86_64-host1. Объем оперативной памяти выделим в 1024 МБ. Объем виртуального жесткого диска выделим в 8 ГБ. Тип жесткого диска подойдет по умолчанию - VDI (VirtualBox Disk Image). Формат хранения также подойдет по умолчанию - динамический.
Аналогично создадим еще две виртуальные машины rhel-server-6.4-x86_64-host2 и rhel-server-6.4-x86_64-host3.
Шаг 2 - Установка ОС
Установим ОС на созданные виртуальные машины. Для этого воспользуемся образом rhel-server-6.4-x86_64-dvd.iso. Пароль подойдет простой например, redhat. Т.к. установка проходит на чистый виртуальный диск, то выберем установку с использованием всего диска (Use entire drive).
Шаг 3 - Настройка сети
Настроим сеть на Виртуальный адаптер хоста, и включим все доступные 4 адаптера. Это надо проделать с каждой виртуальной машиной.
Для внутренних сетей принято использовать следующие диапазоны IP-адресов:
- 10.0.0.0 - 10.255.255.255
- 172.16.0.0 - 172.31.255.255
- 192.168.0.0 - 192.168.255.255
Первый блок адресов представляет одну сеть класса А, второй блок - 16
последовательных сетей класса В, а третий блок - 256 последовательных
сетей класса С.
Этих IP-адресов никогда нет в сети Интернет. Это так называемые "серые адреса", используемые только в локальных сетях с NAT.
Настройки для host-машины:
IP-адрес: 192.168.30.10, маска подсети: 255.255.255.0
Настройки для гостевых машин (host1, host2, host3):
- IP-адрес: 192.168.30.11, маска подсети: 255.255.255.0
- IP-адрес: 192.168.30.12, маска подсети: 255.255.255.0
- IP-адрес: 192.168.30.13, маска подсети: 255.255.255.0
На данном этапе назначим пока IP-адрес только сетевому интерфейсу eth0. Это делается следующим образом.
vi /etc/sysconfig/network-scripts/ifcfg-eth0
i
DEVICE=eth0
HWADDR=08:00:27:24:4E:3C
TYPE=Ethernet
UUID=279a71f8-44f2-4b3a-a71a-e521cf5ae0a4
ONBOOT="yes"
NM_CONTROLLED="no"
BOOTPROTO="none"
HOSTNAME="host1"
IPV6INIT="no"
MTU="1500"
IPADDR="192.168.30.11"
NETMASK="255.255.255.0"
HWADDR=08:00:27:24:4E:3C
TYPE=Ethernet
UUID=279a71f8-44f2-4b3a-a71a-e521cf5ae0a4
ONBOOT="yes"
NM_CONTROLLED="no"
BOOTPROTO="none"
HOSTNAME="host1"
IPV6INIT="no"
MTU="1500"
IPADDR="192.168.30.11"
NETMASK="255.255.255.0"
ESC
:wq
service network restart
ping 192.168.30.10
Сразу включим доступ по SSH, потому что так удобнее управлять виртуальной машиной.
service sshd restart
chkconfig sshd on
chkconfig sshd on
Установим соответствующее имя хоста
vi /etc/sysconfig/network
i
HOSTNAME=host1
ESC
:wq
hostname host1
hostname
Аналогичное надо сделать для виртуальных машин host2 и host3. А после надо будет прописать в /etc/hosts всю эту информацию (разумеется на каждой виртуальной машине).
vi /etc/hostsi
192.168.30.11 host1
192.168.30.12 host2
192.168.30.13 host3
ESC
:wq
Шаг 4 - Настройка NTP
Создадим NTP Master Server, например, это будет host1. Выполняем на нем следующие команды:yum install ntp
yum install nano
nano /etc/ntp.conf
# Use the local clock
server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
# Give localhost full access rights
restrict 127.0.0.1
# Give machines on our network access to query us
restrict 192.168.30.0 mask 255.255.255.0 nomodify notrap
service ntpd restart
chkconfig ntpd on
iptables -I INPUT -p udp --dport 123 -j ACCEPT
service iptables save
service iptables restart
На host2 и host3 выполним следующие команды:
yum install ntp
nano /etc/ntp.conf
# Point to our network's master time server
server 192.168.30.11
restrict default ignore
restrict 127.0.0.1
restrict 192.168.30.11 mask 255.255.255.255 nomodify notrap noquery
driftfile /var/lib/ntp/drift
service ntpd stop
ntpdate -u 192.168.30.11
service ntpd start
chkconfig ntpd on
Шаг 5 - Подключение RHEL репозитория с установочного диска
mkdir /mnt/cdrommount -t iso9660 -o ro /dev/cdrom /mnt/cdrom
vi /etc/yum.repos.d/rhel_repo.repo
i
[rhel_repo]
name=RHEL_6.4_x86_64_Disc
baseurl="file:///mnt/cdrom/"
enabled=1
gpgcheck=0
ESC
:wq
yum clean allyum update
yum repolist
Шаг 6 - Установка Apache Tomcat
yum search java | grep 'java-'yum install java-1.7.0-openjdk.x86_64
yum install scp
scp -P 22 ~/apache-tomcat-7.0.34.tar.gz root@host2:~/
scp -P 22 ~/apache-tomcat-7.0.34.tar.gz root@host3:~/
tar -xvzf ~/apache-tomcat-7.0.34.tar.gz -C /opt/
ln -s /opt/apache-tomcat-7.0.34/ /opt/tomcat
yum install nano
nano /etc/init.d/tomcat
#!/bin/sh
#
# tomcat Starts Tomcat.
#
#
# chkconfig: 345 88 12
# description: Apache Tomcat Server.
### BEGIN INIT INFO
# Provides: $tomcat
### END INIT INFO
ulimit -Hn 16384
ulimit -Sn 16384
CATALINA_HOME=/opt/tomcat; export CATALINA_HOME
start() {
echo -n "Starting Tomcat: "
$CATALINA_HOME/bin/startup.sh
sleep 2
}
stop() {
echo -n "Stopping Tomcat: "
$CATALINA_HOME/bin/shutdown.sh
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"Usage: tomcat {start|stop|restart}"
exit
esac
Ctrl + O
Enter
Ctrl + X
chmod +x /etc/init.d/tomcat
service tomcat start
chkconfig tomcat on
nano /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
Ctrl + O
Enter
Ctrl + X
service iptables restart
Шаг 7 - Установка ActiveMQ
Скопируем на каждый узел кластера следующие файлы:
Установка (на каждом хосте):
tar -xvzf ~/apache-activemq-5.8.0-bin.tar.gz -C /opt/
ln -s /opt/apache-activemq-5.8.0 /opt/activemq- ~/apache-activemq-5.8.0-bin.tar.gz
Для распространения файлов по сети с host1 на host2, host3 можно использовать следующие команды:
scp -P 22 ~/apache-activemq-5.8.0-bin.tar.gz root@host2:~/
scp -P 22 ~/apache-activemq-5.8.0-bin.tar.gz root@host3:~/
scp -P 22 ~/apache-activemq-5.8.0-bin.tar.gz root@host3:~/
Установка (на каждом хосте):
tar -xvzf ~/apache-activemq-5.8.0-bin.tar.gz -C /opt/
nano /opt/activemq/conf/activemq.xml
...
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" useJmx="true">
...<managementContext createConnector="true" connectorPort="11099"/>
...
<kahaDB directory="${activemq.data}/kahadb" enableJournalDiskSyncs="true"/>
...
<memoryUsage limit="512 mb"/>
...
nano /etc/init.d/activemq
#!/bin/bash
#
# activemq Starts ActiveMQ.
#
#
# chkconfig: 345 88 12
# description: ActiveMQ is a JMS Messaging Queue Server.
### BEGIN INIT INFO
# Provides: $activemq
### END INIT INFO
# Set activemq related environment
ACTIVEMQ_HOME=/opt/activemq
# Invoke ActiveMQ
$ACTIVEMQ_HOME/bin/activemq $1
chmod +x /etc/init.d/activemq
chkconfig activemq on
service activemq start
nano /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8161 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 61616 -j ACCEPT
service iptables restart
Шаг 8 - Установка Mule ESB
Скопируем на каждый узел кластера следующие файлы:- ~/mule-ee-distribution-standalone-3.3.1.tar.gz
- ~/mmc-agent-mule3-app-3.3.1.zip
- ~/mmc-console-3.3.1
- ~/mule-ee-distribution-standalone-3.4.1.tar.gz
- ~/mmc-console-3.4.1.war
- ~/mule-ee-license.lic
Для распространения файлов по сети с host1 на host2, host3 можно использовать следующие команды:
scp -P 22 ~/mule-ee-distribution-standalone-3.3.1.tar.gz root@host2:~/
scp -P 22 ~/mmc-agent-mule3-app-3.3.1.zip root@host2:~/
scp -P 22 ~/mmc-console-3.3.1.war root@host2:~/
scp -P 22 ~/mule-ee-distribution-standalone-3.4.1.tar.gz root@host2:~/
scp -P 22 ~/mmc-console-3.4.1.war root@host2:~/
scp -P 22 ~/mule-ee-license.lic root@host2:~/
scp -P 22 ~/mule-ee-distribution-standalone-3.3.1.tar.gz root@host3:~/
scp -P 22 ~/mmc-agent-mule3-app-3.3.1.zip root@host3:~/
scp -P 22 ~/mmc-console-3.3.1.war root@host3:~/
scp -P 22 ~/mmc-console-3.3.1.war root@host3:~/
scp -P 22 ~/mule-ee-distribution-standalone-3.4.1.tar.gz root@host3:~/
scp -P 22 ~/mmc-console-3.4.1.war root@host3:~/
scp -P 22 ~/mule-ee-license.lic root@host3:~/
Установка (на каждом хосте):
tar -xvzf ~/mule-ee-distribution-standalone-3.3.1.tar.gz -C /opt/
tar -xvzf ~/mule-ee-distribution-standalone-3.4.1.tar.gz -C /opt/
Переключаться между версиями можно следующим образом:
unlink /opt/mule
ln -s /opt/mule-enterprise-standalone-3.3.1 /opt/mule
unlink /opt/mule
ln -s /opt/mule-enterprise-standalone-3.4.1 /opt/mule
Автозагрузка (на каждом хосте):
nano /etc/init.d/mule
#!/bin/bash
#
# mule Starts Mule ESB.
#
#
# chkconfig: 345 88 12
# description: Mule ESB.
### BEGIN INIT INFO
# Provides: $mule
### END INIT INFO
# Set Mule related environment
MULE_HOME=/opt/mule
# Invoke Mule
$MULE_HOME/bin/mule $1
chmod +x /etc/init.d/mule
chkconfig mule on
Настройка файрвола (на каждом хосте):
nano /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8585 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7777 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1099 -j ACCEPT
service iptables restart
Настройка wrapper.conf (на каждом хосте, вместо host1 надо подставлять имя хоста):
nano /opt/mule-enterprise-standalone-3.3.1/conf/wrapper.conf
После строки:
wrapper.java.additional.3=-Djava.net.preferIPv4Stack=TRUE
надо добавить строки:
wrapper.java.additional.4=-Dcom.sun.management.jmxremote
wrapper.java.additional.5=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.6=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=1099
wrapper.java.additional.8=-Djava.rmi.server.hostname=host1
wrapper.java.additional.9=-Dmule.verbose.exceptions=true
wrapper.java.additional.10=-Dspring.profiles.active=default,pilot
Установка лицензии (на каждом хосте):
/opt/mule/bin/mule -installLicense ~/mule-ee-license.lic
Запуск (на каждом хосте):
service mule start
Переключаться между версиями можно следующим образом:
unlink /opt/mule
ln -s /opt/mule-enterprise-standalone-3.3.1 /opt/mule
unlink /opt/mule
ln -s /opt/mule-enterprise-standalone-3.4.1 /opt/mule
Автозагрузка (на каждом хосте):
nano /etc/init.d/mule
#!/bin/bash
#
# mule Starts Mule ESB.
#
#
# chkconfig: 345 88 12
# description: Mule ESB.
### BEGIN INIT INFO
# Provides: $mule
### END INIT INFO
# Set Mule related environment
MULE_HOME=/opt/mule
# Invoke Mule
$MULE_HOME/bin/mule $1
chmod +x /etc/init.d/mule
chkconfig mule on
Настройка файрвола (на каждом хосте):
nano /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8585 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7777 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1099 -j ACCEPT
service iptables restart
Настройка wrapper.conf (на каждом хосте, вместо host1 надо подставлять имя хоста):
nano /opt/mule-enterprise-standalone-3.3.1/conf/wrapper.conf
После строки:
wrapper.java.additional.3=-Djava.net.preferIPv4Stack=TRUE
надо добавить строки:
wrapper.java.additional.4=-Dcom.sun.management.jmxremote
wrapper.java.additional.5=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.6=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=1099
wrapper.java.additional.8=-Djava.rmi.server.hostname=host1
wrapper.java.additional.9=-Dmule.verbose.exceptions=true
wrapper.java.additional.10=-Dspring.profiles.active=default,pilot
Установка лицензии (на каждом хосте):
/opt/mule/bin/mule -installLicense ~/mule-ee-license.lic
Запуск (на каждом хосте):
service mule start
Устанавливаем агента (на каждом хосте):
cp ~/mmc-agent-mule3-app-3.3.1.zip /opt/mule-enterprise-standalone-3.3.1/apps/
Устанавливаем консоль (только на host1):
cp ~/mmc-console-3.3.1.war /opt/tomcat/webapps/
или
cp ~/mmc-console-3.4.1.war /opt/tomcat/webapps/
Две консоли сразу нельзя поставить потому что они будут конфликтовать используя общую папку /mmc-data
Ход установки консоли можно проследить:
tail -f /opt/tomcat/logs/catalina.out
Очистка после удаления кластера:
rm -f /opt/mule-enterprise-standalone-3.3.1/.mule/mule-cluster.properties
rm -f /opt/mule-enterprise-standalone-3.3.1/.mule/mmc-agent-mule3-app-3.3.1/truststore.jks
Шаг 8 - Установка VoltDB
tar -xvzf ~/LINUX-voltdb-ent-3.5.0.1.tar.gz -C /opt/ln -s /opt/voltdb-ent-3.5.0.1/ /opt/voltdb
yum install screen
Создание отдельного "экрана" для запуска в нем Enterprise Manager:
screen -S enterprise_manager
/opt/voltdb/management/enterprise_manager.sh
nano ~/.voltdb/license.xml
Ctrl + a
d
Подключение к уже имеющемуся "экрану":
screen -ls
если detached то screen -r enterprise_manager
иначе screen -x enterprise_manager
Ctrl + A
d
nano /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21212 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21211 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3021 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4567 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9090 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2181 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5555 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5556 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5557 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9091 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1099 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 44444 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9000 -j ACCEPT
service iptables restart
http://192.168.30.11:9000/
admin:voltdb
Настроим SSH без пароля.