From cdfcd5a279e8d12d310803ef70e64867f5687e5f Mon Sep 17 00:00:00 2001 From: Mark Huang Date: Mon, 24 Apr 2006 22:15:42 +0000 Subject: [PATCH] regenerate --- doc/myplc.pdf | Bin 226394 -> 226395 bytes doc/myplc.php | 514 +++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 493 insertions(+), 21 deletions(-) diff --git a/doc/myplc.pdf b/doc/myplc.pdf index 17e99a3c7d73e1d32dd9498d2563b9132677bbb8..afa05787ee527f2f9910e1fd2b59bbd3ba7bc72e 100644 GIT binary patch delta 19027 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 delta 19172 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%0DuW;P0|OJo=5sXPb4m6P}(%sH9=j(DNuqXrgyh z(W=@2x1^X@ZJ+u!_K`Dl&8a$YIdsccQ%Zrr=Erz1EC6gNZS74U9Pr}S27vzulKCwo zG9uz)7rQkOERxDXxfacegldI~I(x-?CR`A&3^ zc62!6aM+DY5B|NY!x`kkc29;AZN|H-mz1Hg)0{ZMe4)X)44 z;ot$OpF>AhG`K+OXI5k!xDERA-6-ffIA7}LM?od!;HAeP6#GgD#0-RGcZWcpgRtzY zR0xHM*aQ2%_MF}$`+bL_v2YYd5(BU>tR#j)14u~>4nzOKLjo{K4I~DD;eN!j8KDp@ z3&|i9fJRH2KmiCWAR&lB!r%aRC=}uba{0v!28Mu3@Bug)j`{^dU|9} zPB2mb8U25Q01OH)SrCB3VkPwf3=An*7l6jXe({7w<0N@V01f-$iG7>~c>=<+wZkDC zWl8H87#hH^`@j%l-y&*o2VP)wOlDll>RL*xxz; diff --git a/doc/myplc.php b/doc/myplc.php index efcba75..e843064 100644 --- a/doc/myplc.php +++ b/doc/myplc.php @@ -13,7 +13,7 @@

-MyPLC User's Guide

+MyPLC User's Guide

Mark Huang

@@ -41,21 +41,22 @@

-1. Overview

+1. Overview

MyPLC is a complete PlanetLab Central (PLC) portable installation contained within a chroot jail. The default installation consists of a web server, an @@ -79,14 +80,14 @@

-2. Installation

+2. Installation

Though internally composed of commodity software subpackages, MyPLC should be treated as a monolithic software application. MyPLC is distributed as single RPM package that has no external dependencies, allowing it to be installed on practically any Linux 2.6 based distribution:

-

Example 1. Installing MyPLC.

+

Example 1. Installing MyPLC.

# If your distribution supports RPM
 rpm -U myplc-0.3-1.planetlab.i386.rpm
 
@@ -182,7 +183,7 @@ service plc stop
the chkconfig command on a Red Hat or Fedora host system:

-

Example 3. Disabling automatic startup of MyPLC.

+

Example 3. Disabling automatic startup of MyPLC.

# Disable automatic startup
 chkconfig plc off
 
@@ -207,13 +208,13 @@ chkconfig plc on

-3. Quickstart

+3. Quickstart

Once installed, start MyPLC (see Example 2, “Starting and stopping MyPLC.”). MyPLC must be started as root. Observe the output of this command for any failures. If no failures occur, you should see output similar to the following:

-

Example 4. A successful MyPLC startup.

+

Example 4. A successful MyPLC startup.

Mounting PLC:                                              [  OK  ]
 PLC: Generating network files:                             [  OK  ]
 PLC: Starting system logger:                               [  OK  ]
@@ -281,7 +282,7 @@ PLC: Rebuilding Boot Manager:                              [  OK  ]
     visit http://localhost/, which should bring you
     to the front page of your PLC installation. The password of the
     default administrator account
-    root@test.planet-lab.org (set by
+    root@localhost.localdomain (set by
     PLC_ROOT_USER) is root (set by
     PLC_ROOT_PASSWORD).

@@ -337,7 +338,7 @@ PLC: Rebuilding Boot Manager: [ OK ]

-3.2. Installing nodes

+3.2. Installing nodes

Install your first node by clicking Add Node under the Nodes tab. Fill in all the appropriate details, then click @@ -361,12 +362,12 @@ PLC: Rebuilding Boot Manager: [ OK ]

-3.3. Administering nodes

+3.3. Administering nodes

You may administer nodes as root by using the SSH key stored in /etc/planetlab/root_ssh_key.rsa.

-

Example 5. Accessing nodes via SSH. Replace +

Example 5. Accessing nodes via SSH. Replace node with the hostname of the node.

ssh -i /etc/planetlab/root_ssh_key.rsa root@node
@@ -389,7 +390,7 @@ PLC: Rebuilding Boot Manager: [ OK ]

-3.4. Creating a slice

+3.4. Creating a slice

Create a slice by clicking Create Slice under the Slices tab. Fill in all the appropriate details, then click Create. Add @@ -404,7 +405,7 @@ PLC: Rebuilding Boot Manager: [ OK ] to determine if it needs to create or delete any slices. You may accelerate this process manually if desired.

-

Example 6. Forcing slice creation on a node.

+

Example 6. Forcing slice creation on a node.

# Update slices.xml immediately
 service plc start crond
 
@@ -414,9 +415,480 @@ vserver pl_conf exec service pl_conf restart
+
+

+A. Configuration variables

+

Listed below is the set of standard configuration variables + and their default values, defined in the template + /etc/planetlab/default_config.xml. Additional + variables and their defaults may be defined in site-specific XML + templates that should be placed in + /etc/planetlab/configs/.

+
+
PLC_NAME
+
+

+ Type: string

+

+ Default: PlanetLab Test

+

The name of this PLC installation. It is used in + the name of the default system site (e.g., PlanetLab Central) + and in the names of various administrative entities (e.g., + PlanetLab Support).

+
+
PLC_SLICE_PREFIX
+
+

+ Type: string

+

+ Default: pl

+

The abbreviated name of this PLC + installation. It is used as the prefix for system slices + (e.g., pl_conf). Warning: Currently, this variable should + not be changed.

+
+
PLC_ROOT_USER
+
+

+ Type: email

+

+ Default: root@localhost.localdomain

+

The name of the initial administrative + account. We recommend that this account be used only to create + additional accounts associated with real + administrators, then disabled.

+
+
PLC_ROOT_PASSWORD
+
+

+ Type: password

+

+ Default: root

+

The password of the initial administrative + account. Also the password of the root account on the Boot + CD.

+
+
PLC_ROOT_SSH_KEY_PUB
+
+

+ Type: file

+

+ Default: /etc/planetlab/root_ssh_key.pub

+

The SSH public key used to access the root + account on your nodes.

+
+
PLC_ROOT_SSH_KEY
+
+

+ Type: file

+

+ Default: /etc/planetlab/root_ssh_key.rsa

+

The SSH private key used to access the root + account on your nodes.

+
+
PLC_DEBUG_SSH_KEY_PUB
+
+

+ Type: file

+

+ Default: /etc/planetlab/debug_ssh_key.pub

+

The SSH public key used to access the root + account on your nodes when they are in Debug mode.

+
+
PLC_DEBUG_SSH_KEY
+
+

+ Type: file

+

+ Default: /etc/planetlab/debug_ssh_key.rsa

+

The SSH private key used to access the root + account on your nodes when they are in Debug mode.

+
+
PLC_ROOT_GPG_KEY_PUB
+
+

+ Type: file

+

+ Default: /etc/planetlab/pubring.gpg

+

The GPG public keyring used to sign the Boot + Manager and all node packages.

+
+
PLC_ROOT_GPG_KEY
+
+

+ Type: file

+

+ Default: /etc/planetlab/secring.gpg

+

The SSH private key used to access the root + account on your nodes.

+
+
PLC_NET_DNS1
+
+

+ Type: ip

+

+ Default: 128.112.136.10

+

Primary DNS server address.

+
+
PLC_NET_DNS2
+
+

+ Type: ip

+

+ Default: 128.112.136.12

+

Secondary DNS server address.

+
+
PLC_MAIL_ENABLED
+
+

+ Type: boolean

+

+ Default: false

+

Set to false to suppress all e-mail notifications + and warnings.

+
+
PLC_MAIL_SUPPORT_ADDRESS
+
+

+ Type: email

+

+ Default: root+support@localhost.localdomain

+

This address is used for support + requests. Support requests may include traffic complaints, + security incident reporting, web site malfunctions, and + general requests for information. We recommend that the + address be aliased to a ticketing system such as Request + Tracker.

+
+
PLC_MAIL_BOOT_ADDRESS
+
+

+ Type: email

+

+ Default: root+install-msgs@localhost.localdomain

+

The API will notify this address when a problem + occurs during node installation or boot.

+
+
PLC_MAIL_SLICE_ADDRESS
+
+

+ Type: email

+

+ Default: root+SLICE@localhost.localdomain

+

This address template is used for sending + e-mail notifications to slices. SLICE will be replaced with + the name of the slice.

+
+
PLC_DB_ENABLED
+
+

+ Type: boolean

+

+ Default: true

+

Enable the database server on this + machine.

+
+
PLC_DB_TYPE
+
+

+ Type: string

+

+ Default: postgresql

+

The type of database server. Currently, only + postgresql is supported.

+
+
PLC_DB_HOST
+
+

+ Type: hostname

+

+ Default: localhost

+

The fully qualified hostname or IP address of + the database server. This hostname must be resolvable and + reachable by the rest of your installation.

+
+
PLC_DB_PORT
+
+

+ Type: int

+

+ Default: 5432

+

The TCP port number through which the database + server should be accessed.

+
+
PLC_DB_NAME
+
+

+ Type: string

+

+ Default: planetlab3

+

The name of the database to access.

+
+
PLC_DB_USER
+
+

+ Type: string

+

+ Default: pgsqluser

+

The username to use when accessing the + database.

+
+
PLC_DB_PASSWORD
+
+

+ Type: password

+

+ Default:

+

The password to use when accessing the + database. If left blank, one will be + generated.

+
+
PLC_API_ENABLED
+
+

+ Type: boolean

+

+ Default: true

+

Enable the API server on this + machine.

+
+
PLC_API_DEBUG
+
+

+ Type: boolean

+

+ Default: false

+

Enable verbose API debugging. Do not enable on + a production system!

+
+
PLC_API_HOST
+
+

+ Type: hostname

+

+ Default: localhost

+

The fully qualified hostname or IP address of + the API server. This hostname must be resolvable and + reachable by the rest of your installation, as well as your + nodes.

+
+
PLC_API_PORT
+
+

+ Type: int

+

+ Default: 80

+

The TCP port number through which the API + should be accessed. Warning: SSL (port 443) access is not + fully supported by the website code yet. We recommend that + port 80 be used for now and that the API server either run + on the same machine as the web server, or that they both be + on a secure wired network.

+
+
PLC_API_PATH
+
+

+ Type: string

+

+ Default: /PLCAPI/

+

The base path of the API URL.

+
+
PLC_API_MAINTENANCE_USER
+
+

+ Type: string

+

+ Default: maint@localhost.localdomain

+

The username of the maintenance account. This + account is used by local scripts that perform automated + tasks, and cannot be used for normal logins.

+
+
PLC_API_MAINTENANCE_PASSWORD
+
+

+ Type: password

+

+ Default:

+

The password of the maintenance account. If + left blank, one will be generated. We recommend that the + password be changed periodically.

+
+
PLC_API_MAINTENANCE_SOURCES
+
+

+ Type: hostname

+

+ Default:

+

A space-separated list of IP addresses allowed + to access the API through the maintenance account. The value + of this variable is set automatically to allow only the API, + web, and boot servers, and should not be + changed.

+
+
PLC_API_SSL_CRT
+
+

+ Type: file

+

+ Default: /etc/planetlab/api_ssl.crt

+

The signed SSL certificate to use for HTTPS + access. If not specified or non-existent, a self-signed + certificate will be generated.

+
+
PLC_API_SSL_KEY
+
+

+ Type: file

+

+ Default: /etc/planetlab/api_ssl.key

+

The corresponding SSL private key used for + signing the certificate, and for signing slice tickets. If + not specified or non-existent, one will be + generated.

+
+
PLC_API_SSL_KEY_PUB
+
+

+ Type: file

+

+ Default: /etc/planetlab/api_ssl.pub

+

The corresponding SSL public key. If not + specified or non-existent, one will be + generated.

+
+
PLC_WWW_ENABLED
+
+

+ Type: boolean

+

+ Default: true

+

Enable the web server on this + machine.

+
+
PLC_WWW_DEBUG
+
+

+ Type: boolean

+

+ Default: false

+

Enable debugging output on web pages. Do not + enable on a production system!

+
+
PLC_WWW_HOST
+
+

+ Type: hostname

+

+ Default: localhost

+

The fully qualified hostname or IP address of + the web server. This hostname must be resolvable and + reachable by the rest of your installation, as well as your + nodes.

+
+
PLC_WWW_PORT
+
+

+ Type: int

+

+ Default: 80

+

The TCP port number through which the + unprotected portions of the web site should be + accessed.

+
+
PLC_WWW_SSL_PORT
+
+

+ Type: int

+

+ Default: 443

+

The TCP port number through which the protected + portions of the web site should be accessed.

+
+
PLC_WWW_SSL_CRT
+
+

+ Type: file

+

+ Default: /etc/planetlab/www_ssl.crt

+

The signed SSL certificate to use for HTTPS + access. If not specified or non-existent, a self-signed + certificate will be generated.

+
+
PLC_WWW_SSL_KEY
+
+

+ Type: file

+

+ Default: /etc/planetlab/www_ssl.key

+

The corresponding SSL private key. If not + specified or non-existent, one will be + generated.

+
+
PLC_BOOT_ENABLED
+
+

+ Type: boolean

+

+ Default: true

+

Enable the boot server on this + machine.

+
+
PLC_BOOT_HOST
+
+

+ Type: hostname

+

+ Default: localhost

+

The fully qualified hostname or IP address of + the boot server. This hostname must be resolvable and + reachable by the rest of your installation, as well as your + nodes.

+
+
PLC_BOOT_PORT
+
+

+ Type: int

+

+ Default: 80

+

The TCP port number through which the + unprotected portions of the boot server should be + accessed.

+
+
PLC_BOOT_SSL_PORT
+
+

+ Type: int

+

+ Default: 443

+

The TCP port number through which the protected + portions of the boot server should be + accessed.

+
+
PLC_BOOT_SSL_CRT
+
+

+ Type: binary

+

+ Default: /etc/planetlab/boot_ssl.crt

+

The signed SSL certificate to use for HTTPS + access. If not specified, or non-existent a self-signed + certificate will be generated.

+
+
PLC_BOOT_SSL_KEY
+
+

+ Type: binary

+

+ Default: /etc/planetlab/boot_ssl.key

+

The corresponding SSL private key. If not + specified or non-existent, one will be + generated.

+
+
+

-Bibliography

+Bibliography

[1] Mark Huang. PlanetLab Technical Contact's Guide.

-- 2.47.0
Revision History