Statistics
| Branch: | Tag: | Revision:

root / docs / setup.rst @ 329753ae

History | View | Annotate | Download (7.4 kB)

1 85e3803d Stavros Sachtouris
Setup
2 85e3803d Stavros Sachtouris
=====
3 0c24b26b Stavros Sachtouris
4 85e3803d Stavros Sachtouris
Kamaki is easy to install from source or as a package. Some ui features are optional and can be install separately. Kamaki behavior can be configured in the kamaki config file.
5 0c24b26b Stavros Sachtouris
6 0c24b26b Stavros Sachtouris
Requirements
7 0c24b26b Stavros Sachtouris
------------
8 0c24b26b Stavros Sachtouris
9 0c24b26b Stavros Sachtouris
* python 2.6 or better
10 0c24b26b Stavros Sachtouris
11 0c24b26b Stavros Sachtouris
* snf-common 0.10 or better
12 0c24b26b Stavros Sachtouris
13 0c24b26b Stavros Sachtouris
The snf-common package is part of the Synnefo project of the Greek Research and Development Network and is available from the same official sources as Kamaki (e.g. http://apt.dev.grnet.gr ).
14 0c24b26b Stavros Sachtouris
15 0c24b26b Stavros Sachtouris
Optional features
16 0c24b26b Stavros Sachtouris
-----------------
17 0c24b26b Stavros Sachtouris
18 0c24b26b Stavros Sachtouris
* ansicolors
19 0c24b26b Stavros Sachtouris
    * Make command line / console user interface responses pretier with text formating (colors, bold, etc.)
20 0c24b26b Stavros Sachtouris
    * Can be switched on/off in kamaki configuration file: colors=on/off
21 0c24b26b Stavros Sachtouris
    * Installation: pip install ansicolors
22 0c24b26b Stavros Sachtouris
23 329753ae Stavros Sachtouris
* progress 
24 329753ae Stavros Sachtouris
    * Attach progress bars to various kamaki commands (e.g. kamaki store upload)
25 0c24b26b Stavros Sachtouris
    * Installation: pip install progressbar
26 329753ae Stavros Sachtouris
    * Since version 0.6.1 kamaki "requires" progress version 1.0.2 or better
27 0c24b26b Stavros Sachtouris
28 0c24b26b Stavros Sachtouris
Any of the above features can be installed at any time before or after kamaki installation.
29 0c24b26b Stavros Sachtouris
30 0c24b26b Stavros Sachtouris
Configuration options
31 0c24b26b Stavros Sachtouris
---------------------
32 0c24b26b Stavros Sachtouris
33 0c24b26b Stavros Sachtouris
Kamaki comes with preset default values to all configuration options. All vital configurion options are set to use the okeanos.grnet.gr cloud services. User information is not included and should be provided either through the kamaki config command or by editing the configuration file.
34 0c24b26b Stavros Sachtouris
35 85e3803d Stavros Sachtouris
Kamaki configuration options are vital for correct Kamaki behavior. An incorrect option may render some command groups dysfunctional. There are two ways of managing configuration options: edit the config file or use the kamaki config command.
36 0c24b26b Stavros Sachtouris
37 0c24b26b Stavros Sachtouris
Using multiple setups
38 0c24b26b Stavros Sachtouris
^^^^^^^^^^^^^^^^^^^^^
39 0c24b26b Stavros Sachtouris
40 0c24b26b Stavros Sachtouris
Kamaki setups are stored in configuration files. By default, a Kamaki installation stores options in *.kamakirc* file located at the user home directory.
41 0c24b26b Stavros Sachtouris
42 0c24b26b Stavros Sachtouris
If a user needs to switch between different setups, Kamaki can explicitely load configuration files with the --config option:
43 0c24b26b Stavros Sachtouris
44 0c24b26b Stavros Sachtouris
*kamaki --config <custom_config_file_path> [other options]*
45 0c24b26b Stavros Sachtouris
46 0c24b26b Stavros Sachtouris
Using many different configuration files for different cloud services is encouraged.
47 0c24b26b Stavros Sachtouris
48 0c24b26b Stavros Sachtouris
Modifying options at runtime
49 0c24b26b Stavros Sachtouris
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
50 0c24b26b Stavros Sachtouris
51 0c24b26b Stavros Sachtouris
All kamaki commands can be used with the -o option in order to overide configuration options at runtime. For example:
52 0c24b26b Stavros Sachtouris
53 0c24b26b Stavros Sachtouris
*kamaki store list -o global.account=anotheraccount -o global.token=aT0k3n==*
54 0c24b26b Stavros Sachtouris
55 329753ae Stavros Sachtouris
will invoke *kamaki store list* with the specified options, but the initial global.account and global.token values will be restored to initial values afterwards.
56 0c24b26b Stavros Sachtouris
57 0c24b26b Stavros Sachtouris
Editing options
58 0c24b26b Stavros Sachtouris
^^^^^^^^^^^^^^^
59 0c24b26b Stavros Sachtouris
60 0c24b26b Stavros Sachtouris
Kamaki config command allows users to see and manage all configuration options.
61 0c24b26b Stavros Sachtouris
62 0c24b26b Stavros Sachtouris
* kamaki config list
63 0c24b26b Stavros Sachtouris
    lists all configuration options currently used by a Kamaki installation
64 0c24b26b Stavros Sachtouris
65 0c24b26b Stavros Sachtouris
* kamaki config get <group.option>
66 0c24b26b Stavros Sachtouris
    show the value of a specific configuration option. Options must be of the form group.option
67 0c24b26b Stavros Sachtouris
68 0c24b26b Stavros Sachtouris
* kamaki config set <group.option> <value>
69 0c24b26b Stavros Sachtouris
    set the group.option to value
70 0c24b26b Stavros Sachtouris
71 329753ae Stavros Sachtouris
* kamaki config delete <group.option>
72 0c24b26b Stavros Sachtouris
    delete a configuration option
73 0c24b26b Stavros Sachtouris
74 0c24b26b Stavros Sachtouris
The above commands cause option values to be permanently stored in the Kamaki configuration file.
75 0c24b26b Stavros Sachtouris
76 0c24b26b Stavros Sachtouris
Editing the configuration file
77 0c24b26b Stavros Sachtouris
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
78 0c24b26b Stavros Sachtouris
79 329753ae Stavros Sachtouris
The configuration file is a simple text file that can be created by the user.
80 0c24b26b Stavros Sachtouris
81 0c24b26b Stavros Sachtouris
A simple way to create the configuration file is to set a configuration option using the kamaki config command. For example:
82 0c24b26b Stavros Sachtouris
83 0c24b26b Stavros Sachtouris
*kamaki config set account myusername@mydomain.com*
84 0c24b26b Stavros Sachtouris
85 0c24b26b Stavros Sachtouris
In the above example, if the kamaki configuration file does not exist, it will be created with all the default values plus the *global.account* option set to *myusername@mydomain.com* value.
86 0c24b26b Stavros Sachtouris
87 85e3803d Stavros Sachtouris
The configuration file is formatted so that it can be parsed by the python ConfigParser module. It consists of command sections that are denoted with brackets. Every section contains variables with values. For example:
88 0c24b26b Stavros Sachtouris
89 0c24b26b Stavros Sachtouris
*[store]*
90 0c24b26b Stavros Sachtouris
*url=https://okeanos.grnet.gr/pithos*
91 0c24b26b Stavros Sachtouris
*account=myaccount@mydomain.com*
92 0c24b26b Stavros Sachtouris
93 0c24b26b Stavros Sachtouris
two configuration options are created: *store.url* and *store.account*. These values will be loaded at every future kamaki execution.
94 0c24b26b Stavros Sachtouris
95 0c24b26b Stavros Sachtouris
Available options
96 0c24b26b Stavros Sachtouris
^^^^^^^^^^^^^^^^^
97 0c24b26b Stavros Sachtouris
98 329753ae Stavros Sachtouris
The [global] group is treated by kamaki as a generic group for arbitrary options, and it is used as a supergroup for vital Kamaki options, namely account, token, url, cli. This feature does not work for types of configuration options. For example if global.account option is set and store.account option is not set, store services will use the global.account option instead. In case of conflict, the most specific options override the global ones.
99 0c24b26b Stavros Sachtouris
100 0c24b26b Stavros Sachtouris
* global.colors <on|off>
101 85e3803d Stavros Sachtouris
    enable/disable colors in command line based uis. Requires ansicolors, otherwise it is ignored
102 0c24b26b Stavros Sachtouris
103 0c24b26b Stavros Sachtouris
* global.account <account name>
104 85e3803d Stavros Sachtouris
    the username or user email that is user to connect to the cloud service. It can be omitted if provided as a service-specific option
105 0c24b26b Stavros Sachtouris
106 85e3803d Stavros Sachtouris
* global.token <user authentication token>
107 0c24b26b Stavros Sachtouris
108 0c24b26b Stavros Sachtouris
* store.cli <UI command specifications for store>
109 0c24b26b Stavros Sachtouris
    a special package that is used to load storage commands to kamaki UIs. Don't touch this unless if you know what you are doing.
110 0c24b26b Stavros Sachtouris
111 0c24b26b Stavros Sachtouris
* store.url <OOS storage or Pithos+ service url>
112 0c24b26b Stavros Sachtouris
    the url of the OOS storage or Pithos+ service. Set to Okeanos.grnet.gr Pithos+ storage service by default. Users should set a different value if they need to use a different storage service.
113 0c24b26b Stavros Sachtouris
114 0c24b26b Stavros Sachtouris
* store.account <account name>
115 85e3803d Stavros Sachtouris
    if set, it overrides possible global.account option for store level commands.
116 0c24b26b Stavros Sachtouris
117 0c24b26b Stavros Sachtouris
* compute.url <OOS compute or Cyclades service url>
118 0c24b26b Stavros Sachtouris
    the url of the OOS compute or Cyclades service. Set to Okeanos.grnet.gr Cyclades IaaS service by default. Users should set a different value if they need to use a different IaaS service.
119 0c24b26b Stavros Sachtouris
120 0c24b26b Stavros Sachtouris
* cyclades.cli <UI command specifications for cyclades>
121 0c24b26b Stavros Sachtouris
    a special package that is used to load cyclades commands to kamaki UIs. Don't touch this unless you know what you are doing.
122 0c24b26b Stavros Sachtouris
123 0c24b26b Stavros Sachtouris
* flavor.cli <UI command specifications for VM flavors>
124 0c24b26b Stavros Sachtouris
    a special package that is used to load cyclades VM flavor commands to kamaki UIs. Don't touch this unless you know what you are doing.
125 0c24b26b Stavros Sachtouris
126 0c24b26b Stavros Sachtouris
* network.cli <UI command specifications for virtual networks>
127 0c24b26b Stavros Sachtouris
    a special package that is used to load cyclades virtual network commands to kamaki UIs. Don't touch this unless you know what you are doing.
128 0c24b26b Stavros Sachtouris
129 0c24b26b Stavros Sachtouris
* image.url <Glance image service url>
130 0c24b26b Stavros Sachtouris
    the url of the Glance service. Set to Okeanos.grnet.gr Plankton service be default. Users should set a different value if they need to use a different service.
131 0c24b26b Stavros Sachtouris
132 0c24b26b Stavros Sachtouris
* image.cli <UI command specifications for Glance and Cyclades image service>
133 0c24b26b Stavros Sachtouris
    a special package that is used to load image-related commands to kamaki UIs. Don't touch this unless you know what you are doing.
134 0c24b26b Stavros Sachtouris
135 0c24b26b Stavros Sachtouris
* astakos.url <Astakos authentication service url>
136 0c24b26b Stavros Sachtouris
    the url of the Astakos authentication service. Set to the Okeanos.grnet.gr Astakos service by default. Users should set a different value if they need to use a different service.
137 0c24b26b Stavros Sachtouris
138 0c24b26b Stavros Sachtouris
* astakos.cli <UI command specifications for Astakos authentication service>
139 329753ae Stavros Sachtouris
    a special package that is used to load astakos-related commands to kamaki UIs. Don't touch this unless you know what you are doing.
140 329753ae Stavros Sachtouris
141 329753ae Stavros Sachtouris
Hidden features
142 329753ae Stavros Sachtouris
^^^^^^^^^^^^^^^
143 329753ae Stavros Sachtouris
144 329753ae Stavros Sachtouris
Since version 0.6.1 kamaki contains a test suite for the kamaki.clients API. The test suite can be activated with the following option on the configuration file:
145 329753ae Stavros Sachtouris
146 329753ae Stavros Sachtouris
[test]
147 329753ae Stavros Sachtouris
cli=test_cli
148 329753ae Stavros Sachtouris
149 329753ae Stavros Sachtouris
After that, users can run "kamaki test" commands to unittest the prepackaged client APIs. Unittests are still experimental and there is a high probability of false alarms due to some of the expected values being hard-coded in the testing code.