Difference between revisions of "Setup OpenStack with Virtuozzo 7"
Mnestratov (talk | contribs) |
Mnestratov (talk | contribs) |
||
Line 64: | Line 64: | ||
<!--T:18--> | <!--T:18--> | ||
+ | As soon as we switched to a new linux distribution, which is not supported in upstream devstack yet, apply the following patch: | ||
+ | diff --git a/functions-common b/functions-common | ||
+ | index 47276f0..c0cdd3b 100644 | ||
+ | --- a/functions-common | ||
+ | +++ b/functions-common | ||
+ | @@ -338,8 +338,9 @@ function GetOSVersion { | ||
+ | # XenServer release 6.2.0-70446c (xenenterprise) | ||
+ | # Oracle Linux release 7 | ||
+ | # CloudLinux release 7.1 | ||
+ | + # VirtuozzoLinux release 7.0 | ||
+ | os_CODENAME="" | ||
+ | - for r in "Red Hat" CentOS Fedora XenServer CloudLinux; do | ||
+ | + for r in "Red Hat" CentOS Fedora XenServer CloudLinux VirtuozzoLinux; do | ||
+ | os_VENDOR=$r | ||
+ | if [[ -n "`grep \"$r\" /etc/redhat-release`" ]]; then | ||
+ | ver=`sed -e 's/^.* \([0-9].*\) (\(.*\)).*$/\1\|\2/' /etc/redhat-release` | ||
+ | @@ -446,7 +447,8 @@ function is_fedora { | ||
+ | |||
+ | [ "$os_VENDOR" = "Fedora" ] || [ "$os_VENDOR" = "Red Hat" ] || \ | ||
+ | [ "$os_VENDOR" = "CentOS" ] || [ "$os_VENDOR" = "OracleLinux" ] || \ | ||
+ | - [ "$os_VENDOR" = "CloudLinux" ] || [ "$os_VENDOR" = "kvmibm" ] | ||
+ | + [ "$os_VENDOR" = "CloudLinux" ] || [ "$os_VENDOR" = "kvmibm" ] || | ||
+ | + [ "$os_VENDOR" = "VirtuozzoLinux" ] | ||
+ | } | ||
+ | |||
+ | <!--T:19--> | ||
Create local.conf file: | Create local.conf file: | ||
− | <!--T: | + | <!--T:20--> |
$ cat > ~stack/devstack/local.conf << _EOF | $ cat > ~stack/devstack/local.conf << _EOF | ||
<nowiki>[[local|localrc]]</nowiki> | <nowiki>[[local|localrc]]</nowiki> | ||
Line 104: | Line 130: | ||
_EOF | _EOF | ||
− | <!--T: | + | <!--T:21--> |
Change HOST_IP within created ~stack/devstack/local.conf to a valid IP address of your Virtuozzo 7 host. | Change HOST_IP within created ~stack/devstack/local.conf to a valid IP address of your Virtuozzo 7 host. | ||
Change password for OpenStack services to whatever you prefer in ~stack/devstack/local.conf. | Change password for OpenStack services to whatever you prefer in ~stack/devstack/local.conf. | ||
Make libvirt daemon accessible via socket for stack user: | Make libvirt daemon accessible via socket for stack user: | ||
− | <!--T: | + | <!--T:22--> |
$ sed -i s/"#unix_sock_group = \"libvirt\""/"unix_sock_group = \"stack\""/ /etc/libvirt/libvirtd.conf | $ sed -i s/"#unix_sock_group = \"libvirt\""/"unix_sock_group = \"stack\""/ /etc/libvirt/libvirtd.conf | ||
$ sed -i s/"#unix_sock_ro_perms = \"0777\""/"unix_sock_ro_perms = \"0777\""/ /etc/libvirt/libvirtd.conf | $ sed -i s/"#unix_sock_ro_perms = \"0777\""/"unix_sock_ro_perms = \"0777\""/ /etc/libvirt/libvirtd.conf | ||
Line 117: | Line 143: | ||
$ sed -i s/"#auth_unix_rw = \"none\""/"auth_unix_rw = \"none\""/ /etc/libvirt/libvirtd.conf | $ sed -i s/"#auth_unix_rw = \"none\""/"auth_unix_rw = \"none\""/ /etc/libvirt/libvirtd.conf | ||
− | <!--T: | + | <!--T:23--> |
Clone nova repository: | Clone nova repository: | ||
− | <!--T: | + | <!--T:24--> |
$ su stack -c "cd ~ && git clone git://git.openstack.org/openstack/nova" | $ su stack -c "cd ~ && git clone git://git.openstack.org/openstack/nova" | ||
− | <!--T: | + | <!--T:25--> |
Start devstack: | Start devstack: | ||
− | <!--T: | + | <!--T:26--> |
$ su stack -c "~/devstack/stack.sh" | $ su stack -c "~/devstack/stack.sh" | ||
− | <!--T: | + | <!--T:27--> |
After script finishes, setup your iptables rules to allow incoming http trafic if you want to use OpenStack dashboard. For instance: | After script finishes, setup your iptables rules to allow incoming http trafic if you want to use OpenStack dashboard. For instance: | ||
− | <!--T: | + | <!--T:28--> |
$ iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited | $ iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited | ||
$ iptables -A INPUT -p tcp --dport http -j ACCEPT | $ iptables -A INPUT -p tcp --dport http -j ACCEPT | ||
$ iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited | $ iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited | ||
− | <!--T: | + | <!--T:39--> |
Here you are! | Here you are! | ||
</translate> | </translate> | ||
[[Category: HOWTO]] | [[Category: HOWTO]] |
Revision as of 14:13, 19 January 2016
<translate> This howto describes steps by step installation of OpenStack devstack with Virtuozzo 7.
Execute the following commands within you Virtuozzo 7 host as root:
Install RDO repo:
$ yum install -y https://rdoproject.org/repos/rdo-release.rpm
Install EPEL repo:
$ yum install -y http://fedora-mirror01.rbc.ru/pub/epel//epel-release-latest-7.noarch.rpm
Install required packages:
$ yum install -y git patch redhat-lsb-core euca2ools mysql-connector-python scsi-target-utils
Reinstall http and mod_wsgi:
$ yum remove -y httpd httpd-tools mod_wsgi
$ yum install -y httpd
Enable IP connection tracking for CT0:
$ echo -ne "options nf_conntrack ip_conntrack_disable_ve0=0\n" > /etc/modprobe.d/vz.conf
$ echo -ne "options nf_conntrack ip_conntrack_disable_ve0=0\n" > /etc/modprobe.d/parallels.conf
Then reboot your system:
$ reboot
Create user "stack" and add him to sudoers:
$ adduser stack -d /vz/stack
$ chmod 755 /vz/stack $ echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Download and unpack container image:
$ su stack -c "cd ~ && wget http://updates.virtuozzo.com/server/virtuozzo/en_us/odin/7/techpreview-ct/centos7-exe.hds.tar.gz"
$ su stack -c "cd ~ && tar -xzvf centos7-exe.hds.tar.gz"
Clone devstack:
$ su stack -c "cd ~ && git clone git://git.openstack.org/openstack-dev/devstack"
As soon as we switched to a new linux distribution, which is not supported in upstream devstack yet, apply the following patch: diff --git a/functions-common b/functions-common index 47276f0..c0cdd3b 100644 --- a/functions-common +++ b/functions-common @@ -338,8 +338,9 @@ function GetOSVersion {
# XenServer release 6.2.0-70446c (xenenterprise) # Oracle Linux release 7 # CloudLinux release 7.1
+ # VirtuozzoLinux release 7.0
os_CODENAME=""
- for r in "Red Hat" CentOS Fedora XenServer CloudLinux; do + for r in "Red Hat" CentOS Fedora XenServer CloudLinux VirtuozzoLinux; do
os_VENDOR=$r if -n "`grep \"$r\" /etc/redhat-release`" ; then ver=`sed -e 's/^.* \([0-9].*\) (\(.*\)).*$/\1\|\2/' /etc/redhat-release`
@@ -446,7 +447,8 @@ function is_fedora {
[ "$os_VENDOR" = "Fedora" ] || [ "$os_VENDOR" = "Red Hat" ] || \ [ "$os_VENDOR" = "CentOS" ] || [ "$os_VENDOR" = "OracleLinux" ] || \
- [ "$os_VENDOR" = "CloudLinux" ] || [ "$os_VENDOR" = "kvmibm" ] + [ "$os_VENDOR" = "CloudLinux" ] || [ "$os_VENDOR" = "kvmibm" ] || + [ "$os_VENDOR" = "VirtuozzoLinux" ]
}
Create local.conf file:
$ cat > ~stack/devstack/local.conf << _EOF
[[local|localrc]] FORCE=yes HOST_IP=1.1.1.1 MYSQL_PASSWORD=password SERVICE_TOKEN=password SERVICE_PASSWORD=password ADMIN_PASSWORD=password LIBVIRT_TYPE=parallels RABBIT_PASSWORD=password #Basic services ENABLED_SERVICES=key,rabbit,mysql,horizon # Enable Nova services ENABLED_SERVICES+=,n-api,n-crt,n-cpu,n-cond,n-sch,n-novnc,n-cauth # Enable Glance services ENABLED_SERVICES+=,g-api,g-reg # Enable Cinder services #ENABLED_SERVICES+=,c-sch,c-api,c-vol # Enable Heat, to test orchestration #ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng # Enable Neutron services ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron # Destination path for installation DEST=/vz/stack # Destination for working data DATA_DIR=/vz/stack/data # Destination for status files SERVICE_DIR=/vz/stack/status LOG_COLOR=False LOGDAYS=3 LOGFILE=/vz/stack/logs/stack.sh.log SCREEN_LOGDIR=/vz/stack/logs/screen ENABLE_METADATA_NETWORK=True ENABLE_ISOLATED_METADATA=True IMAGE_URLS="file:///vz/stack/centos7-exe.hds" _EOF
Change HOST_IP within created ~stack/devstack/local.conf to a valid IP address of your Virtuozzo 7 host. Change password for OpenStack services to whatever you prefer in ~stack/devstack/local.conf. Make libvirt daemon accessible via socket for stack user:
$ sed -i s/"#unix_sock_group = \"libvirt\""/"unix_sock_group = \"stack\""/ /etc/libvirt/libvirtd.conf
$ sed -i s/"#unix_sock_ro_perms = \"0777\""/"unix_sock_ro_perms = \"0777\""/ /etc/libvirt/libvirtd.conf $ sed -i s/"#unix_sock_rw_perms = \"0770\""/"unix_sock_rw_perms = \"0770\""/ /etc/libvirt/libvirtd.conf $ sed -i s/"#unix_sock_dir = \"\/var\/run\/libvirt\""/"unix_sock_dir = \"\/var\/run\/libvirt\""/ /etc/libvirt/libvirtd.conf $ sed -i s/"#auth_unix_ro = \"none\""/"auth_unix_ro = \"none\""/ /etc/libvirt/libvirtd.conf $ sed -i s/"#auth_unix_rw = \"none\""/"auth_unix_rw = \"none\""/ /etc/libvirt/libvirtd.conf
Clone nova repository:
$ su stack -c "cd ~ && git clone git://git.openstack.org/openstack/nova"
Start devstack:
$ su stack -c "~/devstack/stack.sh"
After script finishes, setup your iptables rules to allow incoming http trafic if you want to use OpenStack dashboard. For instance:
$ iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited
$ iptables -A INPUT -p tcp --dport http -j ACCEPT $ iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
Here you are! </translate>