Установка Convirt2.0.1 на хост
с голой ОС: Ubuntu Server 10.10 x64 или Debian 6.0 x64
=====================================================
ВНИМАНИЕ !
Прочтите мои грабли "[8.1] Установка Convirt 2.0.1 на Ubuntu 11.04 x64 Server"
Совместимые версии ОС (для установки по ДАННОЙ инструкции) указаны здесь:
- Convirture-certified configurations (http://www.convirture.com/support_configurations.php)
- community-tested configurations (http://www.convirture.com/wiki/index.php?title=Community_tested_distro)
Установка
- http://www.convirture.com/wiki/index.php?title=Convirt2_Installation
- http://www.convirture.com/wiki/index.php?title=C2_ubuntu_installation
- http://www.horoa.net/2011/04/convirt-install/
Скрины
=====================================================
1) создаем окружение
Создаим пользователя (и группу), который будет использоваться для установки и запуска приложения convirt:
- root@dom0:~$ addgroup --system convirt
- root@dom0:~# adduser --system --ingroup convirt --disabled-password --home /var/cache/convirt convirt
Настроим поведение sudo для него. В файле /etc/sudoers содержатся настройки по работе с sudo для разных пользоватлелей. Читаем /etc/sudoers.d/README , и добавляем следующую строку, чтобы сделать нашу жизнь проще:
- sudo touch /etc/sudoers.d/convirt (пусть имя файла и юзера совпадают..)
- sudo chmod 0440 /etc/sudoers.d/convirt
- sudo echo "Defaults>convirt set_home" > /etc/sudoers.d/convirt
Создаем домашний каталог и устанавливаем права на него:
- root@dom0:~# sudo mkdir /var/lib/convirt
- root@dom0:~# sudo chown convirt:convirt /var/lib/convirt
"Логинимся" как convirt, без пароля:
- root@dom0:~$ cd /var/cache/convirt convirt
- root@dom0:~# sudo -u convirt -s
Сейчас мы непривилегированный пользователь. Проверим где мы:
- convirt@dom0:~$ pwd
Ответ должен быть:
- /var/cache/convirt
Именно в нашем домашнем каталоге (если это не так, перейдите в каталог /var/cache/convirt) мы будем создавать SSH-ключи для идентификации себя в управляемых серверах.
- ssh-keygen -t rsa -b 2048
В ответ мы увидим нечто такое:
- Generating public/private rsa key pair.
- Enter file in which to save the key (/var/cache/convirt/.ssh/id_rsa): convirt (пусть имя файла и юзера совпадают..)
- Enter passphrase (empty for no passphrase): ПАРОЛЬ ПУСТОЙ!!! см. замечание ниже.
- Enter same passphrase again:ПАРОЛЬ ПУСТОЙ!!! см. замечание ниже.
- Your identification has been saved in convirt.
- Your public key has been saved in convirt.pub.
- The key fingerprint is:8f:7e:b3:8e:66:f7:1c:29:eb:58:1f:8a:0f:78:a1:ce convirt@sr04
- The key's randomart image is:
- +--[ RSA 2048]----+
- | |
- | |
- | |
- | |
- | S |
- | o + . |
- | o + + + |
- | o oo*+* o |
- | Eo=*B++ |
- +-----------------+
Эти ключи будут использоваться позже.
Замечание по паролям:
согласно манов adduser/addgroup при указании параметра "--disabled-password" пользователь может войсти в систему без пароля. Если есть ключи пользователя, то у пользователя остается возможность войти в систему только по ключам (что мы сгененрировали), и опять же эти ключи должны быть также без пароля (т.е. авторизация только по ключу без пароля). Подробнее: читаейте ман от убунты: http://manpages.ubuntu.com/manpages/dapper/ru/man8/adduser.8.html
2) Загружаем нужные пакеты на диск
Установим wget, если его еще нет
- sudo apt-get install wget
"Заходим" как пользователь convirt
- root@dom0:~# sudo -u convirt -s
Далее (сели используется прокси для инета) настраиваем прокси:
- export http_proxy="http://proxy-server:proxy-port"
Загружаем пакеты в текущий каталог (домашний, /var/cache/convirt)
- wget --no-cache http://www.convirture.com/downloads/convirt/2.0.1/convirt-install-2.0.1.tar.gz
- wget --no-cache http://www.convirture.com/downloads/convirt/2.0.1/convirt-2.0.1.tar.gz
- wget --no-cache http://www.convirture.com/downloads/convirture-tools/2.0.1/convirture-tools-2.0.1.tar.gz
Распаковываем (ТОЛЬКО ОДИН ФАЙЛ...) в текущий (домашний) каталог. В нем будут созданы каталоги, содержащие скрипты для создания среды TurboGerars2 (tg2) и сервера управления ConVirt:
- tar -xzf convirt-install-2.0.1.tar.gz
"Выходим" как пользователь convirt
- root@dom0:~# exit
3) Пару слов о Python
Замечание 1.
Прочтите мои грабли "[8.1] Установка Convirt 2.0.1 на Ubuntu 11.04 x64 Server" про проблемі пакетов python-xen-3.3 + python-dev + python2.6-dev
Замечание 2.
- Setuptools version 0.6c11 or greater has been installed.
- (Run "ez_setup.py -U setuptools" to reinstall or upgrade.)
- sudo: easy_install: command not found
- ERROR: Failed installing virtualenv.
Это происходит из-за того, скрипт поиска зависимостей (что ниже) именно для этого пакета (python и все что с ним связано) для разруливания зависимостей не использует стандартный установщик Debian, а использует "самописный" механизм обновления библиотек (так написано в инструкции "француза", поверим ему 8=))
Поэтому сначала заставим наш apt-get обновить Python стандартными Debian-средствами ДО(!) запуска скрипта.
ВНИМАНИЕ!!! Именно пакет python2.6-dev, а не пакет python-dev (!!) - так написано у "француза" + читай замечание 1:
- sudo apt-get -y install python2.6-dev python-setuptools
4) Пару слов о MySQL
Внимание! Скрипт поиска зависимостей (что ниже) устанавливает/обновляет MySQL в режиме InnoDB, поэтому
1. перед запуском скрипта поиска зависимотей делаем следующее:
- если установлен: сделать бекап баз данных + вспомнить и запомнить пароль root сиквела 8=))
- установка/обновление библиотек: sudo apt-get -y install libmysqlclient-dev
2. во время работы скрипта при установке/обновлении MySQL будет предложено указать пароль для root сиквела:
- если новая установка, указываем (без кавычек) "convirt" ОБЯЗАТЕЛЬНО!!! (потом изменим);
- если же обновляемся, то указываем пароль, который "вспомнили" на предыдущем шаге (1) до запуска скрипта 8=))
3. После того как скрипт успешно отработал, проверяем содержимое файла /etc/mysql/my.cnf на предмет того, что внем содержится следующее:
- root@dom0:~# sudo nano /etc/mysql/my.cnf
- [mysqld]
- default-storage-engine=innodb
- innodb_buffer_pool_size=1G
- innodb_additional_mem_pool_size=20M
и если нужно - правим конфиг и перезапускаем MySQL сервер:
- root@dom0:~# sudo /etc/init.d/mysql restart
5) поиск и установка зависимостей, необходимых для ConVirt
Внимание! Мы распаковали скрипты от имени пользоваетля convirt в его домашний каталог /var/cache/convirt/ и по окончании вышли из режима работы от имени юзера convirt, т.е. сейчас мы "сидим" под собой. Обновление системы рекомендуется выполнять от имени root или с использованием sudo того пользователя, кто имеет право устанавливать обновления.
**** на сайте разработчика ****
- sudo ./convirt-install/install/cms/scripts/install_dependencies
**** на сайте "француза" ****
- root@dom0:~# cd /var/cache/convirt/convirt-install
- root@dom0:~# ./install/cms/scripts/install_dependencies
6) Запускае скрипт первоначальной настройки
- root@dom0:~# sudo -u convirt -s
- convirt@dom0: ~$ cd
- convirt@dom0: ~$nano convirt-install/install/cms/scripts/install_config
Укажем, где мы хотим установить convirt.
В моем случае, я считаю, что /var/lib/convirt это лучшее место. Так что я устанавливаю префикс так:
- CONVIRT_BASE=/var/lib
Кроме установленных пакетов нужно установить само приложение (TurboGears environmnet):
- convirt@dom0:~$ source convirt-install/install/cms/scripts/install_config
- convirt@dom0:~$ tar -xzf ./convirt-2.0.1.tar.gz -C $CONVIRT_BASE
- convirt@dom0:~$ ./convirt-install/install/cms/scripts/setup_tg2
Во время установки, возможно, что вы видите следующее сообщение об ошибке:
- ls:не может получить доступ/var/lib/convirt/tg2env/lib/python2.4/site-packages/Beaker-py2.4.egg/beaker/ext/google.py *:Нет такого файла илидиректория.
Это не влияет на работоспособность приложения. не обращайте внимания.
7) Меняем пароль root для доступа к серверу MySQL
- convirt@dom0:~$ sudo nano /var/lib/convirt/src/convirt/web/convirt/development.ini
- sqlalchemy.url=mysql://convirt:somepass@localhost:3306/convirt?charset=utf8
В этой строке указан пароль, который был указан во время установки для пользователя root. Изменим его. Формат команды такой
- mysqladmin -u root -p старый_пароль password новый_пароль
меняем:
- convirt@dom0:~$ mysqladmin -u root -p 'convirt' password 'новый_пароль'
- convirt@dom0:~$ history -c
- convirt@dom0:~$ mysql -u root -p
- mysql> grant all privileges on convirt.* to 'convirt'@'localhost' identified by 'новый_пароль';
- mysql> flush privileges ;
- mysql> exit
Пароль root-а изменили, в файле также не забываем поправить(!!!!).
Также не забываем проверить /etc/mysql/my.cnf (о чем было выше).
Можем запустить следующий сценарий.
8) Последний скрипт установки и запуск.
Когда скрипт спросит "Введите ключевую фразу" ничего не заполняете. Просто продолжайте далее. Запускаем последний скрипт:
- convirt@dom0:~$ ./convirt-install/install/cms/scripts/setup_convirt
Когда отработает запускаем (наконец-то):
- convirt@dom0:~$ cd /var/lib/convirt
- convirt@dom0:~$ ./convirt-ctl start
Увидите сообщение об ошибке:
- No module named xen.xend.XendClient
Не страшно - ваше окружение не может найти модуль Python-Xen. Чтобы исправить это, создадим нужную символическую ссылку ( Внимание! Это нужно делать от имени root или sudo - с достаточными правами):
- convirt@dom0:~$ exit
- root@dom0:~# ln -s /usr/lib/xen-4.0/lib/python/xen /usr/lib/python2.6/
- root@dom0:~# ln -s /usr/lib/xen-4.0/lib/python/grub /usr/lib/python2.6/
Всё. Convirt установлен и настроен. Дальнейчая гнастройка выполняется через веб-браузер.
9) Заходим в админ-панель: http://hostname:8081 (admin/admin)
Чтобы начать управлять сервером, сперва нужно настроить convirt через веб-интерфейс. Для начала нужно установить SSH-ключ, который мы сгенерировали ранее на все управляемые сервера.
Для этого копируем public-key (от convirt) от имени некоторого пользователя на тот сервер, которым будем управлять через WebUI convirt:
- scp /var/cache/convirt/.ssh/id_rsa.pub user@managed_server:/tmp
Затем на управляемом серере это тключ поместите в домашнюю паку пользователя, который будет имет право заходить в WebUI. Например для root:
- root@managed:~# [ -d /root/.ssh ] || mkdir /root/.ssh && cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys
Следующие этапы можно выполнить автоматически без особых трудностей, включая установку convirt-tools на dom0. Мы этого делать не будем - настроим нужные средства Xen вручную таким образом, чтобы действительно понимать назначение запущенных служб.
Убедитесь что следующие пакеты действительно установлены на управляемом сервере (на который копировали ключи):
- root@managed:~# apt-get -y install socat dnsmasq uml-utilities lvm2 expect python-pexpect kpartx python-openssl
Я советую вам отключить Dnsmasq (в /etc/defaults/Dnsmasq), тем более, если вы используете в качестве "сетевой карты" мост.
Создадим еще один файл на управляемом сервере. Этот файл не является критическом для работы приложения. Он поззволяет собирать статистику о работоспособнсоти управляемых серверов:
- root@managed:~# cat /var/cache/convirt/server_info
- DISTRO="Debian"
- CODE_NAME="6.0"
- VER="6.0"
- KERNEL="2.6.32-5-xen-amd64"
- ARCH="x86_64"
- V_PLATFORM="XEN"
- V_PLATFORM_VER="4.0.1"
- DEFAULT_BRIDGE="xenbr0"
10) Конфигурируем XEN
Настроим Xen так, чтобы он использовал сервис XMLRPC. Конечно, лучше пользоваться XMLRPC поверх SSL, ну у convirt, кажется, есть проблема с SSL в версии 4.0.1 от Xen. В файле /etc/Xen/Xen-config.sxp, откорректируем настройки параметра (каждый последующий может быть откорректирован аналогично):
- (xend-tcp-xmlrpc-server yes)
- (xend-relocation-server yes)
- (dom0-min-mem 512)
- (xend-tcp-xmlrpc-server-address '0.0.0.0')
- (xend-tcp-xmlrpc-server-port 8006)
- #(xend-tcp-xmlrpc-server-ssl-key-file xmlrpc.key)
- #(xend-tcp-xmlrpc-server-ssl-cert-file xmlrpc.crt)
- (xend-relocation-port 8002)
Если всеже вы захотите использовать SSL (например с версией XEN.3.x), то раскомментируйте соотвествующие строчки и сгенерируйте сертификаты:
- root@managed:~# openssl genrsa -out /etc/xen/xmlrpc.key 2048
- root@managed:~# chmod 600 /etc/xen/xmlrpc.key
- root@managed:~# openssl req -new -key /etc/xen/xmlrpc.key -out /etc/xen/xmlrpc.csr
- root@managed:~# openssl x509 -req -in /etc/xen/xmlrpc.csr -signkey /etc/xen/xmlrpc.key -days 999 -out /etc/xen/xmlrpc.crt
- root@managed:~# /etc/init.d/xend restart
Во время генерации ключей помимо всей прочей информации будет запрошен пароль ("passphrase"). Оставляйте пустым!!!
Чтобы проверить, что ключи установлены правильно, попробуйте подключиться под пользователем convirt к управляемому серверу:
- convirt@dom0:~$ ssh -i /var/cache/convirt/.ssh/id_rsa root@managed_server
Примите ключ. Если вы соединяетесь без проблемы - вы победили!
Отойдите от профессиональных обязанностей вы, теперь немного почистим:
- convirt@dom0:~$ rm ~/.ssh/cms_id_rsa*
- convirt@dom0:~$ cd /var/lib/convirt
- convirt@dom0:~$ ./convirtctl stop
- convirt@dom0:~$ ./convirtctl start
Теперь можно добавить управляемый сервер (с установленым XEN) с в в convirt использованием XML-RPC.