6.2. Running PackStack Interactively

Deploy OpenStack by running the packstack utility interactively. The packstack utility supports the creation of both single node and multiple node OpenStack deployments.

Procedure 6.2. Running PackStack Interactively

  1. Run packstack

    Run the packstack command to commence the deployment process. Optionally append the --debug parameter to enable additional logging.
    $ packstack

    Important

    You are not required to log in as the root user to run the packstack command itself. However you will be required to provide root credentials for each machine to which you choose to deploy services.
  2. Configuring Public Key

    Each server involved in the OpenStack deployment is configured for key-based authentication. If you already have a public key that you wish to use for this, enter the path to it. If you do not, then press Enter and the utility will generate one for you and save it to ~/.ssh/id_rsa.pub.
    Enter the path to your ssh Public key to install on servers:
  3. Selecting the Services to Install

    The packstack script will prompt you to select the OpenStack services that you want to install and configure. At each prompt enter y to install the service, enter n to skip the service, or press Enter to select the default option listed in square brackets ([, ]).
    Should Packstack install Glance image service [y|n] [y] :
    Should Packstack install Cinder volume service [y|n] [y] :
    Should Packstack install Nova compute service [y|n] [y] :
    Should Packstack install Horizon dashboard [y|n] [y] :
    Should Packstack install Swift object storage [y|n] [y] :
    Each selected service can be deployed on either a local or remote system. Where each service deploys to will be determined based on the IP addresses you provide later in the deployment process.
  4. OpenStack includes a number of client tools. Enter y to install the client tools. A file containing the authentication values of the administrative user will also be created.
    Should Packstack install OpenStack client tools [y|n] [y] :
  5. Optionally, the packstack script will configure all servers in the deployment to retrieve date and time information using Network Time Protocol (NTP). To use this facility enter a comma separated pool of NTP servers.
    Enter a comma separated list of NTP server(s). Leave plain if Packstack should not install ntpd on instances.:

    Example 6.3. Using the Default Red Hat Enterprise Linux NTP Servers

    Enter list of NTP server(s). Leave plain if packstack should not install ntpd on instances.: 0.rhel.pool.ntp.org, 1.rhel.pool.ntp.org
  6. Optionally, the packstack script will install and configure Nagios to provide advanced facilities for monitoring the nodes in the OpenStack environment.
    Should Packstack install Nagios to monitor openstack hosts [y|n] [n] : 
  7. Configuring the MySQL Instance

    OpenStack services require a MySQL database to store data in. To configure the database:
    1. Enter the IP address of the server to deploy the MySQL database server on.
      Enter the IP address of the MySQL server [192.0.43.10] :
    2. Enter the password to use for the MySQL administrative user. If you do not enter a value it will be randomly generated. The generated password will be available both in the ~/.my.cnf file of the current user and the answer file.
      Enter the password for the MySQL admin user :
  8. Configuring Qpid

    OpenStack services use the Qpid (http://qpid.apache.org/) messaging system to communicate. Enter the IP address of the server to deploy Qpid on.
    Enter the IP address of the QPID service  [192.0.43.10] :
  9. Configuring Keystone

    OpenStack uses Keystone (openstack-keystone) for identity, token, catalog, and policy services. If Keystone installation was selected then enter the IP address of the server to deploy Keystone on when prompted.
    Enter the IP address of the Keystone server  [192.0.43.10] :
  10. Configuring Glance

    OpenStack uses Glance (openstack-glance-*) to store, discover, and retrieve virtual machine images. If Glance installation was selected then enter the IP address of the server to deploy Glance on when prompted.
    Enter the IP address of the Glance server  [192.0.43.10] :
  11. Configuring Cinder

    OpenStack uses Cinder (openstack-cinder-*) to provide volume storage services. Enter the IP address of the server to deploy Cinder on. If installation of the volume services was selected then these additional configuration prompts will be presented.
    Enter the IP address of the Cinder server  [192.0.43.10] :
    1. The packstack utility expects storage for use with Cinder to be available on a volume group named cinder-volumes. If this volume group does not already exist then you will be asked if you want it to be created automatically.
      Answering yes means that packstack will create a raw disk image in the /var/lib/cinder and mount it for use by Cinder using a loopback device.
      Should Cinder's volumes group be createdi (for proof-of-concept installation)? [y|n] [y]:
    2. If you elected to have packstack create the cinder-volumes volume group for you then you will be prompted to enter the size of it in gigabytes (GB).
      Enter Cinder's volume group size  [20G] :

      Important

      The amount of space selected must be available on the device used for /var/lib/cinder.
      Remember that the size of the Cinder volume group will restrict the amount of disk space that you can expose to compute instances.
  12. Configuring Nova

    OpenStack uses Nova to provide compute services. Nova is itself made up of a number of complementary services that must be deployed. If installation of the compute services was selected then these additional configuration prompts will be presented.
    1. The Nova API service (openstack-nova-api) provides web service endpoints for authenticating and interacting with the OpenStack environment over HTTP or HTTPS. Enter the IP address of the server to deploy the Nova API service on.
      Enter the IP address of the Nova API service  [192.0.43.10] :
    2. Nova includes a certificate management service (openstack-nova-cert). Enter the IP address of the server to deploy the Nova certificate management service on.
      Enter the IP address of the Nova Cert service  [192.0.43.10] :
    3. The Nova VNC proxy provides facilities for connecting users of the Nova compute service to their instances running in the OpenStack cloud. Enter the IP address for the server to deploy the Nova VNC proxy on.
      Enter the IP address of the Nova VNC proxy  [192.0.43.10] :
    4. The packstack script is able to deploy one or more compute nodes. Enter a comma separated list containing the IP addresses or hostnames of all of the nodes that you wish to deploy compute services on.
      Enter a comma separated list of IP addresses on which to install the Nova Compute services  [10.15.24.136] :
    5. A private interface must be configured to provide DHCP services on the Nova compute nodes. Enter the name of the private interface to use.
      Enter the Private interface for Flat DHCP on the Nova compute servers  [eth1] :
    6. The Nova network service (openstack-nova-network) provides network services for compute instances. Enter the IP address of the server to deploy the Nova Network service on.
      Enter the IP address of the Nova Network service  [192.0.43.10] :

      Important

      The Nova networking service is incompatible with the OpenStack Network Service added in the Folsom release.
    7. A public interface must be configured to allow connections from other nodes and clients. Enter the name of the public interface to use.
      Enter the Public interface on the Nova network server  [eth0] :
    8. A private interface must be configured to provide DHCP services on the Nova network server. Enter the name of the private interface to use.
      Enter the Private interface for Flat DHCP on the Nova network server  [eth1] :
    9. All compute instances are automatically assigned a private IP address. Enter the range from which these private IP addresses must be assigned.
      Enter the IP Range for Flat DHCP [192.168.32.0/22] :
    10. Compute instances can optionally be assigned publicly accessible floating IP addresses. Enter the range from which floating IP addresses will be assigned.
      Enter the IP Range for Floating IP's [10.3.4.0/22] :
    11. The Nova scheduler (openstack-nova-scheduler) is used to map compute requests to compute resources. Enter the IP address of the server to deploy the Nova scheduler on.
      Enter the IP address of the Nova Scheduler service  [192.0.43.10] :
    12. In the default configuration Nova allows for overcommitment of physical CPU and memory resources. This means that more of these resources are made available for running instances than actually physically exist on the compute node.
      The amount of overcommitment that is permitted is configurable.
      1. The default level of CPU overcommitment allows 16 virtual CPUs to be allocated for each physical CPU socket or core that exists on the physical compute node. Press Enter to accept the default or enter a different value if desired.
        Enter the CPU overcommitment ratio. Set to 1.0 to disable CPU overcommitment [16.0] : 
      2. The default level of memory overcommitment allows up to 50% more virtual memory to be allocated than exists on the physical compute node. Press Enter to accept the default or enter a different value if desired.
        Enter the RAM overcommitment ratio. Set to 1.0 to disable RAM overcommitment [1.5] :
  13. Configuring Client Tools

    If installation of the client tools was selected then enter the IP address of the server to install the client tools on when prompted.
    Enter the IP address of the client server  [192.0.43.10] :
  14. Configuring Horizon Dashboard

    OpenStack uses Horizon (openstack-dashboard) to provide a web-based user interface or dashboard for accessing OpenStack services including Cinder, Nova, Swift, and Keystone. If installation of Horizon dashboard was selected then these additional configuration values will be requested.
    1. Enter the IP address of the server to deploy Horizon on.
      Enter the IP address of the Horizon server  [192.0.43.10] :
    2. To enable HTTPS communication with the dashboard enter y when prompted. Enabling this option ensures that user access to the dashboard is encrypted.
      Would you like to set up Horizon communication over https [y|n] [n] : 
  15. Configuring Swift Object Storage

    If installation of Swift object storage was selected then these additional configuration values will be requested.
    1. Enter the IP address of the server that is to act as the Swift proxy. This server will act as the public link between clients and the Swift object storage.
      Enter the IP address of the Swift proxy service  [10.64.15.166] :
    2. Enter a comma separated list of devices that Swift object storage will use to store objects. Each entry must be specified in HOST/DEVICE format where HOST is replaced by the IP address of the host the device is attached to and DEVICE is replaced by the path to the device.
      Enter the Swift Storage servers e.g. host/dev,host/dev  [10.64.15.166] :
    3. Swift object storage uses zones to ensure that each replica of a given object is stored separately. A zone might represent an individual disk drive or array, a server, all the servers in a rack, or even an entire data center.
      When prompted enter the number of Swift storage zones that must be defined. Note that the number provided must not be bigger than the number of individual devices specified.
      Enter the number of swift storage zones, MUST be no bigger than the number of storage devices configured  [1] :
    4. Swift object storage relies on replication to maintain the state of objects even in the event of a storage outage in one or more of the configured storage zones. Enter the number of replicas that Swift must keep of each object when prompted.
      A minimum of three (3) replicas is recommended to ensure a reasonable degree of fault tolerance in the object store. Note however that it the number of replicas specified must not be greater than the number of storage zones as this would result in one or more of the zones containing multiple replicas of the same object.
      Enter the number of swift storage replicas, MUST be no bigger than the number of storage zones configured  [1] :
    5. Currently packstack supports the use of either Ext4 or XFS filesystems for object storage. The default and recommended choice is ext4. Enter the desired value when prompted.
      Enter FileSystem type for storage nodes [xfs|ext4]  [ext4] :
  16. Configuring Software Sources

    The packstack utility allows you to configure the target servers to retrieve software packages from a number of sources.
    1. Enabling Custom Software Repositories

      The packstack utility allows you to optionally configure each server to retrieve updates from additional custom software repositories. Enter the URL for the directory containing the repodata folder of each desired repository at the prompt, separated by a comma.
      Enter a comma separated list of URLs to any additional yum repositories to install:
    2. Enabling Red Hat Network Subscription

      Enter your Red Hat Network account details when prompted. This will ensure each server involved in the deployment is subscribed to receive updates from Red Hat Network.
      To subscribe each server to Red Hat enter a username here:
      To subscribe each server to Red Hat enter your password here:

      Important

      The packstack utility registers systems to Red Hat Network using Subscription Manager or Red Hat Network Satellite. You may encounter problems if your systems have already been registered and subscribed to the Red Hat OpenStack channels using RHN Classic.
    3. Enabling the Red Hat Enterprise Linux Beta Channel

      To enable the Red Hat Enterprise Linux Beta channel enter y when prompted. Note that selecting this option is not recommended at this time but may be required by future Red Hat OpenStack preview releases.
      To subscribe each server to Red Hat Enterprise Linux 6 Server Beta channel (only needed for Preview versions of RHOS) enter y [y|n] [n] :
    4. Enabling Red Hat Network Satellite

      The packstack utility allows you to optionally configure each server to retrieve updates from a Red Hat Network Satellite server.
      Enter the URL of the Red Hat Network Satellite server that you wish to use when prompted. If you do not wish to use a Red Hat Satellite server then do not enter a value.
      To subscribe each server with RHN Satellite enter RHN Satellite server URL :
      If an RHN Satellite URL is provided a number of follow up prompts will be displayed.
      1. Red Hat Network Satellite supports authentication using a user name and password or an activation key. If your Satellite administrator provided you with a user name and password enter them when prompted. If your Satellite administrator provided you with an access key then do not enter a value.
        Enter RHN Satellite username or leave plain if you will use activation key instead :
        Enter RHN Satellite password or leave plain if you will use activation key instead :
      2. If your Satellite administrator provided you with an access key then enter it when prompted. Otherwise do not enter a value.
        Enter RHN Satellite activation key or leave plain if you used username/password instead :
      3. Specify the path to the certificate of the certificate authority that is used to verify that the connection with the Satellite server is secure.
        Specify a path or URL to a SSL CA certificate to use :
      4. Specify the profile name that must be used to identify the system in Red Hat Network. This is optional.
        If required specify the profile name that should be used as an identifier for the system in RHN Satellite :
      5. Specify the HTTP proxy that must be used when connecting to the Satellite server. If no proxy is required then do not enter a value.
        Specify a HTTP proxy to use with RHN Satellite :
      6. Specify the user name for authenticating with the HTTP proxy that must be used when connecting to the Satellite server. If no proxy is required or the chosen proxy does not require authentication then do not enter a value.
        Specify a username to use with an authenticated HTTP proxy :
      7. Specify the password for authenticating with the HTTP proxy server that must be used when connecting to the Satellite server. If no proxy is required or the chosen proxy does not require authentication then do not enter a value.
        Specify a password to use with an authenticated HTTP proxy. :
      8. Specify any additional Satellite flags that you need to be passed to the rhnreg_ks command when it is run on each system. This configuration key accepts a comma separated list of flags. Valid flags are novirtinfo, norhnsd, and nopackages.
        Refer to the Red Hat Satellite documentation for more information. If unsure do not enter a value.
        Enter comma separated list of flags passed to rhnreg_ks :
  17. At this point you will be asked to confirm the deployment details that you provided. Type yes and press Enter to continue with the deployment.
    Installer will be installed using the following configuration:
    ==============================================================
    ssh-public-key:                /root/.ssh/id_rsa.pub
    os-glance-install:             y
    os-cinder-install:             y
    os-nova-install:               y
    os-horizon-install:            y
    os-swift-install:              n
    os-client-install:             y
    ntp-servers:
    mysql-host:                    192.0.43.10
    mysql-pw:                      ********
    qpid-host:                     192.0.43.10
    keystone-host:                 192.0.43.10
    glance-host:                   192.0.43.10
    cinder-host:                   192.0.43.10
    cinder-volumes-create:         y
    cinder-volumes-size:           20G
    novaapi-host:                  192.0.43.10
    novacert-host:                 192.0.43.10
    novavncproxy-hosts:            192.0.43.10
    novacompute-hosts:             192.0.43.10
    novacompute-privif:            eth1
    novanetwork-host:              192.0.43.10
    novanetwork-pubif:             eth0
    novanetwork-privif:            eth1
    novanetwork-fixed-range:       192.168.32.0/22
    novanetwork-floating-range:    10.3.4.0/22
    novasched-host:                192.0.43.10
    novasched-cpu-allocation-ratio:16.0
    novasched-ram-allocation-ratio:1.5
    osclient-host:                 192.0.43.10
    os-horizon-host:               192.0.43.10
    os-horizon-ssl:                n
    os-swift-proxy:                10.64.15.166
    os-swift-storage:              10.64.15.166
    os-swift-storage-zones:        1
    os-swift-storage-replicas:     1
    os-swift-storage-fstype:       ext4
    additional-repo:               
    rh-username:                   admin@example.com
    rh-password:                   ********
    rhn-satellite-server:          
    Proceed with the configuration listed above? (yes|no): yes
  18. At this point packstack will commence deployment. Note that when packstack is setting up SSH keys it will prompt you to enter the root password to connect to machines that are not already configured to use key authentication.
    Installing:
    Clean Up...                                              [ DONE ]
    Running Pre install scripts...                           [ DONE ]
    Setting Up ssh keys...                                   [ DONE ]
    Create MySQL Manifest...                                 [ DONE ]
    Creating QPID Manifest...                                [ DONE ]
    Creating Keystone Manifest...                            [ DONE ]
    Adding Glance Keystone Manifest entries...               [ DONE ]
    Creating Galnce Manifest...                              [ DONE ]
    Adding Cinder Keystone Manifest entries...               [ DONE ]
    Checking if the Cinder server has a cinder-volumes vg... [ DONE ]
    Creating Cinder Manifest...                              [ DONE ]
    Adding Nova API Manifest entries...                      [ DONE ]
    Adding Nova Keystone Manifest entries...                 [ DONE ]
    Adding Nova Cert Manifest entries...                     [ DONE ]
    Adding Nova Compute Manifest entries...                  [ DONE ]
    Adding Nova Network Manifest entries...                  [ DONE ]
    Adding Nova Scheduler Manifest entries...                [ DONE ]
    Adding Nova VNC Proxy Manifest entries...                [ DONE ]
    Adding Nova Common Manifest entries...                   [ DONE ]
    Creating OS Client Manifest...                           [ DONE ]
    Creating OS Horizon Manifest...                          [ DONE ]
    Preparing Servers...                                     [ DONE ]
    Running Post install scripts...                          [ DONE ]
    Installing Puppet...                                     [ DONE ]
    Copying Puppet modules/manifests...                      [ DONE ]
    Applying Puppet manifests...
  19. Applying the Puppet manifests to all machines involved in the deployment takes a significant amount of time. The packstack utility provides continuous updates indicating which manifests are being deployed as it progresses through the deployment process. Once the process completes a confirmation message will be displayed.
     **** Installation completed successfully ******
    
         (Please allow Installer a few moments to start up.....)
    
    
    Additional information:
     * A new answerfile was created in: /root/packstack-answers-20130417-042816.txt
     * Time synchronization was skipped. Please note that unsynchronized time on server instances might be a problem for some OpenStack components.
     * To use the command line tools source the file /root/keystonerc_admin created on 192.0.43.10
     * To use the console, browse to http://192.0.43.10/dashboard
     * The installation log file is available at: /var/tmp/packstack/20130417-042816-TkY04B/openstack-setup.log
    You have mail in /var/spool/mail/root
You have successfully deployed OpenStack using packstack.
The configuration details that you provided are also recorded in an answer file that can be used to recreate the deployment in future. The answer file is stored in ~/answers.txt by default.
Refer to Section 6.3, “Running PackStack Non-interactively” for more information on using answer files to automate deployment.

Warning

The answer file also contains a number of required configuration values that are automatically generated if you choose not to provide them including the administrative password for MySQL. It is recommended that you store the answer file in a secure location.

Important

Currently packstack does not support deployment of OpenStack networking. If you have deployed OpenStack using packstack and wish to use OpenStack Networking, then refer to Chapter 12, Deploying OpenStack Networking Services for more information.
It is important that such a conversion is performed before you begin creating and configuring compute instances with the Nova networking deployment created by packstack.