~koolhead17/openstackbook/cssbook

« back to all changes in this revision

Viewing changes to Installation.xml

  • Committer: Murthyraju Manthena
  • Date: 2011-10-11 13:49:47 UTC
  • Revision ID: murthyraju.manthena@csscorp.com-20111011134947-f9j4robcayk9q31x
Updated Installation Chapter for Diablo. Dropped Dashboard

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
<thead>
25
25
<row>
26
26
<entry/>
27
 
<entry>Server 1</entry>
28
 
<entry>Server 2</entry>
29
 
<entry>Client 1</entry>
 
27
<entry>Server1</entry>
 
28
<entry>Server2</entry>
 
29
<entry>Client1</entry>
30
30
</row>
31
31
</thead>
32
32
<tbody>
83
83
<listitem><para>Installation lets you setup the IP address for the first interface i.e. eth0. Set the IP address details.</para></listitem>
84
84
<listitem><para>During installation select only Openssh-server in the packages menu.</para></listitem>
85
85
</itemizedlist>
86
 
<para>Nova and Glance have been included in Universe repository . Enable Universe repository in your /etc/apt/sources.list.</para>
87
86
<para>Update the machine using the following commands.</para>
88
87
<programlisting>sudo apt-get update</programlisting>
89
88
<programlisting>sudo apt-get upgrade</programlisting>
90
89
<para>Install bridge-utils:</para>
91
 
<programlisting>sudo apt-get install bridge-utils</programlisting>
 
90
<programlisting>sudo apt-get install -y bridge-utils</programlisting>
92
91
<para>Reboot the server and login as the admin user(localadmin) created during the OS installation.</para>
93
92
</section>
94
93
<section xml:id="Networking_Configuration-d1e591">
121
120
<section xml:id="NTP_Server-d1e609">
122
121
<title>NTP Server</title>
123
122
<para>Install NTP package. This server is going to act as an NTP server for the nodes. The time on all components of OpenStack will have to be in sync. We can run NTP server on this and have other components sync to it.</para>
124
 
<programlisting>sudo apt-get install ntp</programlisting>
125
 
<para>Open the file /etc/ntp.conf and add the following 2 lines to make sure that the server serves time even when its connectivity to the Internet is down. The following settings ensure that the NTP server uses its own clock as the clock source:</para>
 
123
<programlisting>sudo apt-get install -y ntp</programlisting>
 
124
<para>Open the file /etc/ntp.conf and add the following lines to make sure that the time of the server is in sync with an external server and in case Internet connectivity is down, NTP server uses its own clock as the clock source.</para>
126
125
<programlisting>
 
126
server ntp.ubuntu.com
127
127
server 127.127.1.0
128
128
fudge 127.127.1.0 stratum 10
129
129
</programlisting>
132
132
</section>
133
133
<section xml:id="Glance-d1e634">
134
134
<title>Glance</title>
135
 
<para>Glance is an image Server that Nova can use to pickup images from. Glance is very modular and can use several types of storage backends such as filestore, s3 etc. We are installing Glance before installing Nova, so that when we get to configuring Nova, glance is ready to be used by Nova.</para>
136
 
<programlisting>sudo apt-get install glance
 
135
<para>Glance is an image server that Nova can use to pickup images from. Glance is very modular and can use several types of storage backends such as filestore, s3 etc. We are installing Glance before installing Nova, so that when we get to configuring Nova, glance is ready to be used by Nova.</para>
 
136
<programlisting>sudo apt-get install -y glance
137
137
</programlisting>
138
138
<para>The default config file at /etc/glance/glance.conf is good to use for a simple file store as the storage backend. Glance can be configured to use other storage backends such as Swift.</para>
139
 
<para>Glance uses sqlite as the default database backend. While sqlite offers a quick and easy way to get started, for production use, you may consider a database such as MySQL or PostgreSQL.</para>
 
139
<para>Glance uses SQLite as the default database backend. While SQLite offers a quick and easy way to get started, for production use, you may consider a database such as MySQL or PostgreSQL.</para>
140
140
<para>Glance has two components - glance-api and glance-registry. These can be controlled using the concerned upstart jobs.</para>
141
141
</section>
142
 
<section xml:id="MySQL_Server-d1e657"><title>MySQL Server</title>
 
142
<section>
 
143
<title>Database configuration</title>
 
144
<para>Nova can use MySQL or PostgreSQL for storing its data. For non-production use, SQLite is also an option.</para>
 
145
<section xml:id="MySQL_Server-d1e657"><title>MySQL</title>
143
146
<para>Install mysql-server package</para>
144
147
<programlisting>sudo apt-get install -y mysql-server
145
148
</programlisting>
146
 
<section xml:id="Configuration-d1e667">
147
 
<title>Configuration</title>
148
149
<para>Set a variable called "MYSQL_PASS" for use in the various commands below:</para>
149
150
<programlisting>MYSQL_PASS="mygreatsecret"
150
151
</programlisting>
154
155
<para>Restart MySQL server to ensure that it starts listening on all interfaces.</para>
155
156
<programlisting>sudo restart mysql
156
157
</programlisting>
157
 
<para>If you did not set the MySQL root password during installation, set it now.</para>
158
 
<programlisting>mysqladmin -u root password $MYSQL_PASS
159
 
</programlisting>
160
158
<para>Create a database named nova.</para>
161
159
<programlisting>sudo mysql -uroot -p$MYSQL_PASS -e 'CREATE DATABASE nova;'
162
160
</programlisting>
163
 
<para>Update the database to grant super user privileges for root user to login from any IP.</para>
164
 
<programlisting>sudo mysql -uroot -p$MYSQL_PASS -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;"</programlisting>
165
 
<para>Set MySQL root password for login from any IP.</para>
166
 
<programlisting>sudo mysql -uroot -p$MYSQL_PASS -e "SET PASSWORD FOR 'root'@'%' = PASSWORD('$MYSQL_PASS');"</programlisting>
167
161
<para>Create a user named novadbadmin which has access to nova related databases.</para>
168
162
<programlisting>sudo mysql -uroot -p$MYSQL_PASS -e 'CREATE USER novadbadmin;'</programlisting>
169
163
<para>Grant all privileges for novadbadmin on the Database "nova".</para>
171
165
<para>Set password for novadbadmin.</para>
172
166
<programlisting>sudo mysql -uroot -p$MYSQL_PASS -e "SET PASSWORD FOR 'novadbadmin'@'%' = PASSWORD('$MYSQL_PASS');"</programlisting>
173
167
</section>
174
 
<section>
175
 
<title>Installing Sqlite (Instead of Mysql)</title>
 
168
<section xml:id="PostgreSQL_dle678">
 
169
<title>PostgreSQL</title>
 
170
<para>Install PostgreSQL and the python driver for PostgreSQL</para>
 
171
<programlisting>sudo apt-get install -y postgresql python-psycopg2</programlisting>
 
172
<para>Setup PostgreSQL to listen on all interfaces by editing /etc/postgresql/9.1/main/postgresql.conf and uncommenting and modifying the relevant line. Look for the right file if you have a different version of PostgreSQL</para>
 
173
<programlisting>listen_addresses = '*'</programlisting>
 
174
<para>Restart PostgreSQL server to ensure that it starts listening on all interfaces.</para>
 
175
<programlisting>sudo /etc/init.d/postgresql restart</programlisting>
 
176
<para>Create a user called 'novadbadmin' with password 'mygreatesecret', create the database 'nova' and give 'novadbadmin' all privileges on that database.</para>
 
177
<programlisting>
 
178
sudo bash
 
179
su - postgres
 
180
psql
 
181
CREATE user novadbadmin;
 
182
ALTER user novadbadmin with password 'mygreatsecret';
 
183
CREATE DATABASE nova;
 
184
GRANT ALL PRIVILEGES ON database nova TO  novadbadmin;
 
185
</programlisting>
 
186
<para>Configure Postgresql to accept connections from users from any machine on 10.10.10.0/24 and 192.168.3.0/24 by adding the following line to /etc/postgresql/9.1/main/pg_hba.conf.</para>
 
187
<programlisting>
 
188
host    all             all             10.130.221.0/24         md5
 
189
host    all             all             192.168.3.0/24          md5
 
190
</programlisting>
 
191
<para>Restart PostgreSQL.</para>
 
192
<programlisting>/etc/init.d/postgresql restart</programlisting>
 
193
</section>
 
194
<section xml:id="SQLite_dle899">
 
195
<title>SQLite</title>
176
196
<para>Installation</para>
177
 
<programlisting>sudo apt-get install sqlite</programlisting>
 
197
<programlisting>sudo apt-get install -y sqlite</programlisting>
178
198
</section> 
179
199
</section>
180
200
<section xml:id="Nova_Components-d1e718">
204
224
--FAKE_subdomain=ec2
205
225
--routing_source_ip=192.168.3.1
206
226
--sql_connection=mysql://root:mygreatsecret@10.10.10.2/nova
207
 
--glance_host=192.168.3.1
 
227
--glance_api_servers=10.10.10.2:9292
208
228
--image_service=nova.image.glance.GlanceImageService
209
229
--iscsi_ip_prefix=192.168.
210
230
</programlisting>
211
 
<para>For configuring with Sqlite change the line with --sql_connection to:</para>
212
 
<programlisting>--sql_connection=sqlite:////var/lib/nova/nova.sqlite</programlisting> 
 
231
<para>For configuring with PostgreSQL change the line with --sql_connection to:</para>
 
232
<programlisting>--sql_connection=postgresql://novadbadmin:mygreatsecret@10.10.10.2/nova</programlisting>
 
233
<para>For configuring with SQLite change the line with --sql_connection to:</para>
 
234
<programlisting>--sql_connection=sqlite:////var/lib/nova/nova.sqlite</programlisting>
 
235
<para>Install iscsitarget</para>
 
236
<programlisting>sudo apt-get -y install iscsitarget iscsitarget-dkms</programlisting>
213
237
<para>Enable iscsitarget.</para>
214
238
<programlisting>sudo sed -i 's/false/true/g' /etc/default/iscsitarget</programlisting>
215
239
<para>Restart the iscsitarget service</para>
220
244
<para>Create a Volume Group named nova-volumes.</para>
221
245
<programlisting>sudo vgcreate nova-volumes /dev/sda6
222
246
</programlisting>
223
 
<para>Create a group called "nova".</para>
224
 
<programlisting>sudo groupadd nova
225
 
</programlisting>
226
247
<para>Change the ownership of the /etc/nova folder and permissions for /etc/nova/nova.conf:</para>
227
248
<programlisting>
228
249
sudo chown -R root:nova /etc/nova
244
265
<para>Create a project named proj.</para>
245
266
<programlisting>sudo nova-manage project create proj novaadmin
246
267
</programlisting>
 
268
<para>Restart all the nova related services.</para>
 
269
<programlisting>sudo restart libvirt-bin; sudo restart nova-network; sudo restart nova-compute; sudo restart nova-api; sudo restart nova-objectstore; sudo restart nova-scheduler; sudo restart nova-volume; sudo restart glance-api; sudo restart glance-registry</programlisting>
247
270
<para>Create a directory to download nova credentials and download the zip file.</para>
248
271
<programlisting>mkdir /home/localadmin/creds
249
272
</programlisting>
263
286
<para>novarc contains several environmental variables including your nova credentials to be set before you can use the commands from euca2ools such euca-describe-images, euca-describe-instances etc. these variables can be set by sourcing novarc file.</para>
264
287
<programlisting>source /home/localadmin/creds/novarc
265
288
</programlisting>
266
 
<para>Restart all the nova related services.</para>
267
 
<programlisting>sudo restart libvirt-bin; sudo restart nova-network; sudo restart nova-compute; sudo restart nova-api; sudo restart nova-objectstore; sudo restart nova-scheduler; sudo restart nova-volume; sudo restart glance-api; sudo restart glance-registry</programlisting>
268
289
<para>Check if the credentials are working and if nova has been setup properly by running:</para>
269
290
<programlisting>euca-describe-availability-zones verbose
270
291
</programlisting>
271
292
<para>If you see something like the following with all components happy, it means that the set up is ready to be used.</para>
272
293
<programlisting>
273
 
AVAILABILITYZONE nova available
274
 
AVAILABILITYZONE |- server1
275
 
AVAILABILITYZONE | |- nova-compute enabled : -) 2011-04-03 07:48:50
276
 
AVAILABILITYZONE | |- nova-scheduler enabled : -) 2011-04-03 07:48:48
277
 
AVAILABILITYZONE | |- nova-network enabled : -) 2011-04-03 07:48:49
278
 
AVAILABILITYZONE | |- nova-volume enabled : -) 2011-04-03 07:48:49
279
 
</programlisting>
280
 
</section>
281
 
<section xml:id="Nova_dashboard-d1e879">
282
 
<title>Nova dashboard</title>
283
 
<para>OpenStack-dashboard is a web interface for managing users, user credentials, key pairs, images, instances etc.</para>
284
 
<para>Install bazaar version control system to fetch required software from the repository at launchpad.</para>
285
 
<programlisting>
286
 
sudo apt-get install -y bzr
287
 
sudo easy_install virtualenv
288
 
</programlisting>
289
 
<para>You have already finished setting up credentials for a user called localadmin in the Nova configuration section above. The credentials of this user will need to embedded into the dashboard's configuration file.</para>
290
 
<para>Checkout the source of OpenStack-dashboard from bzr and execute run_tests.sh, which does not only test the installation, but also installs several dependencies of the dashboard.</para>
291
 
<programlisting>
292
 
sudo bzr init-repo .
293
 
sudo bzr branch lp:openstack-dashboard -r 46 /opt/osdb
294
 
cd /opt/osdb
295
 
sudo sh run_tests.sh
296
 
cd openstack-dashboard
297
 
</programlisting>
298
 
<para>Note: It has been tested with revison 46 of OpenStack Dashboard</para>
299
 
<para>Since you are trying to checkout from bzr anonymously, a message saying "You have not informed bzr of your Launchpad ID..." is displayed. You can safely ignore that.</para>
300
 
 
301
 
<para>Edit /opt/osdb/openstack-dashboard/local/local_settings.py to include certain details required for connecting to nova-api.</para>
302
 
<programlisting>
303
 
NOVA_DEFAULT_ENDPOINT = 'http://localhost:8773/services/Cloud'
304
 
NOVA_DEFAULT_REGION = 'nova'
305
 
NOVA_ACCESS_KEY = 'b6a7e3ca-f894-473b-abca-84329d9829fa:proj'
306
 
NOVA_SECRET_KEY = '2d61a361-965a-4ed6-966a-d9f543b42531'
307
 
NOVA_ADMIN_USER = 'novaadmin'
308
 
NOVA_PROJECT = 'proj'
309
 
</programlisting>
310
 
<para>A simple way of doing this will be to copy the relevant lines from novarc file that we discussed above.</para>
311
 
<section xml:id="Setting_Up_E-mail_service_for_the_web_interface-d1e919">
312
 
<title>Setting Up E-mail service for the web interface</title>
313
 
<para>In order to have mails generated by OpenStack dashboard delivered, we need to configure dashboard with the details of an smtp server by editing local_settings.py file.</para>
314
 
<programlisting>
315
 
EMAIL_HOST = 'server1.example.com'
316
 
EMAIL_PORT = 25
317
 
</programlisting>
318
 
<para>If the mail server provides only authenticated SMTP, add the following lines:</para>
319
 
<programlisting>
320
 
EMAIL_USER =
321
 
EMAIL_PASSWORD =
322
 
</programlisting>
323
 
<para>If the mail server requires a TLS connection, add the following lines:</para>
324
 
<programlisting>EMAIL_USE_TLS = 'True'
325
 
</programlisting>
326
 
<para>Create a openstack-dashboard database and its schema with the syncdb command. Provide the name/email address/desired password of the administrative user when prompted.</para>
327
 
<programlisting>sudo tools/with_venv.sh dashboard/manage.py syncdb</programlisting>
328
 
<para>While creating the schema, the above command asks you to create an admin account for the dashboard. Choose the user name as the project admin's user name you chose above while creating the project ( novadmin in our case). You can choose any password you like.</para>
329
 
<para>Launch the default python-django server. If you want the dashboard application to be available on port 8000 :</para>
330
 
<programlisting>sudo tools/with_venv.sh dashboard/manage.py runserver 10.10.10.2:8000
331
 
</programlisting>
332
 
<para>To check the installation open a browser and enter the following URL</para>
333
 
<programlisting>http://10.10.10.2:8000
334
 
</programlisting>
335
 
<para>You should be able to login as "novaadmin" using the password chosen above. Any other user trying to access the interface for the first time, will need to sign up and will be able to use the interface after the account is approved by the administrator.</para>
336
 
<para>A successful login and display of the project named "proj" on the dashboard will indicate that the dashboard has been setup successfully</para>
337
 
</section>
338
 
<section xml:id="OpenStack_Dashboard_with_Mysql_Database-d1e972">
339
 
<title>OpenStack Dashboard with Mysql Database</title>
340
 
<para>Dashboard uses SQLite database by default. For a production use, MySQL or PostgreSQL may be more preferable. The procedure for MySQL is given below. Procedure for PostgreSQL will be very similar.
341
 
</para>
342
 
<para>Install python-dev and libmysqlclient-dev</para>
343
 
<programlisting>
344
 
sudo apt-get install libmysqlclient-dev
345
 
sudo apt-get install python-dev
346
 
</programlisting>
347
 
<para>Activate virtualenv and install mysql-python package inside the virtual environment of Dashboard.</para>
348
 
<programlisting>
349
 
cd /opt/osdb/openstack-dashboard
350
 
sudo bash
351
 
source .dashboard-venv/bin/activate
352
 
easy_install mysql-python
353
 
</programlisting>
354
 
<para>Create a MySQL database user with all privileges on OpenStack Dashboard database</para>
355
 
<programlisting>
356
 
mysql -uroot -pmygreatsecret
357
 
 
358
 
&gt;create database dashboarddb;
359
 
&gt;grant ALL on dashboarddb.* to nova@localhost identified by 'mygreatsecret';
360
 
</programlisting>
361
 
<para>Update the DATABASES section of the Django's local_settings.py file (/opt/osdb/openstack-dashboard/local/local_settings.py) with the MySQL database settings. Here is the relevant extract from the updated file:</para>
362
 
<programlisting>
363
 
DATABASES = {
364
 
    'default': {
365
 
        'ENGINE': 'django.db.backends.mysql',
366
 
        'NAME': 'dashboarddb',
367
 
        'USER': 'nova',
368
 
        'PASSWORD': 'mygreatsecret',
369
 
        'HOST': 'localhost',
370
 
        'default-character-set': 'utf8',
371
 
    }
372
 
}
373
 
</programlisting>
374
 
<para>Create the schema in the database</para>
375
 
<programlisting>sudo tools/with_venv.sh dashboard/manage.py syncdb
376
 
</programlisting>
377
 
</section>
378
 
<section xml:id="Running_Dashboard_on_apache2_with_mod_wsgi-d1e1013">
379
 
<title>Running Dashboard on apache2 with mod_wsgi</title>
380
 
<para>While the web server that is included in Django is good for testing, for production use, it is recommended to use a web server like Apache with mod_wsgi.</para>
381
 
<para>Install apache2 and wsgi module.</para>
382
 
<programlisting>sudo apt-get install apache2 libapache2-mod-wsgi
383
 
</programlisting>
384
 
<para>Dashboard includes a file django.wsgi(/opt/osdb/openstack-dashboard/dashboard/wsgi/django.wsgi) to help in running dashboard under Apache with WSGI. You can replace the default file with the file below.</para>
385
 
<programlisting>
386
 
# Ref: http://jmoiron.net/blog/deploying-django-mod-wsgi-virtualenv/
387
 
 
388
 
import sys
389
 
import site
390
 
import os
391
 
 
392
 
#we are adding virtual environment path.
393
 
vepath = '/opt/osdb/openstack-dashboard/.dashboard-venv/lib/python2.7/site-packages'
394
 
os.environ['PYTHON_EGG_CACHE'] = '/opt/osdb/openstack-dashboard/.dashboard-venv/lib/python2.7/site-packages'
395
 
 
396
 
prev_sys_path = list(sys.path)
397
 
 
398
 
# add the site-packages of our virtualenv as a site dir
399
 
site.addsitedir(vepath)
400
 
 
401
 
# reorder sys.path so new directories from the addsitedir show up first
402
 
 
403
 
new_sys_path = [p for p in sys.path if p not in prev_sys_path]
404
 
 
405
 
for item in new_sys_path:
406
 
    sys.path.remove(item)
407
 
sys.path[:0] = new_sys_path
408
 
 
409
 
# import from down here to pull in possible virtualenv django install
410
 
 
411
 
from django.core.handlers.wsgi import WSGIHandler
412
 
os.environ['DJANGO_SETTINGS_MODULE'] = 'dashboard.settings'
413
 
application = WSGIHandler()
414
 
</programlisting>
415
 
</section>
416
 
<section xml:id="Setting_up_the_virtual_host_and_WSGI_alias_in_Apache-d1e1035">
417
 
<title>Setting up the virtual host and WSGI alias in Apache</title>
418
 
<para>Create /etc/apache2/sites-available/openstack with the following contents:</para>
419
 
<programlisting>
420
 
Listen 8000
421
 
&lt;VirtualHost 10.10.10.2:8000&gt;
422
 
    ServerName 10.10.10.2
423
 
    WSGIScriptAlias / /opt/osdb/openstack-dashboard/dashboard/wsgi/django.wsgi
424
 
    Alias /media/admin/  /opt/osdb/openstack-dashboard/.dashboard-venv/lib/python2.7/site-packages/django/contrib/admin/media/
425
 
&lt;/VirtualHost&gt;
426
 
</programlisting>
427
 
<para>Enable virtual host.</para>
428
 
<programlisting>
429
 
sudo a2ensite openstack
430
 
sudo /etc/init.d/apache2 reload
431
 
</programlisting>
432
 
<para>Dashboard should now be available at http://10.10.10.2:8000</para>
433
 
</section>
 
294
AVAILABILITYZONE    nova available
 
295
AVAILABILITYZONE    |- server1
 
296
AVAILABILITYZONE    | |- nova-compute       enabled :-) 2011-09-29 07:26:04
 
297
AVAILABILITYZONE    | |- nova-scheduler     enabled :-) 2011-09-29 07:26:04
 
298
AVAILABILITYZONE    | |- nova-network       enabled :-) 2011-09-29 07:26:07
 
299
AVAILABILITYZONE    | |- nova-volume        enabled :-) 2011-09-29 07:26:06
 
300
</programlisting>
434
301
</section>
435
302
</section>
436
303
<section xml:id="Server_2-d1e1059">
437
 
<title>Server 2</title>
438
 
 <para>This server runs nova-compute and all the virtual machines and hypervisor. You can also bundle images on Server 2.</para>
 
304
<title>Server2</title>
 
305
 <para>This server runs nova-compute and all the virtual machines and hypervisor. You can also bundle images on Server2.</para>
439
306
<section xml:id="BaseOS-d1e1064">
440
307
<title>BaseOS</title>
441
308
<para>Install 64-bit version of Natty Server</para>
443
310
<section xml:id="Networking_Configuration-d1e1073">
444
311
<title>Networking Configuration</title>
445
312
<para>Install bridge-utils:</para>
446
 
<programlisting>sudo apt-get install bridge-utils</programlisting>
 
313
<programlisting>sudo apt-get install -y bridge-utils</programlisting>
447
314
<para>Edit the /etc/network/interfaces file so as to looks like this:</para>
448
315
<programlisting>
449
316
auto lo
472
339
<section xml:id="NTP_Client-d1e1098">
473
340
<title>NTP Client</title>
474
341
<para>Install NTP package.</para>
475
 
<programlisting>sudo apt-get install ntp</programlisting>
 
342
<programlisting>sudo apt-get install -y ntp</programlisting>
476
343
<para>Open the file /etc/ntp.conf and add the following line to sync to server1.</para>
477
344
<programlisting>server 10.10.10.2</programlisting>
478
345
<para>Restart NTP service to make the changes effective</para>
507
374
--FAKE_subdomain=ec2
508
375
--routing_source_ip=192.168.3.2
509
376
--sql_connection=mysql://root:mygreatsecret@10.10.10.2/nova
510
 
--glance_host=192.168.3.1
 
377
--glance_api_servers=192.168.3.1:9292
511
378
--image_service=nova.image.glance.GlanceImageService
512
379
</programlisting>
 
380
<para>Restart nova-compute on Server2.</para>
 
381
<programlisting>sudo service restart nova-compute</programlisting>
 
382
<para>On Server1, check if the second compute node (Server2) is detected by running:</para>
 
383
<programlisting>euca-describe-availability-zones verbose</programlisting>
 
384
<para>If you see something like the following with all components happy, it means that the set up is ready to be used.</para>
 
385
<programlisting>
 
386
AVAILABILITYZONE    nova available
 
387
AVAILABILITYZONE    |- server1
 
388
AVAILABILITYZONE    | |- nova-compute       enabled :-) 2011-09-30 09:26:04
 
389
AVAILABILITYZONE    | |- nova-scheduler     enabled :-) 2011-09-30 09:26:04
 
390
AVAILABILITYZONE    | |- nova-network       enabled :-) 2011-09-30 09:26:07
 
391
AVAILABILITYZONE    | |- nova-volume        enabled :-) 2011-09-30 09:26:06
 
392
AVAILABILITYZONE    |- server2
 
393
AVAILABILITYZONE    | |- nova-compute       enabled :-)  2011-09-30 09:26:05
 
394
</programlisting>
 
395
<para>Sometimes you may have XXX instead of the smiley. The XXX are displayed when the components are not time-synced. Ensure that the time is same on Server1 and Server2.</para>
513
396
</section>
514
397
</section>
515
398
<section xml:id="Client1-d1e1155">
536
419
<section xml:id="NTP_Client-d1e1181">
537
420
<title>NTP Client</title>
538
421
<para>Install NTP package.</para>
539
 
<programlisting>sudo apt-get install ntp
 
422
<programlisting>sudo apt-get install -y ntp
540
423
</programlisting>
541
424
<para>Open the file /etc/ntp.conf and add the following line to sync to server1.</para>
542
425
<programlisting>
553
436
<para>Install euca tools, for command line tools</para>
554
437
<programlisting>sudo apt-get install -y euca2ools</programlisting>
555
438
<para>Install qemu-kvm</para>
556
 
<programlisting>sudo apt-get install qemu-kvm</programlisting>
 
439
<programlisting>sudo apt-get install -y qemu-kvm</programlisting>
557
440
<para>Download the credentials we created for localadmin to this machine:</para>
558
441
<programlisting>
559
442
mkdir /home/localadmin/creds
573
456
</programlisting>
574
457
</section>
575
458
</section>
576
 
</chapter>
 
 
b'\\ No newline at end of file'
 
459
</chapter>