Commit c8b8e878 authored by Dimitris Aragiorgis's avatar Dimitris Aragiorgis
Browse files

Update scale up docs i-*


Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
parent 5956d044
......@@ -12,6 +12,7 @@ Synnefo
apache ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......
......@@ -12,6 +12,7 @@ apt ||
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......@@ -47,3 +48,7 @@ Import the additional repos' GPG key and get the packages list:
Test your Setup:
++++++++++++++++
.. code-block:: console
apt-cache policy synnefo
......@@ -55,6 +55,71 @@ In `/etc/synnefo/astakos.conf` add:
ASTAKOS_COOKIE_DOMAIN = 'example.com'
ASTAKOS_LOGIN_MESSAGES = []
ASTAKOS_SIGNUP_MESSAGES = []
ASTAKOS_PROFILE_MESSAGES = []
ASTAKOS_GLOBAL_MESSAGES = []
ASTAKOS_PROFILE_EXTRA_LINKS = []
ASTAKOS_INVITATION_EMAIL_SUBJECT = 'Invitation to %s' % ASTAKOS_SITENAME
ASTAKOS_GREETING_EMAIL_SUBJECT = 'Welcome to %s' % ASTAKOS_SITENAME
ASTAKOS_FEEDBACK_EMAIL_SUBJECT = 'Feedback from %s' % ASTAKOS_SITENAME
ASTAKOS_VERIFICATION_EMAIL_SUBJECT = '%s account activation is needed' % ASTAKOS_SITENAME
ASTAKOS_ADMIN_NOTIFICATION_EMAIL_SUBJECT = '%s account created (%%(user)s)' % ASTAKOS_SITENAME
ASTAKOS_HELPDESK_NOTIFICATION_EMAIL_SUBJECT = '%s account activated (%%(user)s)' % ASTAKOS_SITENAME
ASTAKOS_EMAIL_CHANGE_EMAIL_SUBJECT = 'Email change on %s' % ASTAKOS_SITENAME
ASTAKOS_PASSWORD_RESET_EMAIL_SUBJECT = 'Password reset on %s' % ASTAKOS_SITENAME
ASTAKOS_QUOTAHOLDER_TOKEN = '1234'
ASTAKOS_QUOTAHOLDER_URL = 'https://qh.example.com/quotaholder/v'
EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'
ASTAKOS_SERVICES = {
'cyclades': {
'url': 'https://cyclades.example.com/ui/',
'resources': [{
'name':'disk',
'group':'compute',
'uplimit':30*1024*1024*1024,
'unit':'bytes',
'desc': 'Virtual machine disk size'
},{
'name':'cpu',
'group':'compute',
'uplimit':6,
'desc': 'Number of virtual machine processors'
},{
'name':'ram',
'group':'compute',
'uplimit':6*1024*1024*1024,
'unit':'bytes',
'desc': 'Virtual machines'
},{
'name':'vm',
'group':'compute',
'uplimit':2,
'desc': 'Number of virtual machines'
},{
'name':'network.private',
'group':'network',
'uplimit':1,
'desc': 'Private networks'
}
]
},
'pithos+': {
'url': 'https://pithos.example.com/ui/',
'resources':[{
'name':'diskspace',
'group':'storage',
'uplimit':5 * 1024 * 1024 * 1024,
'unit':'bytes',
'desc': 'Pithos account diskspace'
}]
}
}
If ``astakos`` is on the same node with ``cyclades`` or ``pithos``, add the following
line in `/etc/synnefo/astakos.conf` but please note that your setup will be prone to
csrf attacks:
......@@ -69,11 +134,13 @@ Then initialize the Database and register services with:
# /etc/init.d/gunicorn restart
# snf-manage syncdb --noinput
# snf-manage migrate im
# snf-manage migrate im --delete-ghost-migrations
# snf-manage loaddata groups
# snf-manage service-add "~okeanos home" https://cms.example.com/ home-icon.png
# snf-manage service-add "home" https://cms.example.com/ home-icon.png
# snf-manage service-add "cyclades" https://cyclades.example.com/ui/
# snf-manage service-add "pithos+" https://pithos.example.com/ui/
# snf-manage astakos-init --load-service-resources
# snf-manage astakos-quota --sync
# /etc/init.d/gunicorn restart
# /etc/init.d/apache2 restart
......@@ -105,3 +172,5 @@ All this can be done with one command:
Test your Setup:
++++++++++++++++
Visit ``http://accounts.example.com/im/`` and login with your credentials.
......@@ -12,6 +12,7 @@ Synnefo
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......
......@@ -12,6 +12,7 @@ Synnefo
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
cms ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......@@ -133,3 +134,5 @@ and finally run:
Test your Setup:
++++++++++++++++
Visit https://cms.example.com/
......@@ -13,6 +13,7 @@ Synnefo
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
cyclades ||
......@@ -33,6 +34,8 @@ versions >= 0.13 :
# apt-get install memcached
# apt-get install python-memcache
# apt-get install kamaki
# apt-get install snf-pithos-backend
# apt-get install snf-cyclades-app
In `/etc/synnefo/cyclades.conf` add:
......@@ -42,14 +45,18 @@ In `/etc/synnefo/cyclades.conf` add:
MAX_CIDR_BLOCK = 21
PUBLIC_USE_POOL = True
CUSTOM_BRIDGED_BRIDGE = 'br0'
MAX_VMS_PER_USER = 5
VMS_USER_QUOTA = {
'user@example.com': 20,
}
MAX_NETWORKS_PER_USER = 3
NETWORKS_USER_QUOTA = { 'user@example.com': 10 }
CPU_BAR_GRAPH_URL = 'https://cyclades.example.com/stats/%s/cpu-bar.png'
CPU_TIMESERIES_GRAPH_URL = 'https://cyclades.example.com/stats/%s/cpu-ts.png'
NET_BAR_GRAPH_URL = 'https://cyclades.example.com/stats/%s/net-bar.png'
NET_TIMESERIES_GRAPH_URL = 'https://cyclades.example.com/stats/%s/net-ts.png'
GANETI_DISK_TEMPLATES = ('blockdev', 'diskless', 'drbd', 'file', 'plain',
'rbd', 'sharedfile', 'ext')
ASTAKOS_URL = 'https://accounts.example.com/im/authenticate'
......@@ -71,9 +78,55 @@ In `/etc/synnefo/cyclades.conf` add:
AMQP_HOSTS = ["amqp://synnefo:example_rabbitmq_passw0rd@mq.example.com:5672"]
TIMEOUT = 60 * 1000
UI_UPDATE_INTERVAL = 2000
FEEDBACK_CONTACTS = (
('feedback@example.com', 'feedback@example.com'),
)
UI_LOGIN_URL = "https://accounts.example.com/im/login"
UI_LOGOUT_URL = "https://accounts.example.com/im/logout"
UI_FLAVORS_DISK_TEMPLATES_INFO = {
'rbd': {'name': 'Rbd',
'description': 'Volumes residing inside a RADOS cluster'},
'plain': {'name': 'Local',
'description': 'Fast, not high available local storage (LVM)'},
'drbd': {'name': 'Standard',
'description': 'High available persistent storage (DRBD)'},
'ext_vlmc': {'name': 'Tmp',
'description': 'Volatile storage'},
}
UI_SUPPORT_SSH_OS_LIST = ['debian', 'fedora', 'okeanos', 'ubuntu', 'kubuntu',
'centos', 'archlinux', 'gentoo']
UI_SYSTEM_IMAGES_OWNERS = {
'images@okeanos.io': 'system',
}
CACHE_BACKEND = 'memcached://127.0.0.1:11211/'
VMAPI_BASE_URL = 'https://cyclades.example.com/'
CYCLADES_QUOTAHOLDER_TOKEN = '1234'
CYCLADES_QUOTAHOLDER_URL = 'https://qh.example.com/quotaholder/v'
CYCLADES_USE_QUOTAHOLDER = True
CYCLADES_ASTAKOS_SERVICE_TOKEN = "XXXXXXXXXX"
CYCLADES_USER_CATALOG_URL = 'https://accounts.example.com/user_catalogs'
UI_SYSTEM_IMAGES_OWNERS = {
'admin@synnefo.gr': 'system',
'images@synnefo.gr': 'system'
}
XXXXXXXX is the token for cyclades registered service and can be found
in astakos node running:
.. code-block:: console
snf-manage service-list
Restart services and initialize database:
......@@ -82,7 +135,7 @@ Restart services and initialize database:
# /etc/init.d/gunicorn restart
# /etc/init.d/apache2 restart
# snf-manage syncdb
# snf-manage migrate
# snf-manage migrate --delete-ghost-migrations
# snf-manage loaddata flavors
Enable dispatcher:
......@@ -143,7 +196,7 @@ Add the synnefo setting in :file:`/etc/synnefo/cyclades.conf`:
.. code-block:: console
PRIVATE_MAC_FILTERED_BRIDGE = 'prv0'
DEFAULT_MAC_FILTERED_BRIDGE = 'prv0'
Add public network where the VM's will eventually connect to in order to
access Internet:
......@@ -155,3 +208,14 @@ access Internet:
Test your Setup:
++++++++++++++++
In cyclades node run:
.. code-block:: console
snf-manage backend-list
snf-manage network-list
snf-manage server-list
Visit https://cyclades.example.com/ui/ and create a VM or network.
......@@ -12,6 +12,7 @@ db ||
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......
......@@ -12,6 +12,7 @@ Synnefo
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......@@ -74,3 +75,12 @@ We need to add a rapi user to Ganeti so that Synnefo can talk with the backend:
Test your Setup:
++++++++++++++++
In master node run:
.. code-block:: console
gnt-cluster info
gnt-node list
gnt-network list
gnt-instance list
......@@ -12,6 +12,7 @@ Synnefo
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......
......@@ -12,6 +12,7 @@ gunicorn ||
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......
......@@ -12,6 +12,7 @@ Synnefo
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......
......@@ -13,6 +13,7 @@ Synnefo
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......@@ -23,10 +24,10 @@ kamaki Setup
++++++++++++
The following apply to ``client`` node. Here we install a command line tool
that the end-user can use instead of web UI. Prerequisites are that the
client node can connect to synnefo nodes by using their FQDN and that
the user has already aquired an AUTH_TOKEN from his/her profile page after
signing in.
that the end-user can use instead of web UI. Prerequisites are that the client
node can connect to synnefo nodes by using their FQDN and that the user has
already aquired an AUTH_TOKEN and UUID from his/her profile page after signing
in.
Install the corresponding package:
......@@ -44,7 +45,7 @@ and build the correct config file:
# kamaki config set store.enable on
# kamaki config set store.pithos_extensions on
# kamaki config set store.url "https://pithos.example.com/v1"
# kamaki config set store.account "user@example.com"
# kamaki config set store.account UUID
# kamaki config set global.token AUTH_TOKEN
......@@ -80,9 +81,13 @@ and register it to plankton:
--property OS=debian \
--public
Test your Setup:
++++++++++++++++
.. code-block:: console
# kamaki store list
# kamaki image list
Test your Setup:
++++++++++++++++
And visit https://cyclades.example.com/ui/ and try to create a VM with the registered image
or visit https://pithos.example.com/ui/ and see your uploaded image.
......@@ -11,6 +11,7 @@ mq ||
:ref:`gunicorn <i-gunicorn>` ||
:ref:`apache <i-apache>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......
......@@ -12,6 +12,7 @@ Synnefo
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......@@ -69,3 +70,5 @@ In router node in case you have a NAT setup run:
Test your Setup:
++++++++++++++++
Create a VM inside the public network via UI or Ganeti and see if it has internet connectivity.
......@@ -13,6 +13,7 @@ ns ||
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......@@ -34,17 +35,17 @@ Assumptions:
For the sake of simplicity we assume we have 6 nodes assinged the following roles:
======== ========= ======================== ====================
hostname IP roles FQDN
======== ========= ======================== ====================
node1 4.3.2.1 ns,router,client,astakos accounts.example.com
node2 4.3.2.2 cyclades cyclades.example.com
node3 4.3.2.3 pithos pithos.example.com
node4 4.3.2.4 cms cms.example.com
node5 4.3.2.5 db db.example.com
node6 4.3.2.6 mq mq.example.com
node1 4.3.2.100 master ganeti.example.com
======== ========= ======================== ====================
======== ========= =========================== ====================
hostname IP roles FQDN
======== ========= =========================== ====================
node1 4.3.2.1 ns,router,client,astakos,qh accounts.example.com
node2 4.3.2.2 cyclades cyclades.example.com
node3 4.3.2.3 pithos pithos.example.com
node4 4.3.2.4 cms cms.example.com
node5 4.3.2.5 db db.example.com
node6 4.3.2.6 mq mq.example.com
node1 4.3.2.100 master ganeti.example.com
======== ========= =========================== ====================
First install the corresponding package:
......@@ -82,6 +83,7 @@ In `/etc/bind/zones/example.com` add:
cms IN CNAME node4.example.com.
db IN CNAME node5.example.com.
mq IN CNAME node6.example.com.
qh IN CNAME node1.example.com.
node1 IN A 4.3.2.1
node2 IN A 4.3.2.2
......@@ -98,7 +100,7 @@ In `/etc/bind/rev/0-24.2.3.4.in-addr.arpa.zone` add:
.. code-block:: console
$TTL 86400
$ORIGIN 0-24.2.3.4.in-addr.arpa.
$ORIGIN 2.3.4.in-addr.arpa.
@ IN SOA ns.example.com. admin.skata.com. (
2012070900; the Serial Number
172800; the Refresh Rate
......@@ -148,3 +150,5 @@ In all ``synnefo`` and ``backend`` nodes add in `/etc/resolv.conf`:
Test your Setup:
++++++++++++++++
Try to ping all FQDNs.
......@@ -13,6 +13,7 @@ Synnefo
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
pithos ||
:ref:`cyclades <i-cyclades>` ||
......@@ -68,6 +69,13 @@ In `/etc/synnefo/pithos.conf` add:
PITHOS_UPDATE_MD5 = False
PITHOS_SERVICE_TOKEN = 'XXXXXXXXXXX'
PITHOS_QUOTAHOLDER_TOKEN = '1234'
PITHOS_QUOTAHOLDER_URL = 'https://qh.example.com/quotaholder/v'
# Set False if astakos & pithos are on the same node
PITHOS_PROXY_USER_SERVICES = True
PITHOS_USE_QUOTAHOLDER = True
Install pithos web UI with:
......@@ -91,8 +99,7 @@ In `/etc/synnefo/webclient.conf` add:
PITHOS_UI_FEEDBACK_URL = "/feedback"
The ``PITHOS_SERVICE_TOKEN`` and ``PITHOS_UI_CLOUDBAR_ACTIVE_SERVICE`` should be
the Pithos+ token and id returned by running on the astakos node:
XXXXXXXXXXXXXX should be the Pithos+ token and id found on astakos node by running:
.. code-block:: console
......@@ -108,3 +115,5 @@ After configuration is done, restart services:
Test your Setup:
++++++++++++++++
Visit https://pithos.example.com/ui/ and upload files.
.. _i-qh:
Synnefo
-------
:ref:`synnefo <i-synnefo>` ||
:ref:`ns <i-ns>` ||
:ref:`apt <i-apt>` ||
:ref:`mq <i-mq>` ||
:ref:`db <i-db>` ||
:ref:`gunicorn <i-gunicorn>` ||
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
qh ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
:ref:`kamaki <i-kamaki>` ||
:ref:`backends <i-backends>`
Quataholder Setup
+++++++++++++++++
The following apply to ``qh`` node. In the following sections
we will refer to its IP as ``qh.example.com`` . Make sure
you have db, mq, astakos, apache and gunicorn setup already.
First install the corresponding package:
.. code-block:: console
# apt-get install snf-quotaholder-app
In `/etc/synnefo/quotaholder.conf` add:
.. code-block:: console
QUOTAHOLDER_TOKEN = '1234'
and then run:
# /etc/init.d/gunicorn restart
# snf-manage syncdb --noinput
Test your Setup:
++++++++++++++++
Visit ``http://accounts.example.com/im/`` and login with your credentials and see
current usage.
......@@ -12,6 +12,7 @@ synnefo ||
:ref:`apache <i-apache>` ||
:ref:`webproject <i-webproject>` ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......
......@@ -12,6 +12,7 @@ Synnefo
:ref:`apache <i-apache>` ||
webproject ||
:ref:`astakos <i-astakos>` ||
:ref:`qh <i-qh>` ||
:ref:`cms <i-cms>` ||
:ref:`pithos <i-pithos>` ||
:ref:`cyclades <i-cyclades>` ||
......@@ -61,6 +62,8 @@ In `/etc/synnefo/snf-webproject.conf` add:
SECRET_KEY = 'sy6)mw6a7x%n)-example_secret_key#zzk4jo6f2=uqu!1o%)'
SESSION_COOKIE_DOMAIN = "example.com"
All the above enables pooling (of connections) and greenlet context.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment