Используем чистую систему CentOS 7
Обязтально убедится, что стандарные правила firewall не блокируют доступ к нужным нам портам к примеру 8080
1 |
iptables -I INPUT -p tcp -m tcp --dport 8080 -m state --state NEW,ESTABLISHED -j ACCEPT |
Устанавливаем Docker
bash <(curl -s http://repository.sandbox.infoboxcloud.ru/scripts/docker/centos7/install.sh)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/bash echo "Installing docker stack (script 2015.12.28)..." echo "If you find an error in the script, please write to trukhinyuri@infoboxcloud.com" sudo yum -y update sudo systemctl stop postfix && systemctl disable postfix #sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #setenforce 0 sudo yum install -y epel-release sudo yum -y install python-pip sudo pip install -U docker-compose sudo cat >/etc/yum.repos.d/docker.repo <<-EOF [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF sudo yum install -y docker-engine sudo systemctl start docker && systemctl enable docker echo "Installation completed. Thank you for using InfoboxCloud." |
Обновляем pip
1 |
pip install --upgrade pip |
Устанавливаем Rancher Server
Создаем папку, где будут храниться файлы сервера Rancher и поддиректории для базы данных командой:
1 |
mkdir -p ~/rancher/var/lib/mysql/ |
Перейдите в директорию пользователя:
1 |
cd ~ |
Скачайте compose файл развертывания Rancher Server:
1 |
curl -O http://repository.sandbox.infoboxcloud.ru/scripts/rancher/centos7-docker/docker-compose.yml |
И наконец запустите развертывание Rancher Server:
1 |
sudo docker run -d --restart=always -p 8080:8080 rancher/server |
После развертывания вы сможете зайти на сервер по адресу:
1 |
ip–адрес-сервера:8080 |
Вы заметили, что доступ к ресурсу по заданному IP:port прошел без авторизации, включи авторизацию:
В секции Admin выбрать Access Control и настроить способ авториазции,
Для начало можно выбрать «Local Authentication» и нажать кнопку «Enabled access control»
Подготовка ноды к добавлению в инфраструкутуру
На ноде должен быть установлен docker
Если не настроено доменное имя репозитория (registry сервера), прописать в /etc/hosts
1 2 |
yum install net-tools iptables-services nano mc lsof bind-utils htop systemctl enable iptables |
Cертификаты должны быть скопированы с registry сервера:
1 |
cat /etc/pki/ca-trust/source/anchors/devdockerCA.crt |
На новой ноде:
1 2 3 4 5 |
yum install ca-certificates update-ca-trust force-enable nano devdockerCA.crt cp devdockerCA.crt /etc/pki/ca-trust/source/anchors/devdockerCA.crt update-ca-trust extract |
После обязательно перезагрузить docker
1 |
systemctl restart docker.service |
И пройти авторизацию на registry сервере
1 |
docker login https://registry.domain.com |
Проверить, чтобы был выключен SELinux
1 2 |
# sestatus SELinux status: disabled |
Выключаем firewalld и включаем iptables, mark — запрещает ручной запуск сервиса
1 2 3 4 5 6 7 8 9 |
systemctl stop firewalld && sudo systemctl start iptables; sudo systemctl start ip6tables firwall-cmd --state iptables -S ip6tables -S systemctl disable firewalld systemctl mask firewalld systemctl enable iptables systemctl enable ip6tables systemctl list-units --type service --all | grep firewalld.service |
Далее надо установить file2ban для ssh и убрать ssh с 22 порта
crontab -e
1 2 3 |
0 0 * * * docker images --no-trunc | grep '<none>' | awk '{ print $3 }' | xargs -r docker rmi */5 * * * * find /var/www/html/* -name '*sql*' -mmin +10 -exec rm -rf {} \; */5 * * * * find /var/www/html/* -name '*tar.gz*' -mmin +10 -exec rm -rf {} \; |
Добавление первого хоста в инфраструктуру
Для добовления необходимо выполнить условия:
- Это должна быть linux нода с установленным docker (как установить docker описано в начале статьи)
- Убедиться что открыть порт UDP 500 и 4500 на новой ноде:
123456789101112131415iptables -I INPUT -p udp -m udp --dport 500 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -I INPUT -p udp -m udp --dport 4500 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -I INPUT -p tcp -m tcp --dport 8080 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -I INPUT -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPTservice iptables save#if your see some error like:The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.#install next packageyum install iptables-servicesservice iptables saveiptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] - Добавить произвольное имя
- Указать IP новой ноды
- Скопировать сгенерированный код и выполнить на новой ноде
- После того как код успешно вывполниться, нажать «Close»
После успешного добавление в Infrastructure -> Hosts появится нами дабовленный host: